Для всех тех людей, которые могут по-прежнему гуглить эту проблему в январе 2017 года, вы можете иметь некоторые интересные вещи с последними версиями apt и dpkg в Debian 8.5, не загружая ничего.
Список содержимого файла Deb без загрузки:
Сначала найдите полный URL-адрес файла deb:
root@debian:apt-get --print-uris download yade 'http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb' yade_2016.06a-7_amd64.deb 1621148 SHA256:26c0d84484a92ae9c2828edaa63243eb764378d79191149970926aa3ec40cdd4
PS: переключатель --print-uris печатает URL пакета deb, но deb не загружается.
Затем отобразите содержимое пакета deb, не загружая его:
root@debian:curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb" |dpkg-deb -c /dev/stdin drwxr-xr-x root/root 0 2016-12-10 22:18 ./ drwxr-xr-x root/root 0 2016-12-10 22:18 ./usr/ drwxr-xr-x root/root 0 2016-12-10 22:18 ./usr/bin/ -rwxr-xr-x root/root 13184 2016-12-10 22:18 ./usr/bin/yade .........................more files listed bellow ......................
PS: тот же результат может быть достигнут с
root@debian:dpkg -c <(curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb")
Извлеките файл из вышеуказанного пакета deb, без загрузки.
Например, мы хотим прочитать справочную страницу пакета yade, не устанавливая этот пакет и даже не загружая пакет deb.
Имя файла справочной страницы внутри пакета deb в соответствии с рекомендациями dpkg -c
is./usr/share/man/man1/yade.1.gz
Чтобы прочитать справочную страницу на лету:
root@debian:curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb" |dpkg-deb --fsys-tarfile /dev/stdin |tar -xO ./usr/share/man/man1/yade.1.gz |man /dev/stdin
Страница man отображается правильно с помощью приложения man.
PS: Над трубами не работает команда ar.
root@debian:apt --version --> apt 1.4~beta2 (amd64) root@debian:dpkg --version --> Debian 'dpkg' package management program version 1.18.18 (amd64). root@debian:man --version --> man 2.7.6.1 root@debian:tar --version --> tar (GNU tar) 1.29