Powiedzmy, że mam, foo-1.2.3.deb
co zależy od, perl
a python
jednak uruchomienie polecenia:
dpkg -i ./foo-1.2.3.deb
nie zainstaluje tych zależności. Więc muszę apt-get install perl python
ręcznie.
Jak dpkg -i
automatycznie zainstalować te zależności dla mnie?
Odpowiedzi:
Po użyciu
dpkg
uruchomienie następującego polecenia pomogło mi zainstalować wymagane zależności:Podsumowując, twój terminal powinien wyglądać tak:
Zwróć uwagę na linię
Setting up package_with_unsatisfied_dependencies
. To naprawia (i kończy) instalacjępackage_with_unsatisfied_dependencies.deb
.źródło
sudo dpkg -i mypackage.deb
znów biegać ?sudo apt-get -f install
mojego pakietu i jego zależności zostały zainstalowane. Uruchomieniesudo dpkg -i my_package.deb
jest niepotrzebne i po prostu ponownie zainstaluje pakiet.sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb
. Pierwszedpkg -i
uruchomienie oznacza zależności,apt-get -f install
instaluje wymagane zależności, a drugiedpkg -i
pomyślnie instaluje pakiet. Zauważ, żeapt-get install -f
jest to zupełnie inne polecenie.dpkg -i --force
; wymusi zainstalowanie uszkodzonego pakietu! Uruchomieniedpkg
/ bez /--force
spowoduje wprowadzenie koniecznego wpisu do bazy danych pakietu,apt-get -f install
aby zrobić to dobrze.Możesz zainstalować
gdebi-core
, czyli wersję instalatora pakietu GDebi z linii poleceń od 10.04 i wcześniejszych. W nowszych wersjach Ubuntu Centrum Oprogramowania służy do instalowania debów, które nie mają odpowiednika w linii poleceń.Aby zainstalować pakiet deb za pomocą gdebi, po prostu uruchom:
źródło
począwszy od apt 1.1 (dostępny w Xenial (16.04), stretch)
apt install
pozwala także na lokalne pliki:O wiele prostsze i czystsze.
Zobacz ogłoszenie o wydaniu
źródło
apt ./install foo-1.2.3.deb
działało../
ścieżki lub ścieżkiGdebi
gdebi
instaluje pakiet deb i jego zależności. Aby go użyć, uruchom:W nowszych wersjach Ubuntu nie jest to instalowane domyślnie, więc musisz zainstalować go z repozytoriów.
Zobacz
man gdebi
pełną listę opcji.gdebi
jest wierszem poleceń równoważnym narzędziu graficznemu o tej samej nazwie, które było domyślnie dołączane do Ubuntu. Polecenie narzędzia graficznego magdebi-gtk
i ma podobną funkcjonalność:źródło
dpkg-repack
z niej korzystać na podstawie takiej listy deps :)bieganie
po zainstalowaniu pakietu z dpkg może rozwiązać zepsute zależności (przynajmniej tak mówi apt-get ...). Zła aktualizacja, kiedy to sprawdzę.
źródło
sudo dpkg -i mypackage.deb
znów biegać ?apt-get -f install
działa, aleapt-get install -f
to nie to samo.dpkg nie obsługuje zależności. Jest na to sposób, ale wymagałoby to utworzenia lokalnej bazy danych (a tym samym znajomości zależności) i uznano by ją za przestarzałą (...).
Czy to musi być wiersz poleceń? (instalacja serwera?) Jeśli tak, to spójrz,
apt-get -f
ale bądź ostrożny: rozwiązywanie zależności po instalacji może doprowadzić do uszkodzenia systemu.gdebi (interfejs GUI) był w stanie to zrobić, ale został zastąpiony przez USC.
Jak pobrałeś .deb. Niektóre z nowych funkcji 11.04 to obsługa pliku .deb pobranego ze strony internetowej: w USC jest on uruchamiany, więc instalator rozwiąże zależności.
EDYCJA na podstawie komentarza Andrzeja:
sudo gdebi foo-1.2.3.deb
zrobiłaby to!źródło
Jako alternatywę
gdebi-gtk
możesz użyć Centrum oprogramowania Ubuntu.Kliknij dwukrotnie pakiet, a przycisk instalacji powinien być dostępny.
źródło
Możesz utworzyć plik
dpkg-dep-inst
o następującej treści.Zakładam, że utworzyłeś plik w swoim folderze domowym. Zrób to z wykonywalny
chmod +x dpkg-dep-inst
i przenieść go do/usr/local/bin
zsudo cp dpkg-dep-inst /usr/local/bin
.Teraz możesz automatycznie zainstalować pakiet debian z zależnościami za pomocą:
źródło
apt-get --yes --fix-broken install
i ustaw automatyczne mocowanie.Właśnie natrafiłem na ten problem. Wywołanie nie
apt-get install -f
spowoduje jednak zainstalowania zalecanych zależności! Jedynym obejściem tego byłoby utworzenie lokalnego repozytorium i dodanie/etc/apt/sources.list
, tj .:źródło
Właściwie odpowiedź jest taka, że
dpkg
menedżer pakietów nie może zainstalować zależności po wyjęciu z pudełka. Cam sięman dpkg
i to odkryłeś. Więc trzeba używać narzędzi, takich jakapt
,apt-get
,aptitude
, ..., na podstawiedpkg
.Powiedziałbym, że to samo dotyczy
rpm
menedżera pakietów na drugiej półkuli Linuksa.rmp
nie jest przeznaczony do instalacji opartych na zależnościach. Można go zainstalować pojedyncze pakiety, a dla instalacji zależności użyćyum
,urpmi
,up2date
są one oparte na RPM.Jak wspomniano, istnieje niewielkie niebezpieczeństwo instalowania pakietów
dpkg
bezpośrednio, ponieważ późniejsze rozwiązanie problemu zależności może skończyć się uszkodzeniem systemu, jak wskazano w @Rinzwind.źródło