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

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

Для просмотра от каких пакетов зависит пакет gnome-calculator:

$ epm requires gnome-calculator

Для просмотра какие другие пакеты зависят от пакета gnome-calculator:

$ epm whatdepends gnome-calculator

Для просмотра какому пакету принадлежит файл /usr/bin/gnote:

$ epm qf /usr/bin/gnote

(причём для исполняемых файлов можно и epm qf gnote)

Список всех файлов в пакете:
$ epm ql gnome-calculator

2.4 , Аноним ( — ), 22:39, 20/02/2020 [^] [^^] [^^^] [ответить] + / –
> Ну а для тех, кому не хочется запоминать все варианты, давно создан EEPM:

Для таких случаев создан XKCD #927.

  • 3.7, Виталий Липатов ( ok ), 13:48, 21/02/2020 [^] [^^] [^^^] [ответить]
  • + / –
    Ну что ещё ожидать от Анонима. Но EPM не ещё один пакетный менеджер.
  • 2.5 , имя ( ok ), 01:34, 21/02/2020 [^] [^^] [^^^] [ответить]
  • + / –
    > Лет 8 назад здесь уже писали об этом проекте

    Лет 12 назад уже был PackageKit.

    3.8, Виталий Липатов ( ok ), 17:56, 21/02/2020 [^] [^^] [^^^] [ответить] + / –
    >> Лет 8 назад здесь уже писали об этом проекте
    > Лет 12 назад уже был PackageKit.

    Поэтому до сих пор люди пишут полезные советы, как пользоваться пакетными менеджерами. PackageKit предоставляет только базовую функциональность и ограничен теми системами, которые имеют D-BUS. Но у проекта и цели другие — предоставить доступное обычному пользователю управление пакетами через GUI.

    Источник

    Linux.yaroslavl.ru

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

    Но. наша цель состоит в изучении самого APT. Так как же найти имя пакета, который вам надо установить?

    Для такой задачи мы располагаем несколькими ресурсами. Начнем с apt-cache . Эта программа используется системой APT для управления ее базами данных. Мы только вкратце оглядим ее более практические приложения.

    5.1 Нахождение имен пакетов

    Например, допустим, что вы хотите вспомнить старые добрые денечки Atari 2600. Вы хотите использовать APT для установки эмулятора Atari и скачивания некоторых игр. Можете сделать так:

    Мы нашли несколько пакетов, имеющих отношение к тому, что нам требуется, вместе с краткими описаниями. Чтобы посмотреть более полные описания, можно дать команду:

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

    Обратите внимание, что первый в списке — доступный пакет, а второй — уже установленный. Для получения более общей информации о пакете, вы можете использовать:

    А чтобы посмотреть только его зависимости:

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

    5.2 Применение dpkg для поиска имен пакетов

    Один из способов найти имя пакета — знать имя какого-либо важного файла, находящегося в этом пакете. Например, чтобы найти пакет, которому принадлежит некий файл «.h» , нужный вам для компиляции, может запустить:

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

    Проблема этой команды в том, что она может «испортить» имя пакета. В примере выше, полное имя пакета mozilla-browser . Чтобы это исправить, вы можете изменить значение переменной окружения COLUMNS :

    или использовать описание или часть его следующим образом:

    5.3 Установка пакетов «по запросу»

    Вы собираете пакет, и вдруг, бах! Ошибка из-за того, что нет какого-то там нужного файла .h . От такого поворота событий вас может спасти программа auto-apt . Она запрашивает какие пакеты установить, если они нужны, останавливает соответствующий процесс и продолжает его после установки пакета.

    Для этого, в основном, запустите:

    Где `command’ — это команда, при выполнении которой может обнаружиться отстутствие некоего файла. Например:

    Она запросит установку необходимых пакетов и вызовет apt-get автоматически. Если вы работаете в X, то графический интерфейс будет по умолчанию заменен на текстовый.

    Auto-apt сохраняет базы данных в обновленном состоянии, чтобы быть более эффективной. Это достигается вызовом команд auto-apt update , auto-apt updatedb и auto-apt update-local .

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

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

    Работает она примерно также как и dpkg -S , но будет показывать также и неустановленные пакеты, которые содержат указанный файл. Команда может применяться также для поиска заголовочных файлов, которые могут потребоваться при компиляции программ, хотя auto-apt в данном случае более хорош, см. Установка пакетов «по запросу», раздел 5.3.

    Также вы может посмотреть список файлов в пакете командой:

    apt-file хранит базу данных, в которой отслеживает какие файлы содержат пакеты также, как это делает auto-apt и ему нужно ее обновлять. Это делается так:

    По умолчанию, apt-file использует базу данных auto-apt , см. Установка пакетов «по запросу», раздел 5.3.

    5.5 Как получить информацию об изменениях в пакете.

    Каждый пакет устанваливает в свой каталог документации ( /usr/share/doc/packagename ) файл, называемый changelog.Debian.gz , который содержит список изменений, сделанных в пакете в последней версии. Вы можете прочесть эти файлы, например, утилитой zless ‘, но в общем-то не слишком удобно после полного обновления системы искать changelog`и для каждого обновленного пакета.

    Можно автоматизировать эту задачу с помощью инструмента apt-listchanges . Для начала надо установить пакет apt-listchanges . В течение инсталляции, Debconf настроит его. Отвечайте на вопросы так, как вам будет удобнее.

    Опция «Should apt-listchanges be automatically run by apt?» очень полезна, так как показывает список изменений, сделанных в каждом установленном при обновлении пакете, и позволяет вам проанализировать ситуацию перед тем, как продолжить. Опция «Should apt-listchanges prompt for confirmation after displaying changes?» запрашивает у вас разрешения продолжать после чтения списка изменений. Если вы скажете, что не хотите продолжать, то apt-listchanges вернет ошибку и apt прервет установку.

    После установки apt-listchanges, как только пакеты скачаются (или будут получены с CD или смонтированного диска) с помощью apt, можно будет смотреть списки изменений, сделанных в ранее установленных пакетах. [ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ вперед ]

    Источник

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

    Если вы компилируете программы из исходных кодов, то вы, наверняка, сталкивались с ошибками компиляции, когда программа не находит какой-либо файл и компиляция обрывается. Что делать в данной ситуации? Понятно, что нужно установить пакет, который содержит требуемый файл. Но как узнать имя этого пакета?

    Вполне возможно, что вас выручит Гугл, достаточно в строке поиска набрать что-нибудь вроде fatal error: ffi.h и уже в первых результатах поиска вы найдёте сайты с ответом на ваш вопрос. Это не самый хороший способ, поскольку:

    • если постоянно надеяться только на Google, то в конце-концов он подведёт;
    • обычно ссылки ведут нас на англоязычные сайты — а с иностранными языками в РФ так себе;
    • ну и, в конце-концов, это просто нубство.

    В этой заметке я расскажу о нескольких способах узнать имя пакета, содержащего требуемый файл.

    apt-file

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

    Сразу после установки кэш данных о программах пуст. Чтобы его обновить нужно выполнить команду (можно выполнять как от рута, так и от пользователя):

    Когда всё готово, то поиск осуществляется так:

    К примеру я ищу файл ffi.h:

    Как можно увидеть файл найден, но кроме него ещё и много лишнего:

    На помощь можно призвать умные регулярные выражения, к примеру в следующей строке замените ffi.h на тот файл, который вы ищите — и вы всегда будете получать самый точный результат:

    Ну и для любителей графического интерфейса, вот вам от меня графический интерфейс:

    Справка по команде apt-file

    whichpkg

    whichpkg — это единая оболочка для управления пакетами в Debian. Она является обёрткой вокруг apt, apt-cache, dpkg, aptitude и других. Её цель — простое управление пакетами из одного интерфейса путём унификации главных функций этих инструментов.

    Как видно, показаны совпадения в установленных и в неустановленных пакетах. НО мой предыдущий фокус с фильтрацией командой grep здесь не работает.

    Как и положено быть унифицированному интерфейсу, у этой команды огромное количество опций и есть встроенный урок по использованию. Но их рассмотрение выходит за рамки этой заметки.

    auto-apt

    Программа auto-apt предназначена для поиска пакетов по файлу и установке пакетов по требованию.

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

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

    После установки нужно обновить список пакетов следующей командой:

    Поиск осуществляется так:

    Лично у меня программа не сработала ни на одной из двух систем (на одной не смогла полностью загрузить файлы с содержанием пакетов, как следствие — поиск ничего не нашёл, на другой системе программа вообще ничего не стала загружать).

    dlocate

    dlocate является альтернативой dpkg -L и dpkg -S. Её преимуществом является более быстрый поиск, разные дополнительные функции вроде подсчёта занимаемого места, но… она ищет только по установленным пакетам — т. е. для целей, которые озвучены в начале заметки она неприменима.

    Заключение

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

    Источник

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

    ВНИМАНИЕ ВНИМАНИЕ ВНИМАНИЕ

    Данное руководство было составлено неаккуратно, а теперь еще и устарело.

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

    может быть полезно пользователям для понимания опций dpkg и состояний пакета в более подробном виде, чем это предоставляет вызов dpkg —help.

    Описания же того что делает dpkg , когда устанавливает и удаляет пакеты частично неадекватно. Для подробной информации об этом обратитесь к Debian Packaging Guidelines, доступной под названием guidelines в системе GNU Info.

    ОПИСАНИЕ

    dpkg может также использоваться как средство для работы с dpkg-deb. Действия -b , —build , -c , —contents , —I , —info , -f , —field , -e , —control , -x , —extract , -X , —vextract и —fsys-tarfile это действия dpkg-deb и если они встречаются, dpkg запускает dpkg-deb с параметрами указанными для dpkg. Читайте dpkg-deb(8)
    для получения информации об этих действиях.

    dpkg -i | —install . Установить заданный пакет. Если задается опция —recursive или -R , то вместо имя файла пакета должен быть указан каталог.

    Установка состоит из следующих шагов:

    1. Извлечение файлов управления из пакета. 2. Если другая версия этого пакета была установлена ранее, то запускается сценарий prerm для старого пакета. 3. Запускается сценарий preinst , если он есть в данном пакете. 4. Распаковываются файлы и в это же время происходит резервное сохранение старых файлов так что если что-либо пойдет не так, мы можем восстановить их. 5. Если другая версия данного пакета была установлена ранее, то запускаем сценарий postrm для старого пакета. Заметим, что этот сценарий запускается после сценария preinst нового пакета, потому что новые файлы пишутся в то же время, когда старые удаляются. 6. Настройка пакета. Смотрите —configure для более подробной информации об этом шаге.

    Распаковать пакет, но не конфигурировать его. Если задана опция —recursive или —R , то вместо имя файла пакета должен быть указан каталог.

    dpkg —configure . | -a|—pending Перенастроить распакованный пакет. Если вместо имя пакета задана опция -a или —pending , то все распакованные, но не настроенные пакеты будут настроены.

    Настройка состоит из следующих шагов:

    1. Распаковка конфигурационных файлов и в это же время сохранение старых кофигурационных файлов, так что мы можем восстановить их, если что-то пойдет не так. 2. Запуск сценария postinst, если он есть в данном пакете.

    dpkg -r|—remove | —purge . | -a|—pending Удалить установленный пакет. —purge удаляет все,

    с конфигурационными файлами. (конфигурационные файлы это те, что указаны в управляющем файле confiles ). Если вместо имя пакета задана опция -a или —pending, то все распакованные пакеты, но отмеченные к удалению или к очищению(purge) удаляются или очищаются (в файле /var/liba/dpkg/status ). Удаление пакета состоит из следующих шагов: 1. Запуск сценария prerm 2. Удаление установленных фалов 3. Запуск сценария postrm

    dpkg -A | —avail . Обновить представление dpkg и dselect о тех пакетах, в которых доступна информация о пакете имя файла пакета. Если задана опция —recursive или —R, то вместо имя файла пакета должен быть указан каталог.

    dpkg —update-avail | —merge-avail Обновить предстваление dpkg и dselect о тех пакетах, что доступны. С действием —merge-avail информация комбинируется из старой информации и файла Packages. С действием —update-avail старая информация заменяется на информацию из файла Pack_ a ges. Файл Packages распостраняется с Debian GNU/Linux и обычно называется Packages.

    Ищет пакеты выбранные к установке, но которые по каким-либо причинам не были установлены.

    dpkg -l|—list [ . ] Показывает пакеты соответствующие данному образцу. Если образец имени пакета не задан, показывает все пакеты в /var/lib/dpkg/avialable. В образце имени пакета можно указывать `*’ и `?’.

    Показывает файлы установленные в вашей системе из пакета c названием имя пакета. Однако заметим, что файлы созданные специальными сценариями данного пакета показаны не будут.

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

    dpkg -S|—search . Ищет имя файла по образцу в установленных пакетах. В образце допустимы символы `*’ и `?’. (Для того чтобы отыскать какому пакету принадлежит файл. Прим. переводчика)

    Выводит состояние заданного пакета. Это действие показывает информацию об установленном пакете из базы состояний пакетов.

    Показвает небольшую подсказку.

    Показывает лицензию на dpkg.

    Показыает информацию о версии.

    Смотрите dpkg-deb(8)
    для более подробной информации об этих действиях.

    dpkg -b|—build [ ] — Строит пакет Debian GNU/Linux.

    dpkg -c|—contents — Показывает содержимое пакета GNU/Linux.

    dpkg -e|—control [ ] Извлекает контрольную информацию из пакета. dpkg -x|—extract — Извлекает файлы содержащиеся в данном пакете. dpkg -f|—field [ . ] — Показывает управляющее поле или поля пакета. dpkg —fsys-tarfile — Показывает файловую систему tar-файла, содержащегося в пакете Debian.

    dpkg -I|—info [ ] Показывает информацию о даннои пакете.

    dpkg -X|—vextract Извлекает и показывает имена файлов, содержащиеся в пакете.

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

    Выдает помощь о опциях отладки

    Включение отладки. octal — это восьмеричное число, сформированное побитно из битовых масок, указанных в списке ниже (заметим, что эти величины могут быть изменены в следующих версиях). Маска Описание

    Основная полезная информация по ходу выполнения

    Вызов и состояния сценариев обслуживания

    Вывод по каждому файлу в ходе работы 100 Подробный вывод по каждому файлу в ходе работы

    Вывод по каждому конфигурационному файлу

    Подробный вывод по каждому конфигурационному файлу

    Зависимости и конфликты

    Подробное освещение зависимостей и конфликтов

    Подробная ерунда о всяких dpkg/info каталогах

    Включение или отказ (no-force и refuse состояния для тех же things) некоторых вещей для действий. things -это тот или иной модификатор из отдельного списка, приведенного ниже:

    Установить пакет, даже если уже установлена его более новая версия.

    Настроить также распакованные, но не настроенные пакеты, что зависят от текущего пакета.

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

    hold: Не беспокоится, если пакет в состоянии hold или нет.

    Удалить даже если пакет важен. Важные пакеты содержат базовые команды unix и все такое прочее. Удаление такого пакета может привести к останову работы системы, так что используйте данную опцию с осторожностью.

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

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

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

    Модификаторы помеченные (*) включены по умолчанию.

    эти опции рекомендуется использовать только экспертам. Их использование без полного понимания их эффекта может разрушить вашу систему.

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

    Говорит dpkg чтобы он сохранял память или использовал ее как понадобится.

    Выбирает новый или старый формат пакета. Это опция dpkg-deb(8)

    Не читать или проверять содержимое файла управления пока строится пакет. Это опция dpkg-deb(8)

    Делать все, что необходимо, но не записывать любые изменения. Это используется для просмотра, выполнения заданных действий без модифицирования чего-либо.

    Убедитесь что задали —no-act перед действием параметром или вы

    можете закончить с непредсказуемыми результатами. (т.е. dpkg —purge foo —no-act сперва выполнит очистку пакета foo и затем будет пытаться выполнить очистку пакета —no-act, несмотря на то, что вы ожидали, что действий никаких не будет)

    Рекурсивное управление всеми файлами, отвечающими шаблону *.deb, которые были найдены в заданных каталогах и во всех их подкаталогах. Это может быть использовано с действиями -i, -A, —install, —unpack, —avail.

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

    Изменяет директории по умолчанию. admindir по умолчанию в /var/lib/dpkg и содержит много файлов, в которых дается информация о состояниях установленных или деустановленных пакетах и т.д. instdir по умолчанию / и указывает каталог, где пакеты будут инсталлированы. instdir — это также каталог установленный chroot(2)
    перед запуском сценария установки пакета, который говорит сценарию рассматривать instdir как главный каталог. Chdir изменяет instdir на dir и admindir на /var/lib/dpkg.

    Работать только с пакетами, что выбраны к установке. Данная пометка делается с помощью dse lect или dpkg, когда он управляет пакетами. Когда, например пакет удаляется, он будет помечен к инсталляции и т.д.

    Не устанавливать пакет, если таже версия этого пакетв уже установлена.

    ИНФОРМАЦИЯ О ПАКЕТАХ

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

    Пакет распакован и успешно настроен.

    Установка пакета была запущена, но не закончена по какой-либо причине.

    Пакет не установлен в вашей системе.

    Пакет распакован, но не настроен.

    Пакет распакован и настройка была запущена, но пока не завершена по какой-либо причине.

    Только конфигурационные файлы пакета существуют в системе.

    СОСТОЯНИЕ ВЫБОРКИ ПАКЕТА

    Пакет выбран к установке.

    Пакет выбран к деустановке (т.е. вы хотите удалить все файлы, исключая конфигурационные)

    purge Пакет выбран к очистке (т.е. вы хотите удалить все, даже конфигурационные файлы)

    hold Пакет помечен как hold и не управляется dpkg , пока включена опция —force-hold.

    Пакет помечен reinst-requered, является битым и требует переустановки. Эти пакеты не могут быть удалены, пока включена опция —force-reinstreq.

    Эти файлы даются здесь в их каталоге по умолчанию, см. опцию —admindir, чтобы изменить местоположение этих файлов.

    Список доступных пакетов.

    Состояния доступных пакетов. Этот файл содержит информацию о пакетах, помеченных к удалению или нет, установленных или нет и т.д. См. секцию ИНФОРМАЦИЯ О ПАКЕТАХ.

    См. deb(5)
    для информации о этом файле.

    dpkg. См. deb(5)
    для информации о этом файле.

    См. deb(5)
    для информации о этом файле.

    См. deb(5)
    для информации о этом файле.

    prerm См. deb(5)
    для информации о этом файле.

    postrm См. deb(5)
    для информации о этом файле.

    DPKG_NO_TSTP Определяется для чего-то, если вы предпочитаете, dpkg запускается с новым shell скорее чем приостанавливается dpkg, который в это время выходит из shell.

    SHELL Программа dpkg будет запущена в то время как запускается новый shell.

    Источник

    Читайте также:  Windows 10 ускорение анимации
    Оцените статью