Как найти пакет данных

Время на прочтение
3 мин

Количество просмотров 286K

Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.

Краткая справка Debian администратора

Основное и общеизвестное

Получение информации о новых/обновлённых пакетах

sudo aptitude update

Обновление

sudo aptitude safe-upgrade

Поиск пакета по именам пакетов

aptitude search key_word

Поиск пакета по точному названию

aptitude search "^name$"

Поиск по описанию

aptitude search "?description("key_word")"

Информация о пакете

aptitude show package_name

Установка

sudo aptitude install package_name

Удаление

sudo aptitude remove package_name

Полное удаление (вместе с конфигами)

sudo aptitude purge package_name

Очистить кэш загруженных пакетов (освободить место)

aptitude autoclean # удалятся только пакеты неактуальных версий
aptitude clean # очистится весь кэш

Установка отдельно скачанного/созданного пакета (для создания пакета из сторонних исходников нужно использовать утилиту checkinstall с флагом -D)

sudo dpkg -i /path/to/package.deb

Для получения доп информации

man aptitude
sudo aptitude install aptitude-doc-en

и смотрим документацию (/usr/share/doc/aptitude/html/en/index.html), кому быструю справку по поисковым шаблонам, тому сюда — /usr/share/doc/aptitude/html/en/ch02s04.html. Если лень ставить доку, то в сети она есть.
Вводная на Debian Wiki: wiki.debian.org/Aptitude

А теперь то что не очевидно или требует полного прочтения документации

1. Как после update посмотреть какие пакеты будут обновлены?

aptitude search ?upgradable

также можно юзать (если поставить)

sudo daptup

но после его установки точно также будет себя вести и обычный update

2. Как узнать что изменилось в пакетах которые будут обновлены?
Можно пробовать

sudo aptitude changelog package_name

для каждого пакета.
Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить

sudo dpkg-reconfigure apt-listchanges

3. Что делать если обновление что-то поломало и нужно откатиться?
Отката нет, можно попробовать найти предыдущую версию пакета

sudo aptitude version package_name

и установить её

sudo aptitude install package_name=version

4. Как найти все пакеты установленные вручную?
есть вариант команды (aptitude search ‘~i!~M’), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов

/var/log/aptitude (+ ротированные куски)
/var/log/installer/initial-status.gz
/var/log/dpkg.log (+ ротированные куски)

но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить

5. Как посмотреть список файлов в пакете?
если пакет установлен

dpkg -L package_name

для любых пакетов поставить apt-file и

apt-file list package_name

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

dpkg -S file_name

7. Как удалить все пакеты, где есть key в названии пакета?

sudo aptitude purge ~ikey

8. Как удалить оставшиеся конфиги от удалённых пакетов?

sudo aptitude purge ~c

9. Как найти пакет пакет, в котором содержится файл lib.so:

apt-file search lib.so

10. Как сконвертировать rpm пакет в deb?

alien --to-deb /path/to/file.rpm

11. Как найти список установленных ядер?

dpkg --list linux-* | grep ii

12. Как установить пакет из testing или experimental?
На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть

sudo aptitude -t testing package_name

или

sudo aptitude package_name/testing

13. Как удалить метапакет, но оставить одну из зависимостей?
придётся почитать документацию про ключ unmarkauto или глянуть сюда.

14. Как узнать что попало в файловую систему мимо системы управления пакетами?
Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт

sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp

15. Какие есть дополнительные репозитории?
Debian — wiki.debian.org/UnofficialRepositories
Ubuntu — множество всяких PPA

16. Что есть ещё?
apt-cdrom
apt-spy
auto-apt. заметка на хабре
apt-key
apt-add-repository
Некоторые вещи умеет только apt-get
Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит.

17. Как найти пакеты зависящие от данного

apt-cache rdepends package_name

также может пригодится

aptitude why package_name

Благодарю всех кто помог своими советами в рассылке, жж (JackYF) и хабре ( run4way, sledopit, nazarpc, AgaFonOff, amarao, traaance, adrianopol, Karamax). Замечания и дополнения приветствуются.

На чтение 5 мин. Просмотров 384 Опубликовано 25.06.2019

