Как найти информацию про установленный пакет на Linux?
В результате я получаю отрывки информации, нет полной картины. Я использую методы, какие озвучены, но не знаю о существовании других. Часто никакого Вики вообще нету..
А хотелось бы получить хотя бы название методов, чтобы дальше уже копать по ним, примеры использования. В идеале структурированную информацию о пакете
Для примера: установил я пакеты sudo apt install zbar-tools python-zbar python-qrtools — для распознавания qr кода на изображении или же sudo apt-get install bluetooth bluez blueman (это для работы с bluetooth на Raspberry Pi). Я знаю о существовании мифического файла blescan.py с примером работы, но не могу найти его расположения.
Буду признателен за объяснения и разжёвывание общих принципов.
Документация на всё что угодно всегда хоть немного неполна, неактуальна, некорректна и самопротиворечива. 🙂
@Shamil это общая проблема опенсорса. Все пректы GNU достаточно подробно задокументированы. Для себя, проблему с примерами я решил созданием проекта, куда добавляю записи из рабочего процесса github.com/Hellseher/cix
1 ответ 1
начинать можно с просмотра файлов, входящих в пакет:
например, рассмотрим пакет bluez .
исполняемые файлы обычно располагаются в каталогах, содержащих в пути строку bin :
$ dpkg -L bluez | grep bin /bin /bin/hciconfig /usr/sbin /usr/bin /usr/bin/bluetoothctl /usr/bin/bccmd /usr/bin/btmon /usr/bin/rctest /usr/bin/hciattach /usr/bin/hcitool /usr/bin/sdptool /usr/bin/ciptool /usr/bin/l2ping /usr/bin/l2test /usr/bin/rfcomm /usr/bin/gatttool /usr/sbin/bluetoothd
видим ряд исполняемых файлов, начиная с hciconfig и заканчивая bluetoothd .
man-страницы обычно располагаются в каталогах, содержащих в пути строку man :
$ dpkg -L bluez | grep man /usr/share/man /usr/share/man/man8 /usr/share/man/man8/bluetoothd.8.gz /usr/share/man/man1 /usr/share/man/man1/bluetoothctl.1.gz /usr/share/man/man1/btmon.1.gz /usr/share/man/man1/l2test.1.gz /usr/share/man/man1/hid2hci.1.gz /usr/share/man/man1/l2ping.1.gz /usr/share/man/man1/rctest.1.gz /usr/share/man/man1/rfcomm.1.gz /usr/share/man/man1/ciptool.1.gz /usr/share/man/man1/hcitool.1.gz /usr/share/man/man1/hciconfig.1.gz /usr/share/man/man1/hciattach.1.gz /usr/share/man/man1/bccmd.1.gz /usr/share/man/man1/sdptool.1.gz
видим ряд man-страниц, начиная с bluetoothd и заканчивая sdptool . просмотреть их можно командами man bluetoothd , . man sdptool .
документацию (иногда содержащую примеры) можно отобрать по признаку «содержит строку doc в пути»:
$ dpkg -L bluez | grep doc /usr/share/doc /usr/share/doc/bluez /usr/share/doc/bluez/README.Debian.gz /usr/share/doc/bluez/changelog.Debian.gz /usr/share/doc/bluez/changelog.Debian.amd64.gz /usr/share/doc/bluez/NEWS.Debian.gz /usr/share/doc/bluez/changelog.gz /usr/share/doc/bluez/copyright
нередко, если документации много, её выделют в отдельный пакет, имя которого заканчивается суффиксом -doc (а иногда ещё и с дополнительным разбиением на языки, с добавлением суффикса -язык ). например, документация к пакету aptitude содержится в таких пакетах:
$ apt-cache search aptitude doc aptitude-doc-cs - Czech manual for aptitude, a terminal-based package manager aptitude-doc-en - English manual for aptitude, a terminal-based package manager aptitude-doc-es - Spanish manual for aptitude, a terminal-based package manager aptitude-doc-fi - Finnish manual for aptitude, a terminal-based package manager aptitude-doc-fr - French manual for aptitude, a terminal-based package manager aptitude-doc-it - Italian manual for aptitude, a terminal-based package manager aptitude-doc-ja - Japanese manual for aptitude, a terminal-based package manager aptitude-doc-ru - Russian manual for aptitude, a terminal-based package manager
Куда устанавливаются программы в линуксе?
Читал статью что программы устанавливаются в корневой раздел «/» но потом нашел другую информацию что устанавливаются в «/home» в линукс сообществе в вк, так куда?
Как мэйнтейнеру пакета в голову стукнет.
phoen ★★ ( 21.09.20 13:22:33 MSK )
Последнее исправление: phoen 21.09.20 13:22:43 MSK (всего исправлений: 1)
Те что из репозитария ставятся в /, сторонние если юзер хочет может поставить в /home или в /.
обычно, пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin, вспомoгательные файлы программ хранятся в /usr/lib, /usr/share, /home и т.д. Сторонние программы могут устанавливаться целиком в /opt
Если вкратце, то куда угодно.
нормальные пакеты равномерно размазываются по файловой системе, а всё остальное — куда угодно.
кстати, а какой смысл в таком равномерном размазывании?
пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin
Вообще-то нет. В /usr/local идёт самосбор. Из пакетов туда вообще не ставят в нормальной ситуации.
Что за дистрибутив у тебя? Вообще куда угодно могут устанвливаться, тут грань между системными и прикладными программами стерта и при установке «размазывается» по дереву (хотя бывают и исключения).
чтобы не искать конфиг и исполняемый файл в новой жопе очередного изобретательного разработчика?
«Так исторически сложилось» ?
кстати, а какой смысл в таком равномерном размазывании?
Есть дистрибутивы, они разные в разных места установки разные, всем заведует менеджер пакетов apt в Debian, pacman в Arch, dnf в Fedora и так далее, соотвецтвенно форматы пакетов разные. Достаточно знать как пользоваться менеджером в любимом тебе дистрибутиве и всё.
Чаще всего программы устанавливаются в /usr/bin/ или в /usr/local/bin есть пользовательские каталоги для этого в особых случаях ~/.local/bin/ например. Сторонее проприетарное ПО или же то которое не хочется совать в систему ставят уже руками в /opt/ На самом деле вариантов ещё много, у каждой цели установки свой смысл, просто иди и где то читай про это. И да порой конечно есть излишества.
В любом случае если не городить что-то самому то используй менеджер пакетов который в 99% случаев всё ставить в /usr/bin/ Что бы те было понятнее usr это User System Resources почти program files как в винде, только там один каталог где всё в кашу, а тут есть ещё дополнительное дробление и всё на свои полочки кидается и если знаешь что для чего всегда заранее знаешь что и где искать.
Есть ещё /bin это системные программы наиболее важные для функционирования системой. (Не совсем так, но считай так и есть)
Что бы ещё было понятнее, есть разные типы файлов в одной программе картинки, документация, примеры, конфигурационные фалйы, библиотеки и исполняемые файлы, при установке всё это расфасовывается не в 1 место, а в разные в зависимости от типа файла и его предназначения. И программа установленная как бы интегрируется с системой, сливается с ней в одно целое, а не как в винде в отдельном каталоге всё в кучу. И у того и у того есть и минусы и плюсы.
LINUX-ORG-RU ★★★★★ ( 21.09.20 14:38:57 MSK )
Последнее исправление: LINUX-ORG-RU 21.09.20 14:39:42 MSK (всего исправлений: 1)
Список установленных пакетов Debian
Иногда возникают ситуации, когда нужно узнать какие пакеты установлены в системе. Это может понадобиться если вы хотите сделать резервную копию установленных пакетов, проверить их целостность, перенести все пакеты в другую систему и для решения многих других задач. В Debian для этого можно использовать несколько методов.
В сегодняшней статье мы рассмотрим как посмотреть список установленных пакетов Debian с помощью терминала, в интерфейсе curses, а также в графическом интерфейсе. Такие списки можно использовать не только для резервного копирования, но и для того, чтобы просто перебрать и удалить ненужные программы, тем самым очистив систему от мусора.
Список установленных пакетов Debian
Самый первый способ посмотреть установленные пакеты Debian, это утилита dpkg. Она может применяться не только в Debian, а во всех, основанных на нем дистрибутивах:
dpkg —get-selections | grep -v deinstall
Полученный список можно сразу же сохранить в файл, чтобы потом его использовать:
dpkg —get-selections | grep -v deinstall > mylist.txt
Можно также убрать всю лишнюю информацию и сохранить только имена пакетов:
dpkg -l | grep ^ii | awk ‘< print $2>‘ > mylist.txt
Следующий способ решения этой задачи — использование утилиты dpkg-query. Она похожа на предыдущий вариант, но немного проще. Такая команда отобразит все установленные пакеты вместе с информацией о них:
Здесь тоже можно выбрать только имена пакетов с помощью опции -f:
Третий метод — это утилита apt, которой мы привыкли пользоваться для установки приложений, она имеет команду list:
Далее, можно отфильтровать только пакеты, имя которых содержит определенные символы:
apt list —installed | grep python
Мы более подробно рассматривали apt в статье установка пакетов в Debian. Еще одна интересная возможность apt — посмотреть какие пакеты были установлены вручную. Для этого наберите:
И еще один вариант с использованием apt:
Утилита для управления пакетами aptitude тоже позволяет вывести список установленных пакетов:
Также aptitude может работать в режиме curses, что очень удобно:
Последний способ посмотреть список установленных пакетов — это файл /var/lib/apt/extended_states. Это база данных, в которой содержится установленные программы debian в таком формате:
Package: имя_пакета
Architecture: архитектура
Auto-Installed: 0_или_1
Восстановление списка установленных пакетов
Многие пользователи создают список пакетов не просто чтобы посмотреть, а для будущего восстановления. Если вы делали список с помощью dpkg, то его можно очень просто восстановить в системе с помощью аналогичной команды:
sudo dpkg —clear-selections
$ sudo dpkg —set-selections < mylist.txt
Все очень просто. Чтобы установить пакеты после добавления их в список используйте команду:
Если же у вас просто есть список имен пакетов, то восстанавливать его нужно немного по-другому. Просто передайте все эти имена команде apt для установки:
Выводы
В этой статье мы рассмотрели как посмотреть список установленных пакетов Debian. Это может быть очень полезно и выполняется достаточно просто. Надеюсь, эта информация была полезной для вас.
На завершение видео про установку и удаление пакетов:
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.