На Synology NAS (использует 'домашний' вариант *nix (возможно, на основе Debian?)) я установил менеджер пакетов ipkg. Когда я пробую команду типа
ipkg search shred
или
ipkg search *shred*
он возвращает только одну строку:
Successfully terminated
без имени пакета.
Я специально использовал shred в своем примере, поскольку знаю, что shred существует для моей платформы и является частью пакета coreutils (и поэтому должен возвращать этот ответ).
Что не так? Это баг, ошибка в синтаксисе или что-то еще?
Редактировать -
Я нашел ответ - имя файла нужно было заключить в одинарные кавычки, например
ipkg search '*shred*'
Это возвращает правильный ответ - coretutils.
Я также обнаружил, что Павел прав, он возвращает только информацию оустановленпакеты, а это не то, что мне было нужно.
Как мне найти, какой пакет установить, если мне нужна определенная программа/утилита, которая является частью более крупной коллекции, но я не знаю, какой пакет ее содержит?
(это разрешено или мне следует задать другой вопрос?)
решение1
Я не думаю, что метаданные пакета включают списки файлов. Я считаю, ipkg search
что они предназначены только для получения имен пакетов дляустановленфайлы, аналогично rpm -qf
. Возможно, вам придется указать полный путь к установленному файлу.
При поиске информации оcoreutilsпакет, вы можете попробовать следующее:
ipkg info coreutils
ipkg status coreutils
ipkg files coreutils
Вы также можете увидеть, как отличаются результаты для установленных и неустановленных пакетов.
При поиске установленного пакета, предоставляющего определенный файл, вы можете использовать:
ipkg search /path/to/installed/file
Как вы указали в своем отредактированном вопросе, вам необходимо использоватьзвездочкаесли вы не хотите указывать полный путь, например:
ipkg search \*file
ipkg search '*file'
По моему мнению, невозможно получить никакой информации о файлах, которые не существуют или не были установлены.
Вам также может потребоваться проверить, есть ли у вас вообще метаданные для загруженных пакетов, и загрузить их:
ipkg update
Как мне найти, какой пакет установить, если мне нужна определенная программа/утилита, которая является частью более крупной коллекции, но я не знаю, какой пакет ее содержит?
ipkgНе могу вам помочь, так как у него нет данных. Не думаю, что в вашем дистрибутиве есть инструмент, apt-file
который мог бы стать решением. В этом случае вам обычно приходится возвращаться к использованию веб-поиска, чтобы получить такую информацию.
Источники:
Отказ от ответственности: я использую толькоopkgна OpenWRT, который очень близок кipkg.