В предыдущих статьях мы показали, как устанавливать приложения в дистрибутивах Linux на основе Debian с помощью apt-get, а также показали, как устанавливать приложения в дистрибутивах Linux на основе Red Hat с использованием yum.

В этом руководстве мы покажем вам, как устанавливать пакеты с помощью командной строки в дистрибутивах Linux на основе Arch, таких как Manjaro.

Содержание

  1. Какие приложения установлены на вашем компьютере
  2. Просмотр журнала изменений для установленного приложения
  3. Просмотр пакетов, установленных как зависимости для других пакетов
  4. Просмотр явно установленных пакетов
  5. Просмотреть все пакеты в группе
  6. Возврат информации об установленных пакетах
  7. Проверьте работоспособность установленного пакета
  8. Найти все файлы, принадлежащие пакету
  9. Найти пакеты, не найденные в синхронизируемых базах данных (т.е. установлены вручную)
  10. Найти пакеты, доступные только в базе данных Sync
  11. Найти устаревшие пакеты
  12. Как установить пакет с помощью Pacman
  13. Как обновить устаревшие пакеты
  14. Показать список доступных пакетов
  15. Отображение информации о пакете в базе данных синхронизации
  16. Поиск пакета в базе данных синхронизации
  17. Обновить базу данных синхронизации
  18. Примечание о переключателях

Какие приложения установлены на вашем компьютере

Вы можете просмотреть список всех пакетов, установленных в вашей системе, используя следующую команду:

 pacman -Q 

Это вернет список всех приложений на вашем компьютере и номера их версий.

Просмотр журнала изменений для установленного приложения

Вы можете получить дополнительную информацию о пакете или пакетах, указав различные параметры запроса следующим образом:

 pacman -Q -c octopi 

Просмотр пакетов, установленных как зависимости для других пакетов

Приведенная выше команда покажет вам список изменений для осьминога, если он существует. Если он не существует, появится сообщение о том, что список изменений недоступен.

 pacman -Q -d 

Приведенная выше команда показывает вам все файлы, которые установлены как зависимости от других пакетов.

 pacman -Q -d -t 

Это покажет вам все осиротевшие зависимости, установленные на вашем компьютере.

Просмотр явно установленных пакетов

Если вы хотите увидеть все явно установленные пакеты, используйте следующую команду:

 pacman -Q -e 

Явный пакет – это тот, который вы на самом деле выбрали для установки, в отличие от пакета, который был установлен как зависимость от других пакетов.

Вы можете увидеть, какие явные пакеты не имеют зависимостей, используя следующую команду:

 pacman -Q -e -t 

Просмотреть все пакеты в группе

Чтобы увидеть, к каким группам относятся пакеты, вы можете использовать следующую команду:

 pacman -Q -g 

Это будет список имени группы, а затем имя пакета.

Если вы хотите увидеть все пакеты в определенной группе, вы можете указать имя группы:

 pacman -Q -g base 

Возврат информации об установленных пакетах

Если вы хотите узнать имя, описание и другие подробности о пакете, используйте следующую команду:

 pacman -Q -i имя_пакета 

Вывод включает в себя:

  • название
  • версия
  • описание
  • архитектура
  • URL на сайт пакета
  • Лицензия
  • группы
  • Обеспечивает
  • Зависит от
  • Факультативный Депс
  • Требуется
  • Необязательно для
  • Конфликты с
  • Заменяет
  • Установленный размер
  • Имя упаковщика
  • Дата постройки
  • Дата установки
  • Установить причину
  • Установить скрипт
  • Утвержденный

Проверьте работоспособность установленного пакета

Чтобы проверить работоспособность определенного пакета, вы можете использовать следующую команду:

 pacman -Q -k имя_пакета 

Это вернет вывод, подобный следующему:

 Скретч: 1208 файлов, 0 отсутствующих файлов 

Вы можете выполнить эту команду для всех установленных пакетов:

 pacman -Q -k 

Найти все файлы, принадлежащие пакету

Вы можете найти все файлы, которые принадлежат определенному пакету, используя следующую команду:

 pacman -Q -l имя_пакета 

Это возвращает имя пакета и путь к файлам, которыми он владеет. Вы можете указать несколько пакетов после -l.

Найти пакеты, не найденные в синхронизируемых базах данных (т.е. установлены вручную)

Вы можете найти установленные вручную пакеты, используя следующую команду:

 pacman -Q -m 

Пакеты, установленные с помощью yaourt, такие как Google Chrome, будут перечислены с помощью этой команды.

Найти пакеты, доступные только в базе данных Sync

Эта команда обратна предыдущей команде и показывает только пакеты, установленные через базы данных синхронизации.

 pacman -Q -n 

Найти устаревшие пакеты

Чтобы найти пакеты, которые необходимо обновить, используйте следующую команду:

 pacman -Q -u 

Это вернет список пакетов, их номера версий и номера последних версий.

Как установить пакет с помощью Pacman

Для установки пакета используйте следующую команду:

 pacman -S packagename 

Возможно, вам придется использовать команду sudo, чтобы повысить свои права на запуск этой команды. Или же переключитесь на пользователя с повышенными правами доступа с помощью команды su.

Когда пакет доступен в нескольких репозиториях, вы можете выбрать, какой репозиторий использовать, указав его в команде следующим образом:

 pacman -S имя репозитория/имя_пакета 

Установка пакета с помощью pacman автоматически загрузит и установит все зависимости.

Вы также можете установить группу пакетов, таких как окружение рабочего стола, например XFCE.

Когда вы указываете имя группы, результат будет выглядеть следующим образом:

 В группе xfce4 17 участников 

Дополнительный репозиторий
1) exo 2) garcon 3) gtk-xfce-engine

Вы можете установить все пакеты в группе, нажав клавишу возврата. В качестве альтернативы, вы можете установить отдельные пакеты, указав разделенный запятыми список чисел (то есть 1,2,3,4,5). Если вы хотите установить все пакеты от 1 до 10, вы также можете использовать дефис (т.е. 1-10).

Как обновить устаревшие пакеты

Чтобы обновить все устаревшие пакеты, используйте следующую команду:

 pacman -S -u 

Иногда вы хотите обновить пакеты, но для одного конкретного пакета вы хотите, чтобы он оставался в более старой версии (потому что вы знаете, что более новая версия удалила функцию или повреждена). Для этого вы можете использовать следующую команду:

 pacman -S -u - имя_пакета 

Показать список доступных пакетов

Вы можете просмотреть список доступных пакетов в базе данных синхронизации с помощью следующей команды:

 pacman -S -l 

Отображение информации о пакете в базе данных синхронизации

Вы можете найти подробную информацию о пакете в базе данных синхронизации, используя следующую команду:

 pacman -S -i packagename 

Поиск пакета в базе данных синхронизации

Если вы просто хотите найти пакет в базе данных синхронизации, используйте следующую команду:

 pacman -S -s имя_пакета 

Результатом будет список всех доступных пакетов, соответствующих критериям поиска.

Обновить базу данных синхронизации

Вы можете убедиться, что база данных синхронизации обновлена ​​с помощью следующей команды:

 pacman -S -y 

Это следует использовать до запуска команды обновления. Это также полезно для запуска, если вы не сделали этого в течение некоторого времени, чтобы при поиске вы получали самые последние результаты.

Примечание о переключателях

В этом руководстве вы заметили, что мы указали каждый переключатель отдельно. Например:

 pacman -S -u 

Конечно, вы можете комбинировать переключатели:

 pacman -Su 

В этой краткой заметке я хочу рассказать как узнать какому пакету принадлежит файл Linux, мы рассмотрим как решить эту задачу не только в Ubuntu, но и в других популярных дистрибутивах. Такая задача возникает очень редко. Например, вы чистите систему, увидели странный файл, или файл который занимает много места и хотите узнать какому пакету он принадлежит, и вообще, нужен ли он здесь. Или другая ситуация вы хотите установить или удалить программу но не помните название пакета, но знаете как называется исполняемый файл.

