Как на самом деле узнать, какому пакету принадлежит файл?

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
жучара
Сообщения: 1011
ОС: астралинукс

Как на самом деле узнать, какому пакету принадлежит файл?

Сообщение жучара »

Друзья! Debian 12, нулёвая, изменения минимальны. Файл ifconfig будем искать. apt-file обновлён

Shell

$ whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
$
$ apt-file search /usr/sbin/ifconfig
$
$ dpkg -S /usr/sbin/ifconfig
dpkg-query: не найден путь, подходящий под шаблон /usr/sbin/ifconfig
$
Хотя на самом деле файл /usr/sbin/ifconfig принадлежит пакету net-tools
/usr/bin/mount тоже не может найти, а вот /usr/bin/ssh может. Через раз ищется. Непонятно, короче. Спасибо, кто откликнется.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Red Gremlin
Сообщения: 509
Статус: самоучка
ОС: Rosa 2016 Fresh

Re: Как на самом деле узнать, какому пакету принадлежит файл?

Сообщение Red Gremlin »

жучара писал(а):
29.07.2024 09:13
Хотя на самом деле файл /usr/sbin/ifconfig принадлежит пакету net-tools
Нет, пакету net-tools принадлежит файл /sbin/ifconfig. Просто в 12-ом дебиане /sbin является ссылкой на usr/sbin.
Из-за этой путаницы с /bin, /sbin, /usr/bin, /usr/sbin я всегда искал принадлежность команды к пакету через apt-file find bin/cmdname
"В мире есть случайность, есть предопределенность и есть то, что ты планируешь совершить."
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 1011
ОС: астралинукс

Re: Как на самом деле узнать, какому пакету принадлежит файл?

Сообщение жучара »

Red Gremlin писал:
29.07.2024 09:32
жучара писал(а):
29.07.2024 09:13
Хотя на самом деле файл /usr/sbin/ifconfig принадлежит пакету net-tools
Нет, пакету net-tools принадлежит файл /sbin/ifconfig. Просто в 12-ом дебиане /sbin является ссылкой на usr/sbin.
Из-за этой путаницы с /bin, /sbin, /usr/bin, /usr/sbin я всегда искал принадлежность команды к пакету через apt-file find bin/cmdname
спасибо, а вот неисполняемый файл, к, примеру, как про него узнать:

Shell

$ apt-file search /etc/network/interfaces
switchconf: /usr/share/doc/switchconf/examples/home/etc/network/interfaces
switchconf: /usr/share/doc/switchconf/examples/work/etc/network/interfaces
$
$
$ dpkg -S /etc/network/interfaces
dpkg-query: не найден путь, подходящий под шаблон /etc/network/interfaces
$
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20936
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как на самом деле узнать, какому пакету принадлежит файл?

Сообщение Bizdelnick »

жучара писал(а):
01.08.2024 13:24
а вот неисполняемый файл, к, примеру, как про него узнать
Не имеет значения, исполняемый ли он. Просто этот файл не входит в состав пакета, а генерируется постинсталляционным скриптом.

Shell

% grep -F /etc/network/interfaces /var/lib/dpkg/info/*
/var/lib/dpkg/info/ifupdown.list:/etc/network/interfaces.d
/var/lib/dpkg/info/ifupdown.postinst: if [ ! -f /etc/network/interfaces ] ; then
/var/lib/dpkg/info/ifupdown.postinst: echo "Creating /etc/network/interfaces."
/var/lib/dpkg/info/ifupdown.postinst: echo "# interfaces(5) file used by ifup(8) and ifdown(8)" > /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.postinst: echo "# Include files from /etc/network/interfaces.d:" >> /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.postinst: echo "source /etc/network/interfaces.d/*" >> /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.postinst: report_warn "/etc/network/interfaces does not exist"
/var/lib/dpkg/info/ifupdown.postrm: # Note: We don't remove /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.preinst:if [ -f /etc/network/interfaces ] && ! grep -q '^[^#]' /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.preinst: f=/etc/network/interfaces
/var/lib/dpkg/info/ifupdown.preinst: if [ `wc -c < /etc/network/interfaces` -eq 2466 ]; then
/var/lib/dpkg/info/ifupdown.preinst: echo -n "Removing old dummy /etc/network/interfaces: "
/var/lib/dpkg/info/ifupdown.preinst: rm /etc/network/interfaces
%
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 1011
ОС: астралинукс

Re: Как на самом деле узнать, какому пакету принадлежит файл?

Сообщение жучара »

Bizdelnick писал:
01.08.2024 15:40
жучара писал(а):
01.08.2024 13:24
а вот неисполняемый файл, к, примеру, как про него узнать
Не имеет значения, исполняемый ли он. Просто этот файл не входит в состав пакета, а генерируется постинсталляционным скриптом.

Shell

% grep -F /etc/network/interfaces /var/lib/dpkg/info/*
/var/lib/dpkg/info/ifupdown.list:/etc/network/interfaces.d
/var/lib/dpkg/info/ifupdown.postinst: if [ ! -f /etc/network/interfaces ] ; then
/var/lib/dpkg/info/ifupdown.postinst: echo "Creating /etc/network/interfaces."
/var/lib/dpkg/info/ifupdown.postinst: echo "# interfaces(5) file used by ifup(8) and ifdown(8)" > /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.postinst: echo "# Include files from /etc/network/interfaces.d:" >> /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.postinst: echo "source /etc/network/interfaces.d/*" >> /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.postinst: report_warn "/etc/network/interfaces does not exist"
/var/lib/dpkg/info/ifupdown.postrm: # Note: We don't remove /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.preinst:if [ -f /etc/network/interfaces ] && ! grep -q '^[^#]' /etc/network/interfaces
/var/lib/dpkg/info/ifupdown.preinst: f=/etc/network/interfaces
/var/lib/dpkg/info/ifupdown.preinst: if [ `wc -c < /etc/network/interfaces` -eq 2466 ]; then
/var/lib/dpkg/info/ifupdown.preinst: echo -n "Removing old dummy /etc/network/interfaces: "
/var/lib/dpkg/info/ifupdown.preinst: rm /etc/network/interfaces
%
ну да. Удаление ifupdown + удаление /etc/network/interfaces + инсталляция ifupdown дало /etc/network/interfaces

...Остальные посстинсталляционные скрипты не не обращаются к файлу /etc/network/interfaces. При перезагрузке файл /etc/network/interfaces не меняется (но если разве что какая-нибудь программа его поменяет, но мы говорим о нулёвой установке.). Тем не менее после установки видим, что в файл /etc/network/interfaces как-то добавляются строки

Shell

# The loopback network interface
auto lo
iface lo inet loopback
Кто и когда их туда заносит для меня тайна. Впрочем, это уже совсем другая история.
Я просто читаю маны.
Спасибо сказали: