====== Управление ПО в Linux ====== ===== Что за дистрибутив? ===== * [[Выбор дистрибутива Linux]] ===== DPKG ===== * [[https://ru.wikipedia.org/wiki/Dpkg|Dpkg - Википедия]] * [[https://packages.ubuntu.com/search?keywords=asterisk]] # less /var/lib/dpkg/status ==== Установка пакета ==== * [[Сервис OpenFire#Установка]] сервиса OpenFire (!!! требует JRE) ==== Установленные пакеты ==== $ dpkg -l | grep openfire ==== Содержимое пакета ==== $ dpkg -L cgatepro-linux ==== В какой пакет входит файл ==== $ dpkg -S /etc/init.d/ssh $ dpkg -S /opt/CommuniGate/mail ==== Конфигурация пакета ==== # dpkg-reconfigure snort ==== Удаление пакета ==== # dpkg -r cgatepro-linux ===== Использование менеджера пакетов APT ===== * [[http://ru.wikipedia.org/wiki/Advanced_Packaging_Tool|APT wikipedia на русском]] * [[http://www.debian.org/doc/manuals/apt-howto/|APT HOWTO на русском]] * [[https://wiki.debian.org/ru/SourcesList|Debian SourcesList]] * [[http://askubuntu.com/questions/58364/whats-the-difference-between-multiverse-universe-restricted-and-main|Ubuntu What's the difference between multiverse, universe, restricted and main?]] $ apt moo ==== Настройка репозитория ==== === Debian 10 === * [[https://www.debian.org/mirror/list|Мировые серверы-зеркала Debian]] # cat /etc/apt/sources.list #deb http://deb.debian.org/debian/ buster main contrib non-free #deb http://deb.debian.org/debian buster-updates main contrib non-free deb http://ftp.ru.debian.org/debian/ buster main contrib non-free deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free deb http://security.debian.org/ buster/updates main contrib non-free #deb-src http://deb.debian.org/debian buster main contrib non-free #deb-src http://deb.debian.org/debian buster-updates main contrib non-free #deb-src http://security.debian.org/ buster/updates main contrib non-free ==== Подключение сторонних репозиториев ==== * [[https://docs.microsoft.com/ru-ru/sql/linux/sql-server-linux-setup-ubuntu|Install SQL Server on Ubuntu]] * [[https://vk.com/wall-95686747_13620|Для установки Elasticsearch и остальных продуктов Elastic, можно использовать репозиторий https://mirror.yandex.ru/mirrors.]] # cat /etc/apt/sources.list ... deb [trusted=yes] https://mirror.yandex.ru/mirrors/elastic/8/ stable main ... ==== Обновление списка доступных пакетов ==== # apt update ==== Поиск пакета ==== $ apt search antivirus ==== Информация о найденном пакете ==== $ apt show clamav-daemon ==== Какие пакеты зависят от пакета ==== $ apt depends ssh ==== Установка/обновление пакета ==== # apt install clamav-daemon # DEBIAN_FRONTEND=noninteractive apt -y install postfix ==== Удаление пакета ==== # apt remove snort # apt autoremove ==== Полное (с конфигами и данными) удаление пакета ==== # apt purge snort ==== Отключение автоматических обновлений ==== # apt purge unattended-upgrades ==== Какие пакеты можно/нужно обновить ==== * [[http://www.ubuntu.com/usn|Ubuntu security notices]] # apt list --upgradable # apt-show-versions -i # apt-show-versions -u # apt-show-versions -u | grep security $ ubuntu-support-status --show-all ==== Установка всех обновлений ==== * [[https://help.ubuntu.com/community/AutoWeeklyUpdateHowTo|AutoWeeklyUpdateHowTo]] # apt upgrade ==== Поиск пакета (в том числе среди неустановленных) в который входит файл ==== # apt install apt-file # apt-file update # apt-file search stddef.h # apt-file search identify | grep '/bin' ==== Удаление архива установленных пакетов ==== # apt clean ==== Загрузка пакетов и зависимостей для offline установки ==== * [[https://stackoverflow.com/questions/16919114/run-sudo-apt-get-install-without-internet-connection|Run sudo apt-get install without internet connection]] * [[#Удаление архива установленных пакетов]] # apt install -d zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent # find /var/cache/apt/archives/ # cd /var/cache/apt/archives/ * Сервис NFS [[Сервис NFS#Установка, настройка и запуск сервиса]] * Сервис NFS [[Сервис NFS#Установка nfs клиента]] * Сервис NFS [[Сервис NFS#Установка ПО]] ==== Исправление состояния базы данных APT ==== * Если установка прервалась на середине процесса, и вы больше не можете ни установить, ни удалить пакеты: # apt -f install # reboot # dpkg --configure -a # dpkg --force-all -P linux-headers* * Если dpkg валится с ошибкой кофигурации, можно пометить пакет как нормально установленный взять за основу файл конфигурации из документации root@server# cat /var/lib/dpkg/status ... Package: netams Status: install ok installed ... root@server:~# cp /usr/share/doc/netams/examples/netams.conf /var/lib/netams/netams.conf ==== Настройка на использование http_proxy ==== * [[Переменные окружения]] ===== RPM ===== * [[http://ru.wikipedia.org/wiki/RPM]] * [[http://www.thegeekstuff.com/2010/07/rpm-command-examples/|RPM Command: 15 Examples to Install, Uninstall, Upgrade, Query RPM Packages]] * [[http://www.ibm.com/developerworks/ru/library/l-roadmap9/index.html|Использование предварительно скомпилированных пакетов RPM и сборка приложений из исходных кодов]] ==== Использование команды rpm ==== === Установленные пакеты === # rpm -aq === Установка пакета === # wget -O openfire-4.3.2-1.x86_64.rpm https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.3.2-1.x86_64.rpm # rpm -i openfire-4.3.2-1.x86_64.rpm === Содержимое установленного пакета === # rpm -q -l openfire-4.3.2-1.x86_64 === В какой пакет входит файл === # rpm -q -f /bin/sort === Содержимое архива пакета === # rpm -q -l -p openfire-4.3.2-1.x86_64.rpm ==== Использование менеджера пакетов YUM ==== [[http://www.bog.pp.ru/work/yum.html]] === Список установленных пакетов === $ yum list installed === Поиск пакета === $ yum search mysql === Поиск пакета (в том числе среди неустановленных) в который входит файл === $ yum provides semanage $ yum provides "*/Print.h" === Информация о найденном пакете === $ yum info mysql-server === Установка пакета === # yum install mysql-server === Обновление пакета/всех пакетов === $ yum list updates # yum update mysql-server # yum update === Удаление пакета === # yum remove mysql-server === Использование proxy === # cat /etc/yum.conf ... proxy=http://10.1.1.254:3128/ === Установка групп ПО === # yum grouplist # yum -y groups install "GNOME Desktop" ===== Portage ===== ===== emerge ===== * [[https://www.calculate-linux.ru/main/ru/emerge|emerge - консольный интерфейс к системе портежей]] * [[http://edoceo.com/howto/emerge|Using Emerge to Install/Remove Packages]] === Обновление дерева пакетов === # emerge --sync === Поиск пакета === $ emerge -s lynx === Установка пакета === # emerge lynx # emerge app-admin/sudo === Управление конфигурацией сборки === * -p - показать, но не делать # emerge -p -v www-client/lynx # USE="-bzip2" emerge www-client/lynx # ldd /usr/bin/lynx === Обновление пакета/всех пакетов === # emerge -puvD world # emerge -uvD world === Удаление пакета === # emerge -c www-client/lynx ===== Snap ===== * [[https://tutorials.ubuntu.com/tutorial/basic-snap-usage|Basic snap usage]] * [[https://askubuntu.com/questions/979233/how-to-list-files-installed-by-a-snap-package|How to list files installed by a snap package?]] * [[Инструмент Gitea]] # snap refresh $ snap search firefox # snap install hello $ snap list # find /snap/ | grep hello $ hello # snap refresh hello # snap remove hello ===== Docker ===== * [[Технология Docker]] * [[Сервис TACACS+]] * [[Сервис Grafana]] ===== Список desktop приложений ===== * [[https://unix.stackexchange.com/questions/20979/how-do-i-list-all-installed-programs]] $ ls /usr/share/applications | awk -F '.desktop' ' { print $1}' - ===== Работа с исходными текстами ===== * [[http://help.ubuntu.ru/wiki/programs_installation|Компиляция и установка программ из исходников]] ==== Установка пакетов для работы с исходными текстами ==== === Debian/Ubuntu === # apt install build-essential autoconf automake === CentOS/SL === # yum install gcc gcc-c++ make autoconf automake # yum install glibc glibc-common ==== Примеры сборки программ из исходных текстов ==== * [[Сервис Asterisk#Сборка asterisk из исходных текстов]] ===== Дополнительные материалы ===== ==== Работа с исходными текстами в DPKG ==== === Установка пакетов для работы с исходными текстами === # apt install build-essential === Работа с исходными текстами пакета === == Установка, необходимых для компиляции пакета пакетов == root@gate:~# apt build-dep snort == Загрузка исходных текстов == root@gate:~# apt source snort == Загрузка/накладывание необходимых патчей (опционально) == [[http://www.snortsam.net/files/snort-plugin/readme.txt]] root@gate:~# wget http://www.snortsam.net/files/snort-plugin/snortsam-2.8.5.diff.gz root@gate:~# gunzip snortsam-2.8.5.diff.gz root@gate:~# cd snort-2.8.5.2/ root@gate:~/snort-2.8.5.2# patch -p1 < ../snortsam-2.8.5.diff patching file autojunk.sh ... patching file etc/snort.conf Hunk #1 FAILED at 883. 1 out of 1 hunk FAILED -- saving rejects to file etc/snort.conf.rej root@gate:~/snort-2.8.5.2# apt-get install automake root@gate:~/snort-2.8.5.2# sh autojunk.sh == Конфигурирование пакета (опционально) == root@gate:~/snort-2.8.5.2# ./configure --help == Создание deb пакетов из исходных текстов == root@gate:~/snort-2.8.5.2# dpkg-buildpackage -b root@gate:~/snort-2.8.5.2# cd .. == Установка пакета == root@gate:~# dpkg -i snort-common-libraries_2.8.5.2-2build1_i386.deb snort-common_2.8.5.2-2build1_all.deb snort-rules-default_2.8.5.2-2build1_all.deb snort_2.8.5.2-2build1_i386.deb ==== Создание локального репозитория APT === === Использование сервера Ubuntu === * [[https://help.ubuntu.ru/wiki/apt-mirror|Создание зеркала репозиториев с помощью apt-mirror]] root@rep:~# apt-get install apt-mirror root@rep:~# cd /var/spool/ root@rep:/var/spool# mv apt-mirror/ /disk2/ root@rep:/var/spool# ln -s /disk2/apt-mirror/ apt-mirror root@rep:~# cat /etc/apt/mirror.list set nthreads 20 set _tilde 0 deb http://ru.archive.ubuntu.com/ubuntu precise main restricted universe multiverse clean http://archive.ubuntu.com/ubuntu root@rep:~# apt-mirror -c apt-mirror root@rep:~# apt-get install apache2 root@rep:~# ln -s /var/spool/apt-mirror/mirror/ru.archive.ubuntu.com/ubuntu /var/www/ubuntu === Использование сервера FreeBSD === [repository:~] # pkg_add -r dpkg [repository:~] # pkg_add -r wget [repository:~] # cd /usr/local/ [repository:/usr/local] # fetch http://apt-mirror.sourceforge.net/apt-mirror/apt-mirror_0.4.8.orig.tar.gz [repository:/usr/local] # tar -xvf apt-mirror_0.4.8.orig.tar.gz [repository:~] # mkdir /etc/apt/ [repository:~] # cp /usr/local/apt-mirror-0.4.8/mirror.list /etc/apt/ [repository:~] # grep -v '^#' /etc/apt/mirror.list set defaultarch i386 deb http://ru.archive.ubuntu.com/ubuntu lucid main restricted universe multiverse clean http://ru.archive.ubuntu.com/debian [repository:~] # mkdir -p /var/spool/apt-mirror/mirror [repository:~] # mkdir -p /var/spool/apt-mirror/var [repository:~] # cp /usr/local/apt-mirror-0.4.8/postmirror.sh /var/spool/apt-mirror/var/ [repository:~] # /usr/local/apt-mirror-0.4.8/apt-mirror [repository:~] # rm /var/spool/apt-mirror/var/apt-mirror.lock [repository:~] # pkg_add -r apache22 [repository:~] # ln -s /var/spool/apt-mirror/mirror/ru.archive.ubuntu.com/ubuntu /usr/local/www/apache22/data/ubuntu === Настройка клиентов === # cat /etc/apt/sources.list deb http://rep/ubuntu/ lucid main restricted universe multiverse