Для получения такой информации в Ubuntu есть несколько способов. Это стандартная утилита dpkg, которая работает только с существующими файлами, а также инструмент apt-file, позволяющий получить название программы зная имя исполняемого файла. Подобные инструменты есть и для других дистрибутивов.

Узнаем какому пакету принадлежит файл в dpkg

Для того чтобы узнать какому пакету принадлежит файл dpkg имеет опцию -S, правда, выведено будет только имя пакета и адрес файла, например:

dpkg -S /usr/bin/cloud

Теперь если хотим получить информацию о пакете, используем опцию -s:

dpkg -s ncdu

Или объедением эти команды:

dpkg -S /usr/bin/cloud | awk -F: '{print $1}' | xargs dpkg -s

Как узнать имя пакета по файлу в apt-file

Утилита apt-file не является стандартной для системы Ubuntu, поэтому сначала ее нужно установить:

sudo apt install apt-file

Затем нужно обновить базу данных программы, при обновлении загрузиться около 30 Мегабайт данных:

sudo apt-file update

Теперь можно использовать:

apt-file search /usr/bin/ncdu

Узнаем какому пакету принадлежит файл в rpm

В системах на базе Red Hat Linux тоже можно выполнить аналогичное действие. Здесь вместо dpkg используется консольная утилита rpm. Для получения информации о пакетах используется опция -q, если комбинировать ее с опцией -f и передать адрес файла, мы сможем узнать какому пакету принадлежит файл:

rpm -qf /bin/ls

Хотите более подробной информации о пакете, добавьте опцию -i:

rpm -qif /bin/ls

Пакетный менеджер yum, используемый в системах, основанных на Red Hat, тоже умеет искать пакеты по файлу, для этого есть команда whatpovides:

yum whatprovides /bin/ls

Какому пакету принадлежит файл в Arch Linux

ArchLinux использует собственный менеджер пакетов, очень сильно отличающийся от описанных выше. Но здесь тоже можно сделать то, что нам нужно. Для этого есть опция -Qo:

pacman -Qo /usr/bin/pkgfile

Но этот способ работает только для установленных пакетов, если пакет не установлен, можно использовать утилиту pkgfile. Она не поставляется по умолчанию, но ее можно установить:

sudo pacman -S pkgtools

Теперь посмотрим какому пакету принадлежит /bin/evince:

pkgfile evince

Теперь вы можете узнать из какого пакета можно получить нужную вам программу.

Поиск пакета по файлу в Gentoo

Еще один интересный дистрибутив со своеобразной системой работы с пакетами. Здесь пакеты поставляются в виде исходных кодов и скриптов для сборки. Найти пакет по файлу вы можете с помощью утилиты equery, передав ей параметр b. Например:

equery b /usr/bin/qtconfig

x11-libs/qt-qt3support-4.6.2 (/usr/bin/qtconfig)

Такой способ работает только для установленных пакетов. Из-за специфики дистрибутива для не установленных пакетов способа поиска не существует.

Выводы

Теперь вы знаете как понять какому пакету принадлежит файл в любом из самых популярных дистрибутивов Linux. Во всех дистрибутивах, основанных на Ubuntu и Debian, работает dpkg, для RPM-based дистрибутивов подходит утилита rpm. А два остальных менее популярных, но очень интересных мы рассмотрели отдельно. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Мы уже знали, как составить список установленных пакетов, а также как вывести список зависимостей пакета на Linux.

Сегодня мы увидим, как составить список содержимого пакета Linux.

Неважно, установлен ли пакет или нет.

Можно прочитать содержимое как установленного , так и неустановленного пакета.

В Linux и Unix большинство программ обычно не попадают в один каталог.

При установке пакета все файлы в этом пакете разбросаны по файловой системе и сохранены по разным путям.

Обычно исполняемые файлы (например, бинарники/скрипты) хранятся в каталогах /bin или /usr/bin или /usr/local/bin, библиотеки /usr/lib, файлы конфигурации в «/etc», статические данные в «/usr/share» и т. д.

Теперь давайте найдем список файлов в пакете и где они на самом деле хранятся на Linux.

Как просмотреть подробную информацию о пакете в Linux

