RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Stylesheet conf/userstyle.css not found, please contact the developer of "dokuwiki_2024" template.
linux:debian:apt

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
linux:debian:apt [2021/03/31 12:25] – внешнее изменение 127.0.0.1linux:debian:apt [2023/05/22 23:28] (текущий) dx
Строка 1: Строка 1:
 +====== apt & dpkg - сборник полезностей ======
  
 +==== apt pin для php из sury ====
 +
 +В Debian 11 уже идёт PHP 7.4, но я предпочитаю репозиторий sury.
 +
 +Задача: установить 7.4 из репозитория sury\\
 +Проблема: конфликт пакетов + установка производится из репозитория debian\\
 +Решение: повысить приоритет репозитория sury
 +
 +Добавляем в ''/etc/apt/preferences.d/deb.sury.pref''
 +
 +<code>
 +Package: *
 +Pin: origin "packages.sury.org"
 +Pin-Priority: 900
 +</code>
 +
 +либо только для пакетов php7.4-*
 +
 +<code>
 +Package: *php7.4*
 +Pin: origin "packages.sury.org"
 +Pin-Priority: 900
 +</code>
 +
 +Вариант ниже надо проверить
 +
 +<code>
 +Package: *
 +Pin: release o=deb.sury.org
 +Pin-Priority: 900
 +</code>
 +
 +Подсказка по priority
 +
 +[[https://interface31.ru/tech_it/2016/03/ispolzuem-apt-pinning-dlya-zakrepleniya-paketov-v-debian-ubuntu.html|RU]]
 +  * P >= 1000 - пакет будет установлен, даже если это приведет к понижению версии уже установленного пакета
 +  * 990 <= P < 1000 - пакет будет установлен, если не установлена более новая версия
 +  * 500 <= P < 990 - пакет будет установлен, если нет пакета принадлежащего к целевому выпуску или не установлена более новая версия
 +  * 100 <= P < 500 - пакет будет установлен, если нет кандидатов из других источников или установленного пакета более новой версии
 +  * 0 < P < 100 - пакет будет установлен, если нет других кандидатов и установленных пакетов любой версии
 +  * P < 0 - пакет не будет установлен ни при каких условиях
 +  * P = 0 - неопределенное состояние, не используется
 +
 +EN
 +
 +Package: *
 +Pin: origin my.custom.repo.url
 +Pin-Priority: P
 +
 +Package: *
 +Pin: origin packages.sury.org
 +Pin-Priority: 999
 +
 +  * P > 1000 causes a version to be installed even if this constitutes a downgrade of the package
 +  * 990 < P <=1000 causes a version to be installed even if it does not come from the target release, unless the installed version is more recent
 +  * 500 < P <=990 causes a version to be installed unless there is a version available belonging to the target release or the installed version is more recent
 +  * 100 < P <=500 causes a version to be installed unless there is a version available belonging to some other distribution or the installed version is more recent
 +  * 0 < P <=100 causes a version to be installed only if there is no installed version of the package
 +  * P < 0 prevents the version from being installed
 +
 +==== Посмотреть версию установленного пакета ====
 +
 +<code bash>
 +apt-show-versions nginx
 +dpkg -s nginx | grep -i version
 +apt-cache policy nginx
 +</code>
 +
 +Устаревшая команда
 +<code bash>
 +apt-cache madison curl
 +</code>
 +
 +==== Исключить пакет из обновлений ====
 +
 +**apt-mark**
 +
 +<code bash>
 +#apt-mark hold nginx
 +nginx set on hold.
 +
 +# apt upgrade
 +The following packages have been kept back:
 +  nginx
 +0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
 +</code>
 +
 +Вернуть обратно
 +
 +<code bash>
 +# apt-mark unhold nginx
 +Canceled hold on nginx.
 +</code>
 +
 +**dpkg**
 +
 +<code bash># echo "nginx hold" | dpkg --set-selections</code>
 +
 +Вернуть обратно
 +
 +<code bash># echo "nginx install" | dpkg --set-selections</code>
 +
 +**aptitude**
 +
 +<code bash>
 +# aptitude hold nginx
 +# aptitude unhold nginx
 +</code>
 +
 +==== configure: error: Please reinstall the gpgme distribution ====
 +
 +<code bash>apt-get install libgpgme11-dev</code>
 +
 +==== sudo: phpize: command not found ====
 +
 +<code bash>apt install php7.0-dev</code>
 +
 +==== rulesfile not readable: /etc/network/iptables.up.rules ====
 +
 +**iptables-persistent** заменили на **netfilter-persistent**
 +
 +iptables-persistent
 +
 +<code bash>
 +# service iptables-persistent
 +Usage: /etc/init.d/iptables-persistent {start|restart|reload|force-reload|save|flush}
 +</code>
 +
 +netfilter-persistent
 +
 +<code bash>
 +# service netfilter-persistent
 +Usage: /etc/init.d/netfilter-persistent {start|restart|reload|force-reload|save|flush} 
 +</code>
 +
 +==== sqlcmd ====
 +
 +<code bash>
 +$ curl https://packages.microsoft.com/config/debian/10/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
 +$ sudo apt update
 +$ sudo apt install mssql-tools
 +$ /opt/mssql-tools/bin/sqlcmd
 +</code>
 +
 +[[https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools|Обновить PATH]], чтобы не было ''sqlcmd command not found''
 +
 +<code bash>
 +echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
 +echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
 +</code>
 +
 +===== Ошибки =====
 +
 +==== TLS not available: requires Net::SSLeay. Exiting ====
 +
 +<code bash>
 +apt-get install libnet-ssleay-perl
 +apt-get install libcrypt-ssleay-perl
 +</code>
 +
 +==== Unable to open env file: /etc/default/locale ====
 +
 +Ошибка **pam_env(cron:session): Unable to open env file: /etc/default/locale: No such file or directory**
 +
 +<code bash>
 +apt-get install locales
 +locale-gen en_US.UTF-8
 +dpkg-reconfigure locales
 +update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
 +echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc
 +echo "export LANG=en_US.UTF-8" >> ~/.bashrc
 +echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc
 +</code>
 +
 +Проверить FIXME
 +
 +==== Разное ====
 +
 +Ошибка **The value 'stretch-backports' is invalid for APT::Default-Release as such a release is not available in the sources**
 +
 +Нужно [[https://backports.debian.org/Instructions/|установить backports]]
 +
 +Ошибка **UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 3701: invalid continuation byte**
 +
 +Файл сохранен в windows редакторе. Пересохранить в UTF-8 кодировке.
 +
 +Ошибка **UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 103: ordinal not in range(128)**
 +
 +<code>
 +export LC_CTYPE=en_US.UTF-8
 +source ~/.bashrc
 +</code>
 +
 +[[https://stackoverflow.com/a/49127686|via]]
 +
 +<code>export LC_CTYPE="en_EN.UTF-8"</code>
 +
 +[[https://stackoverflow.com/a/52546101|via]]
 +
 +<code>
 +locale-gen "en_US.UTF-8"
 +dpkg-reconfigure locales
 +</code>
 +
 +[[https://stackoverflow.com/a/38307773|via]]
 +
 +==== ipv4 и ipv6 для apt ====
 +
 +Принудительно использовать v4 или v6 соединение.
 +
 +Добавить в файл ''/etc/apt/apt.conf.d/99-force-ipv4''
 +
 +<code>Acquire::ForceIPv4 "true";</code>
 +
 +или
 +
 +<code>Acquire::ForceIPv6 "true";</code>
 +
 +==== Запретить обновление определенных пакетов ====
 +
 +Запретить обновление пакета mariadb-server
 +
 +<code>echo "mariadb-server hold" | dpkg --set-selections</code>
 +
 +Проверка
 +
 +<code>
 +# dpkg --get-selections | grep mariadb-server
 +mariadb-server                                  hold
 +</code>
 +
 +Если выполнить **apt-get upgrade**
 +
 +<code>
 +The following packages have been kept back:
 +  mariadb-server mariadb-server-10.2
 +</code>
 +
 +Разрешить обновление пакета
 +
 +<code>echo "mariadb-server install" | dpkg --set-selections</code>
 +
 +Проверка
 +
 +<code>
 +# dpkg --get-selections | grep mariadb-server          
 +mariadb-server                                  install
 +</code>
 +
 +==== sury php failed ====
 +
 +❌Ошибка
 +
 +<code>
 +W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.sury.org jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B188E2B695BD4743
 +W: Failed to fetch https://packages.sury.org/php/dists/jessie/InRelease
 +W: Some index files failed to download. They have been ignored, or old ones used instead.
 +</code>
 +
 +✅Решение
 +
 +<code>wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg</code>
 +
 +==== Как обновить только один пакет ====
 +
 +​<code># apt-get install --only-upgrade openssl</code>
 +
 +==== There is no public key available ====
 +
 +<code>
 +# apt-get update
 +# apt-get install debian-archive-keyring debian-keyrin
 +</code>
 +
 +==== Посмотреть с какими опциями был сконфигурирован PHP ====
 +
 +<code>
 +# apt-get install php5-dev
 +# php-config --configure-options
 +</code>
 +
 +==== APT shell & apt-spy. Особая Debian магия ====
 +
 +<code>
 +/usr/bin/ld: cannot find -lssl
 +/usr/bin/ld: cannot find -lcrypto
 +collect2: error: ld returned 1 exit status
 +</code>
 +
 +<code># apt-get install libssl-dev libcrypto++-dev</code>
 +
 +==== Как вывести список всех установленных пакетов в Debian ====
 +
 +<code>
 +$ dpkg --get-selections
 +adduser                                         install
 +alsa-base                                       install
 +alsa-utils                                      install
 +apache2                                         install
 +apache2-mpm-prefork                             install
 +apache2-utils                                   install
 +apache2.2-common                                install
 +apt                                             install
 +apt-utils                                       install
 +</code>
 +
 +<code>
 +$ dpkg --get-selections | grep php
 +
 +libapache2-mod-php5                             install
 +php-db                                          install
 +php-pear                                        install
 +php-sqlite3                                     install
 +php5                                            install
 +php5-cli                                        install
 +php5-common                                     install
 +php5-gd                                         install
 +php5-memcache                                   install
 +php5-mysql                                      install
 +php5-sqlite                                     install
 +php5-sqlite3                                    install
 +php5-xsl                                        install
 +</code>
 +
 +==== mailx и s-nail ====
 +
 +Ошибка - **mailx: invalid option -- 'S'**.\\
 +Решение - заменить mailx на s-nail ¯\_(ツ)_/¯ 
 +
 +История утилиты mail из 70-х годов - [[http://heirloom.sourceforge.net/mailx_history.html|mail, Mail, mailx, nail—history notes]]