Przydatne polecenia apt (dpkg) [zamknięte]

9

Proszę zamieścić swoje mniej znane, ale przydatne polecenia apt dotyczące * apt- *, dpkg lub aptitude.

Gödel
źródło
7
To naprawdę nie jest pytanie.
Martin Owens -doctormo-

Odpowiedzi:

7

Niektóre polecenia, których często używam:

aby zobaczyć zależności i odwrotne zależności:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

Aby usunąć pakiet, wszystkie napisane pakiety i wszystkie powiązane pliki konfiguracyjne:

sudo apt-get --purge --auto-remove purge $package

Aby zobaczyć rzeczywiste aptopcje konfiguracji:

apt-config dump | less

Aby zmodyfikować opcję w wierszu polecenia

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ sudo apt-get -o APT::Install-Recommends="0" install $package

To był tylko przykład podania opcji APT za pomocą wiersza poleceń, aby uniknąć instalowania zalecanych pakietów, możesz użyć:

sudo apt-get --no-install-recommends $package

Aby zobaczyć wszystkie lokalne / przestarzałe pakiety:

aptitude search ~o

Aby zobaczyć usunięte pakiety z resztkową konfiguracją:

aptitude search ~c

i je usunąć

sudo aptitude purge ~c

Aby uzyskać listę wszystkich zainstalowanych pakietów ( dpkg -lczasami może dać dane wyjściowe z obciętymi kolumnami)

dpkg --get-selections | awk '{ print $1 }'

lub

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

Aby odinstalować, zmodyfikuj, a następnie ponownie złóż pakiet

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb
enzotib
źródło
4

Dwa, z których często korzystam to:

apt-get autoremove <packagename>

Który usunie pakiet i wszelkie nieużywane zależności, co jest przydatne, jeśli wypróbujesz aplikację, a następnie zdecydujesz, że jej nie potrzebujesz, i chcesz również usunąć cruft.

dpkg -S /path/to/file

Co mówi mi, z którym pakietem został zainstalowany plik.

Wreszcie jeszcze jeden ..

dpkg -l <packagename> | grep ^ii

Wyświetla listę pakietów, ale tylko te, które mają status ii, co oznacza, że ​​są zainstalowane, więc nie będzie pokazywał rzeczy, które usunąłem.

Jeśli chcesz uzyskać nazwę pakietu dla pliku, który nie został zainstalowany ( dpkg -Sale dla niezainstalowanych pakietów), zainstaluj apt-filei uruchom:

apt-file search /path/to/file
popey
źródło
Uważam, że użyteczne jest używanie whichrazem z dpkg -S. np .: dla plików wykonywalnych, które występują w pakietach o różnych nazwach, takich jak:dpkg -S `which uname`
Benjamin Rubin
O tak, to też jest dobre.
popey
3

Wyświetl dziennik zmian pakietu

$ aptitude changelog <pkgname>

Przykład:

$ aptitude changelog sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.sudo.ws/repos/sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...
Gödel
źródło
2
Począwszy od Ubuntu 11.04 Natty, apt-get changelog sudorównież działa.
Lekensteyn,
3

Zainstaluj apt-file, a następnie uruchom sudo apt-file update. Możesz teraz wyszukiwać pliki w pakietach, których nawet nie zainstalowałeś.

Przydatny również, jeśli potrzebujesz informacji o pakietach w innych wersjach Ubuntu, to rmadison, który znajduje się w pakiecie devscripts. Podaj jako argument nazwę pakietu, a dowiesz się, jakie wersje tego pakietu istnieją w każdej bieżącej wersji Ubuntu i w której sekcji repozytorium znajduje się pakiet.

Przykład:

[bnrubin@server:~/]$ rmadison cowsay
    cowsay |     3.03-8 | dapper/universe | source, all
    cowsay |     3.03-9 | hardy/universe | source, all
    cowsay |   3.03-9.2 | jaunty/universe | source, all
    cowsay |   3.03-9.2 | karmic/universe | source, all
    cowsay |   3.03-9.2 | lucid/universe | source, all
    cowsay | 3.03+dfsg1-2 | maverick/universe | source, all
    cowsay | 3.03+dfsg1-2 | natty/universe | source, all
Benjamin Rubin
źródło
apt-fileteraz jest w stanie zarządzać bazą danych użytkownika, dzięki czemu nie trzeba być rootem update.
enzotib
apt-file jest całkiem fajny. dzięki za udostępnienie.
Gödel,
1

Aby uzyskać listę poleceń, zaczyna się od „apt-”, wykonaj następujące czynności. otwórz terminal i wpisz „apt-” i naciśnij dwukrotnie klawisz TAB, aby wyświetlić listę wszystkich poleceń rozpoczynających się od „apt-”.

Przykładowe dane wyjściowe:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

Aby uzyskać szczegółowe informacje, możesz sprawdzić stronę podręcznika tego konkretnego polecenia

na przykład: man apt-get

aneeshep
źródło
1

Lubię myśleć o trzech różnych rodzajach pakietów:

  • Pakiety systemowe (niezbędne pakiety lub pakiety o priorytecie standardowym lub wyższym)
  • Pakiety użytkownika (ręcznie zainstalowane pakiety priorytetowe opcjonalne lub dodatkowe)
  • Zależności i rekomendacje (automatycznie instalowane pakiety / wszystko, co nie jest pakietem systemowym lub użytkownika)

Aby wyświetlić wszystkie „pakiety systemowe”, których możesz użyć

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

Lubię mieć je wszystkie zainstalowane i oznaczone jako zainstalowane ręcznie.

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

Aby wyświetlić wszystkie „pakiety użytkowników” użyj

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

Na tej liście powinny znajdować się tylko te pakiety, o których wiesz, że chcesz. Wszystkie pozostałe pakiety są prawdopodobnie tylko zależnościami lub zaleceniami innych pakietów, możesz oznaczyć je jako zainstalowane automatycznie

aptitude markauto libsomething

Spójrz na odnośnik wyszukiwanego hasła aptitude i
co to jest pakiet podstawowy, wymagany, ważny, standardowy, opcjonalny lub dodatkowy? w celu uzyskania dodatkowych informacji.

Dario Seidl
źródło
0
  • Uaktualnij pakiety, które zostaną zachowane, ponieważ usuną inne pakiety lub ponieważ jest to aktualizacja jądra:

    sudo apt-get dist-upgrade
    
  • Wyczyść pakiet i jego konfigurację.

    sudo apt-get purge package
    
  • Pokaż szczegóły pakietu znane w bazie danych pakietu, w tym sekcję, wersję, zależności, opiekuna i opis.

    apt-cache show package
    
  • Wyświetl listę plików w zainstalowanym pakiecie

    dpkg -L pkg
    
  • Uaktualnij wszystkie pakiety

    sudo apt-get upgrade
    
PinoSan
źródło
-2
dpkg -i --force-architecture something.i386.deb

Do instalacji niektórych debetów i386 na amd64.

Extender
źródło