Содержание

  1. Перечислим содержимое пакета Linux
  2. Перечислим содержимое неустановленного пакета на Ubuntu
  3. Список содержимого установленного / неустановленного пакета на CentOS

Перечислим содержимое пакета Linux

Сначала мы увидим, как читать содержимое пакета в системах на основе DEB, например, в Ubuntu.

Список содержимого установленного пакета в Ubuntu

Я уже установил пакет Microsoft Teams на свою Ubuntu 20.04.

Чтобы просмотреть содержимое пакета Microsoft Teams, просто запустите:

$ dpkg -L teams

Пример вывода:

/.
/usr
/usr/bin
/usr/bin/teams
/usr/share
/usr/share/applications
/usr/share/applications/teams.desktop
/usr/share/pixmaps
/usr/share/pixmaps/teams.png
/usr/share/teams
.
.
.

/usr/share/teams/swiftshader/libEGL.so
/usr/share/teams/swiftshader/libGLESv2.so
/usr/share/teams/teams
/usr/share/teams/v8_context_snapshot.bin

Приведенный выше вывод показывает файлы, установленные пакетом Teams, и их расположение в моей системе Ubuntu.

Вот еще один способ просмотреть содержимое установленного пакета в Ubuntu:

$ dpkg-query -L teams

Перечислим содержимое неустановленного пакета на Ubuntu

Как я уже сказал, приведенные выше команды отображают содержимое установленного пакета.

А что если пакет не установлен и вы хотите прочитать его содержимое?

Это тоже возможно!

Вы можете найти, какие файлы будут установлены пакетом, еще до его установки.

Сначала загрузите файл .deb.

Перейдите в папку, в которую вы скачали файл пакет .deb, и выполните следующую команду, чтобы просмотреть его содержимое:

$ dpkg --contents teams_1.2.00.32451_amd64.deb

или

$ dpkg -c teams_1.2.00.32451_amd64.deb

Пример вывода:

drwxr-xr-x root/root         0 2019-11-20 20:55 ./
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/bin/
-rwxr-xr-x root/root       286 2019-11-20 20:54 ./usr/bin/teams
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/share/
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/share/applications/
-rw-r--r-- root/root       352 2019-11-20 20:54 ./usr/share/applications/teams.desktop
.
.
.
-rwxr-xr-x root/root    286264 2019-11-20 20:54 ./usr/share/teams/swiftshader/libEGL.so
-rwxr-xr-x root/root   2677296 2019-11-20 20:54 ./usr/share/teams/swiftshader/libGLESv2.so
-rwxr-xr-x root/root 114944384 2019-11-20 20:54 ./usr/share/teams/teams
-rw-r--r-- root/root   1040824 2019-11-20 20:54 ./usr/share/teams/v8_context_snapshot.bin

Кроме того, вы можете сделать это с помощью инструмента apt-file.

Установите apt-file, как показано ниже, если он еще не установлен:

$ sudo apt install apt-file

Если вы только что установили apt-file, кеш системы может быть пустым.

Вам необходимо запустить «apt-file update» от имени пользователя root, чтобы обновить кеш.

Вы также можете запустить «apt-file update» от обычного пользователя, чтобы использовать кеш в домашнем каталоге.

Давайте обновим кеш базы данных командой:

$ sudo apt-file update

Теперь перечислите содержимое установленного пакета, например vim, как показано ниже:

$ apt-file list vim

Вывод:

vim: /usr/bin/vim.basic 
vim: /usr/share/bug/vim/presubj
vim: /usr/share/bug/vim/script
vim: /usr/share/doc/vim/NEWS.Debian.gz
vim: /usr/share/doc/vim/changelog.Debian.gz
vim: /usr/share/doc/vim/copyright
vim: /usr/share/lintian/overrides/vim

Инструмент apt-file также используется для поиска пакетов, предоставляющих определенный файл.

Например, найдем пакет, который предоставляет файл alisp.h  командой:

$ apt-file find alisp.h

или

$ apt-file search alisp.h

Пример вывода:

libasound2-dev: /usr/include/alsa/alisp.h

Как видите, пакет «libasound2-dev» предоставляет файл alisp.h.

