Каков наилучший способ найти удаленный пакет aptitude, связанный с командой? Я знаю apt-file, но его вывод обычно трудно разобрать.
Например, apt-file search ifconfig выводит 45 результатов. Я мог бы использовать некоторое регулярное выражение, чтобы уменьшить это еще больше, но это далеко не идеально.
Я хотел бы сделать что-то вроде findpkg ifconfig и видеть net-tools без беспорядка.
Это задание для dpkg-query.
dpkg-query -S /path/to/file
дает имя пакета, в котором установлен сопоставленный файл. Вы хотите использовать точный путь для получения результата без помех, к счастью /sbin/ifconfig, как в вашем случае, можно легко получить с помощью which:
$ dpkg-query -S $(which ifconfig)
net-tools: /sbin/ifconfig
С другой стороны, dpkg-query -L PACKAGENAME печатает список файлов, установленных данным пакетом, например:
$ dpkg-query -L net-tools | grep ^/sbin/
/sbin/nameif
/sbin/ipmaddr
/sbin/plipconfig
/sbin/ifconfig
/sbin/route
/sbin/mii-tool
/sbin/iptunnel
/sbin/rarp
/sbin/slattach
Подробнее см. [F11].
apt-file предоставляет некоторые опции, которые мы можем использовать для избавления от беспорядочного вывода:
-l, --package-only
Only display package name; do not display file names.
-x, --regexp
Treat pattern as a (perl) regular expression. See perlreref(1) for details.
Without this option, pattern is treated as a literal string to search for.
Поэтому для поиска пакета команды следующая строка может :
apt-file -lx search "/COMMAND$"
Чтобы упростить определение функции:
$ findpkg() { apt-file -lx search "/$1$";}
$ findpkg ifconfig
net-tools
Подробнее об этой команде см. man dpkg-query и perldoc .perl.org для введения в регулярные выражения perl.
Это задание для dpkg-query.
dpkg-query -S /path/to/file
дает имя пакета, в котором установлен сопоставленный файл. Вы хотите использовать точный путь для получения результата без помех, к счастью /sbin/ifconfig, как в вашем случае, можно легко получить с помощью which:
$ dpkg-query -S $(which ifconfig)
net-tools: /sbin/ifconfig
С другой стороны, dpkg-query -L PACKAGENAME печатает список файлов, установленных данным пакетом, например:
$ dpkg-query -L net-tools | grep ^/sbin/
/sbin/nameif
/sbin/ipmaddr
/sbin/plipconfig
/sbin/ifconfig
/sbin/route
/sbin/mii-tool
/sbin/iptunnel
/sbin/rarp
/sbin/slattach
Подробнее см. [F11].
apt-file предоставляет некоторые опции, которые мы можем использовать для избавления от беспорядочного вывода:
-l, --package-only
Only display package name; do not display file names.
-x, --regexp
Treat pattern as a (perl) regular expression. See perlreref(1) for details.
Without this option, pattern is treated as a literal string to search for.
Поэтому для поиска пакета команды следующая строка может :
apt-file -lx search "/COMMAND$"
Чтобы упростить определение функции:
$ findpkg() { apt-file -lx search "/$1$";}
$ findpkg ifconfig
net-tools
Подробнее об этой команде см. man dpkg-query и perldoc .perl.org для введения в регулярные выражения perl.
Это задание для dpkg-query.
dpkg-query -S /path/to/file
дает имя пакета, в котором установлен сопоставленный файл. Вы хотите использовать точный путь для получения результата без помех, к счастью /sbin/ifconfig, как в вашем случае, можно легко получить с помощью which:
$ dpkg-query -S $(which ifconfig)
net-tools: /sbin/ifconfig
С другой стороны, dpkg-query -L PACKAGENAME печатает список файлов, установленных данным пакетом, например:
$ dpkg-query -L net-tools | grep ^/sbin/
/sbin/nameif
/sbin/ipmaddr
/sbin/plipconfig
/sbin/ifconfig
/sbin/route
/sbin/mii-tool
/sbin/iptunnel
/sbin/rarp
/sbin/slattach
Подробнее см. [F11].
apt-file предоставляет некоторые опции, которые мы можем использовать для избавления от беспорядочного вывода:
-l, --package-only
Only display package name; do not display file names.
-x, --regexp
Treat pattern as a (perl) regular expression. See perlreref(1) for details.
Without this option, pattern is treated as a literal string to search for.
Поэтому для поиска пакета команды следующая строка может :
apt-file -lx search "/COMMAND$"
Чтобы упростить определение функции:
$ findpkg() { apt-file -lx search "/$1$";}
$ findpkg ifconfig
net-tools
Подробнее об этой команде см. man dpkg-query и perldoc .perl.org для введения в регулярные выражения perl.