Aby pracować bezpośrednio z nazwami pakietów, a nie z plikami pakietów, możesz użyć apt-file. (Może być konieczne apt-filenajpierw zainstalowanie pakietu.)
sudo apt-file update
apt-file list package_name
Jak stwierdzono w pierwszym komentarzu, apt-file wyświetla zawartość pakietów w już skonfigurowanych repozytoriach Apt. Nie ma znaczenia, czy dany pakiet jest zainstalowany, czy nie.
apt-file również wymaga aktualizacji ( sudo apt-file update) i wyświetla tylko zawartość pakietów w już skonfigurowanych repozytoriach Apt.
szarlatan
1
@quackquixote: W Ubuntu 12.04 jest to automatyczne
konfiq
1
dpkg -cmiły!
d -_- b
2
Odpowiedź pliku Apt zakłada, że pakiet pochodzi ze skonfigurowanego repozytorium zamiast z .debpliku pobranego osobno. Pierwotne pytanie jest jednak dwuznaczne.
Zoredache,
5
@confiq, nie przez moje testy. Korzystam z wersji 12.04.4 i nadal pojawia się komunikat „E: Pamięć podręczna jest pusta. Najpierw musisz uruchomić aktualizację apt-file”.
Matthew Flaschen
58
Użyj --contentszamiast -L:
dpkg --contents PACKAGENAME
Gdy jest używany w ten sposób, dpkgdziała jako interfejs użytkownika dpkg-deb, więc użyj, man dpkg-debaby zobaczyć wszystkie opcje.
Możesz także użyć przeglądarki archiwów, aby wyświetlić zawartość pakietu.
To nie działa, chyba że najpierw go zainstaluję, a następnie odinstaluję.
Xiè Jìléi,
3
powinien działać dobrze, jeśli podasz mu plik .deb jako argument (zamiast PACKAGENAME, podaj PACKAGE-DEB-FILE).
szarlatan
3
Ta odpowiedź jest zła. Najpierw musisz zainstalować pakiet. Jeśli nie masz go zainstalowanego, to nie masz pliku .deb.
Neil
To polecenie działa dla mnie. Na przykład pobrałem google-chrome-stable_current_amd64.deb z Google. Następnie wydał polecenie: dpkg --contents google-chrome-stable_current_amd64.debi wylistował wszystkie pliki, które zainstaluje (głównie do /opt/google/chrome), z których żaden nie jest aktualnie zainstalowany w moim systemie podczas pisania. (Jeśli to ma znaczenie, korzystam z Xubuntu 11.10.)
quux00
10
@ Nee, odpowiedź nie jest zła. To, że masz plik deb, nie oznacza, że jest zainstalowany. apt-file potrzebuje całego pakietu niezbędnego do kompilacji. OO
d -_- b
21
dpkg --contentspozwoli spojrzeć na odinstalowany pakiet. Jeśli .deb nie jest jeszcze w twoim systemie, zrób
apt-get --download-only install pkgname
Pakiet zostanie pobrany, /var/cache/apt/archivesale nie zainstalowany.
Czy mogę po prostu wyświetlić zawartość bez pobierania? Jeśli korzystam z bardzo wolnego połączenia i pakiet jest zbyt duży, aby go pobrać. Jeśli plik .deb ma nagłówek pliku, do którego prowadzi lista zawartości, to chyba pobranie całego pakietu może nie być konieczne. czy to możliwe?
Xiè Jìléi,
13
Najlepszym sposobem byłoby przeglądanie bezpośrednio repozytorium pakietów:
function deb_list () {
curl -s $(lsb_release -si \
| sed -e 's Ubuntu https://packages.ubuntu.com ' \
-e 's Debian https://packages.debian.org '
)/$(lsb_release -sc)/all/$1/filelist \
| sed -n -e '/<pre>/,/<\/pre>/p' \
| sed -e 's/<[^>]\+>//g' -e '/^$/d';
}
Wyjaśniono:
lsb_release -si zwraca „Ubuntu” lub „Debian” zamień je na podstawowy adres URL https://packages.ubuntu.comlubhttps://packages.debian.org
lsb_Release -sc zwraca kryptonim (np. „zaufany”, „sid” itp.). Użyj go do zbudowania pełnego adresu URL: https://packages.ubuntu.com/trusty/all/curl/filelist
Pobierz ten URL za pomocą curl i potokuj HTML za pomocą trzech poleceń sed. Najpierw przechwytuje tylko listę plików (co pomiędzy tagami <pre>i </pre>); drugi usuwa wszystkie znaczniki HTML; trzeci usuwa wszelkie puste linie.
Uwaga: Nie wyszukuje plików PPA, alternatywnych repozytoriów apt apt i tylko odpytuje oficjalne pakiety dostępne dla wersji debian / ubuntu, którą uruchamiasz.
@Anwar, początkowo użyłem Ruby, ponieważ byłem leniwy, a wyrażenia regularne z wieloma wierszami wciągały sed / awk / grep. Ale przepisałem go tak, aby używał dwóch poleceń sed, nie wymaga Ruby.
notpeter
Miły! Oto odpowiedź, której szukałem
Anwar
4
Dla tych wszystkich osób, które mogą nadal przeglądać ten problem w styczniu 2017 roku, możesz mieć fajne rzeczy z najnowszymi wersjami apt i dpkg w Debian 8.5 bez pobierania czegokolwiek.
Wyodrębnij plik z powyższego pakietu deb, bez pobierania.
Na przykład chcemy przeczytać stronę podręcznika pakietu yade bez instalowania tego pakietu i nawet bez pobierania pakietu deb.
Nazwa pliku strony man wewnątrz pakietu deb, zgodnie z zaleceniami dpkg -cis./usr/share/man/man1/yade.1.gz
Odpowiedzi:
dpkg -c
(lub--contents
) wyświetla zawartość pliku pakietu .deb (jest to interfejs użytkownikadpkg-deb
.)Aby pracować bezpośrednio z nazwami pakietów, a nie z plikami pakietów, możesz użyć
apt-file
. (Może być konieczneapt-file
najpierw zainstalowanie pakietu.)Jak stwierdzono w pierwszym komentarzu, apt-file wyświetla zawartość pakietów w już skonfigurowanych repozytoriach Apt. Nie ma znaczenia, czy dany pakiet jest zainstalowany, czy nie.
źródło
sudo apt-file update
) i wyświetla tylko zawartość pakietów w już skonfigurowanych repozytoriach Apt.dpkg -c
miły!.deb
pliku pobranego osobno. Pierwotne pytanie jest jednak dwuznaczne.Użyj
--contents
zamiast-L
:Gdy jest używany w ten sposób,
dpkg
działa jako interfejs użytkownikadpkg-deb
, więc użyj,man dpkg-deb
aby zobaczyć wszystkie opcje.Możesz także użyć przeglądarki archiwów, aby wyświetlić zawartość pakietu.
źródło
dpkg --contents google-chrome-stable_current_amd64.deb
i wylistował wszystkie pliki, które zainstaluje (głównie do/opt/google/chrome
), z których żaden nie jest aktualnie zainstalowany w moim systemie podczas pisania. (Jeśli to ma znaczenie, korzystam z Xubuntu 11.10.)dpkg --contents
pozwoli spojrzeć na odinstalowany pakiet. Jeśli .deb nie jest jeszcze w twoim systemie, zróbPakiet zostanie pobrany,
/var/cache/apt/archives
ale nie zainstalowany.źródło
Najlepszym sposobem byłoby przeglądanie bezpośrednio repozytorium pakietów:
http://packages.debian.org/[distro name]/all/[package name]/filelist
Przykład:
http://packages.debian.org/wheezy/all/transmission-common/filelist
źródło
lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/
(Pod warunkiem, żelynx
zainstalowałeś).Wziąłem pomysł http @ baldoz i uogólniłem go dla Ubuntu i Debiana, dodałem trochę
sed
i zapakowałem w jedno-liniową funkcję bash:Stosowanie:
Ta sama funkcja w wielu liniach:
Wyjaśniono:
https://packages.ubuntu.com
lubhttps://packages.debian.org
https://packages.ubuntu.com/trusty/all/curl/filelist
<pre>
i</pre>
); drugi usuwa wszystkie znaczniki HTML; trzeci usuwa wszelkie puste linie.Uwaga: Nie wyszukuje plików PPA, alternatywnych repozytoriów apt apt i tylko odpytuje oficjalne pakiety dostępne dla wersji debian / ubuntu, którą uruchamiasz.
źródło
Dla tych wszystkich osób, które mogą nadal przeglądać ten problem w styczniu 2017 roku, możesz mieć fajne rzeczy z najnowszymi wersjami apt i dpkg w Debian 8.5 bez pobierania czegokolwiek.
Wyświetl zawartość pliku Deb bez pobierania:
Najpierw zlokalizuj pełny adres URL pliku deb:
PS: Przełącznik --print-uris drukuje adres URL pakietu deb, ale deb nie jest pobierany.
Następnie wyświetl zawartość pakietu deb bez pobierania:
PS: Taki sam wynik można osiągnąć za pomocą
Wyodrębnij plik z powyższego pakietu deb, bez pobierania.
Na przykład chcemy przeczytać stronę podręcznika pakietu yade bez instalowania tego pakietu i nawet bez pobierania pakietu deb.
Nazwa pliku strony man wewnątrz pakietu deb, zgodnie z zaleceniami
dpkg -c
is./usr/share/man/man1/yade.1.gz
Aby przeczytać stronę podręcznika w locie:
strona man jest wyświetlana poprawnie przy użyciu aplikacji man.
PS: Powyższe potoki nie działają z poleceniem ar.
źródło
Próbować:
źródło
Wydaje się, że nie jest to możliwe przed instalacją lub wypakowaniem listy z
.deb
pliku.Spróbuj wykonać następujące polecenie:
Zmień za
language-pack-en
pomocą nazwy pakietu.Zasadniczo odczytuje
.deb
wyodrębniony plikcurl
i uruchamia siędpkg --contents FILE
na nim.Możesz także sprawdzić zawartość bez pobierania pliku pakietu.
Więc jeśli znasz adres URL
.deb
pliku, następujące polecenie powłoki wyświetli wszystkie pliki pakietów:Zwijaj parametry:
-s
- cichy,-L
- podążaj za przeniesionymi linkami.Jeśli nie znasz adresu URL, pobierz::
apt --print-uris
npźródło