Это несколько способов просмотра содержимого пакета в системах на основе DEB.

Теперь давайте посмотрим, как составить список содержимого пакета в системах на основе RPM, например, CentOS.

Список содержимого установленного / неустановленного пакета на CentOS

В системах на основе RPM, таких как CentOS, мы можем найти содержимое пакета, используя команду «repoquery».

Пакет «yum-utils» предоставляет команду repoquery, поэтому давайте установим его с помощью команды:

$ sudo yum install yum-utils

Теперь давайте выясним содержимое пакета редактора «nano» с помощью команды:

# repoquery --installed --list nano

или

# repoquery --list nano

или

# repoquery -l nano

вывод:

Last metadata expiration check: 0:03:02 ago on Tuesday 16 June 2020 06:01:46 PM IST.
/etc/nanorc
/usr/bin/nano
/usr/bin/rnano
/usr/lib/.build-id
/usr/lib/.build-id/d3
.
.
.
/usr/share/nano/tcl.nanorc
/usr/share/nano/tex.nanorc
/usr/share/nano/texinfo.nanorc
/usr/share/nano/xml.nanorc

Таким же образом вы можете перечислить содержимое неустановленного файла.

Это руководство поможет вам определить пакет, который владеет/предоставляет конкретный файл в вашей системе Ubuntu. Все команды этой статьи были протестированы на Ubuntu 18.04 и Ubuntu 16.04 Desktop и Server edition.

Иногда необходимо знать пакет, который добавляет файлы в вашей системе, обычно это важно для целей мониторинга и безопасности, например, для предотвращения руткитов и любой формы вторжения на ваш Linux-сервер.

Ниже приведен список команд, которые пригодятся для этой задачи.

Использование dpkg

dpkg — это инструмент управления пакетами Debian, используемый для установки, удаления, обновления и управления пакетами Debian. Вы можете использовать инструмент управления пакетами dpkg для идентификации пакета, который предоставляет файл. Возможны следующие варианты:

-S, — search: они используются для поиска имени файла из установленных пакетов.

В качестве примера давайте попробуем идентифицировать пакет, который предоставляет файл /etc/updatedb.conf.

# dpkg -S /etc/updatedb.conf
mlocate: /etc/updatedb.conf

Как видно, файл был записан в файловую систему с помощью пакета mlocate.

Вы также можете сделать то же самое для двоичного файла, например

# dpkg -S /bin/sync
coreutils: /bin/sync

Если вы не знаете абсолютный путь к команде, вы можете использовать команду which, чтобы найти ее на лету.

# dpkg -S `which ping`
iputils-ping: /bin/ping

или

# dpkg -S $(which ping)
iputils-ping: /bin/ping

Использование apt-file

Apt-file — это инструмент командной строки Debian, который можно использовать для поиска файлов в пакетах для системы управления пакетами APT. Если вы попытаетесь выполнить команду, когда она не установлена, она попросит вас установить ее.

# apt-file search vim
The program 'apt-file' is currently not installed. You can install it by typing:
apt install apt-file

По умолчанию системный кеш пуст. Выполните следующую команду как пользователь root, чтобы обновить кеш.

# apt-file update

Используйте синтаксис:

# apt-file search <file>

Например: Чтобы найти пакет, создавший файл /etc/nginx/nginx.conf , используйте команду:

# apt-file search /etc/nginx/nginx.conf 
nginx-common: /etc/nginx/nginx.conf

Из вывода видно, что файл был создан путем установки пакета nginx-common.

Использование веб-интерфейса Ubuntu Packages

Третий способ — использовать веб-интерфейс поиска Ubuntu Packages, доступный на странице пакетов Ubuntu (https://packages.ubuntu.com/) . Введите ключевое слово и нажмите на поле поиска.

Как найти пакеты по определенному файлу на Ubuntu

Вывод

Две команды apt-file и dpkg достаточны для поиска файла из пакета на Ubuntu и всех дистрибутивов Linux на базе Debian. Это может помочь вам найти пакет для повторной установки, если он поврежден из файла или отслеживает неизвестные файлы в вашей файловой системе.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий