Chciałbym wykluczyć określone pakiety z instalacji apt-get
, to znaczy zainstalować metapakiet bez listy konkretnych pakietów, najlepiej z jednym wywołaniem apt-get
.
Na przykład w wierszu polecenia Ubuntu 14.04 LTS instaluję środowisko pulpitu MATE. W 14.04 LTS MATE nie jest oficjalnym smakiem, więc dodaję PPA:
sudo apt-get install software-properties-common # need them for 'apt-add-repository'
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update
następnie instalując:
sudo apt-get install xorg mate-core --no-install-recommends
Nawet bez zalecanymi dodatkami, mate-core
instaluje emulatory terminali: 3 xterm
, uxterm
a mate-terminal
ten ostatni brakuje odpowiednich czcionek natomiast zainstalowany w tym minimalnej konfiguracji.
Załóżmy, że zdecyduję, że 3 programy terminalowe byłyby zbyt liczne i chciałbym zainstalować xorg
i mate-core
bez xterm
i mate-terminal
. mógłbym zrobić
sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal
ale czy można to zrobić za jednym razem? Czy jest jakaś składnia taka jak
sudo apt-get install xorg mate-core --without xterm mate-terminal
źródło
xterm
imate-terminal
? W 15.04mate-terminal
jest twardą zależnościąmate-desktop-environment-core
, która jest twardą zależnościąmate-core
, i przypuszczam, że PPAmate-terminal
nie zapewniax-terminal-emulator
(czego dostarcza pakiet w 15.04).XTerm
a możeUXTerm
(nie jestem pewien, jaka jest nazwa tego drugiego pakietu)sudo apt-get install xorg mate-core --without xterm mate-terminal
aptitude
(lub jakiegoś graficznego menedżera pakietów), możesz (de) wybrać, które pakiety mają zostać zainstalowane, a jeśli jeden z nich spowoduje przerwanie zależności, (zwykle) zostanie podane wyjaśnienie.Odpowiedzi:
Tak, kolega-core zależy na
mate-desktop-environment-core
co z kolei zależy namate-terminal
. Zależy nie może zostać łatwo uszkodzony. Ani teżapt-get
nieaptitude
obsługuje opcji--without
lub--exclude
, a „trzymanie” pakietów nie pomoże:Jasne, można użyć
dpkg --force-depends
do zainstalowania pakietu, ale może nie tego chcesz.Możliwe byłoby wypełnienie
Depends:
flagi atrapą:Teraz
mate-core
powinno być możliwe zainstalowanie w / omate-terminal
. Powtórz to samo, aby wykluczyć inne pakiety.Trzeba przyznać, że to spory wysiłek i
--without
opcja byłaby dobra. Być może błąd listy życzeń można otworzyć, aby zapewnić taką funkcjonalność w przyszłości, ale wątpię, czy to zostanie zaimplementowane.Bardziej realistyczną opcją byłoby jednak zwrócenie się do właściciela PPA o dostarczenie kolejnego pakietu meta dla MATE z mniejszymi
Depends
zestawami pakietów.źródło
Jeśli używasz
aptitude
lub graficznego menedżera pakietów (Synaptic itp.), Możesz odznaczyć, które pakiety powinny zostać zainstalowane, o ile nie spowoduje to problemu zależności.W przypadku
aptitude
przed zainstalowaniem pakietu (w widoku graficznym) pokaże on, dlaczego instalowany jest pakiet zależny. W moim przypadku używam KDE, więc nie mam żadnych pakietów MATE. Jeśli każę to zainstalowaćmate-core
, otrzymuję następujące informacje:Zauważ, że
mate-core
jest oznaczony jako instalowany ręcznie i instalowanych jest wiele innych pakietów. W przypadkumate-terminal
pakietu na dole jest napisane: „mate-desktop-environment-core
[wszechświat] zależy odmate-terminal
(> = 1.0.0)”. Przechodząc do wpisumate-desktop-environment-core
,„
mate-core
[wszechświat] zależy odmate-desktop-environment-core
(> = 1.8.0 + 9)”. Właśnie dlategomate-terminal
jest instalowany.Jeśli zamiast tego instalowany jest zalecany pakiet (zamiast czegoś zależnego od innego pakietu),
aptitude
poinformuje cię o tym i możesz powiedzieć, aby nie instalował tego pakietu bez żadnych zepsutych zależności. Na przykład:źródło
Inna metoda
Pobierz główny pakiet, który zależy od drugiego. Wyodrębnij pakiet, usuń niechciane zależności, przepakuj go. Teraz otwórz nowy pakiet za pomocą instalatora pakietu gdebi . Zainstaluje dla ciebie nowe zależności.
źródło
Istnieje specjalna
apt
składnia dla scenariuszy, takich jak ten: dołączanie myślnikiem (znak minus) do pakietu usunie / nie zainstalować go, więc najbliżej swoichsudo apt-get install xorg mate-core --without xterm mate-terminal
Issudo apt-get install xorg mate-core xterm- mate-terminal-
(zauważony na /ubuntu//a/1011439/182923 )W tym przypadku to nie pomoże, bo na to wpadniesz
ale wydaje się, że jest to odpowiedź na konkretne pytanie. Dla porównania, ten krzyż post.
źródło