Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| linux:debian:apt [2021/03/31 12:25] – внешнее изменение 127.0.0.1 | linux:debian:apt [2023/05/22 23:28] (текущий) – dx | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== apt & dpkg - сборник полезностей ====== | ||
| + | ==== apt pin для php из sury ==== | ||
| + | |||
| + | В Debian 11 уже идёт PHP 7.4, но я предпочитаю репозиторий sury. | ||
| + | |||
| + | Задача: | ||
| + | Проблема: | ||
| + | Решение: | ||
| + | |||
| + | Добавляем в ''/ | ||
| + | |||
| + | < | ||
| + | Package: * | ||
| + | Pin: origin " | ||
| + | Pin-Priority: | ||
| + | </ | ||
| + | |||
| + | либо только для пакетов php7.4-* | ||
| + | |||
| + | < | ||
| + | Package: *php7.4* | ||
| + | Pin: origin " | ||
| + | Pin-Priority: | ||
| + | </ | ||
| + | |||
| + | Вариант ниже надо проверить | ||
| + | |||
| + | < | ||
| + | Package: * | ||
| + | Pin: release o=deb.sury.org | ||
| + | Pin-Priority: | ||
| + | </ | ||
| + | |||
| + | Подсказка по priority | ||
| + | |||
| + | [[https:// | ||
| + | * 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: | ||
| + | |||
| + | Package: * | ||
| + | Pin: origin packages.sury.org | ||
| + | Pin-Priority: | ||
| + | |||
| + | * 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 bash> | ||
| + | apt-cache madison curl | ||
| + | </ | ||
| + | |||
| + | ==== Исключить пакет из обновлений ==== | ||
| + | |||
| + | **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 bash> | ||
| + | # apt-mark unhold nginx | ||
| + | Canceled hold on nginx. | ||
| + | </ | ||
| + | |||
| + | **dpkg** | ||
| + | |||
| + | <code bash># echo "nginx hold" | dpkg --set-selections</ | ||
| + | |||
| + | Вернуть обратно | ||
| + | |||
| + | <code bash># echo "nginx install" | ||
| + | |||
| + | **aptitude** | ||
| + | |||
| + | <code bash> | ||
| + | # aptitude hold nginx | ||
| + | # aptitude unhold nginx | ||
| + | </ | ||
| + | |||
| + | ==== configure: error: Please reinstall the gpgme distribution ==== | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | ==== sudo: phpize: command not found ==== | ||
| + | |||
| + | <code bash>apt install php7.0-dev</ | ||
| + | |||
| + | ==== rulesfile not readable: / | ||
| + | |||
| + | **iptables-persistent** заменили на **netfilter-persistent** | ||
| + | |||
| + | iptables-persistent | ||
| + | |||
| + | <code bash> | ||
| + | # service iptables-persistent | ||
| + | Usage: / | ||
| + | </ | ||
| + | |||
| + | netfilter-persistent | ||
| + | |||
| + | <code bash> | ||
| + | # service netfilter-persistent | ||
| + | Usage: / | ||
| + | </ | ||
| + | |||
| + | ==== sqlcmd ==== | ||
| + | |||
| + | <code bash> | ||
| + | $ curl https:// | ||
| + | $ sudo apt update | ||
| + | $ sudo apt install mssql-tools | ||
| + | $ / | ||
| + | </ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <code bash> | ||
| + | echo ' | ||
| + | echo ' | ||
| + | </ | ||
| + | |||
| + | ===== Ошибки ===== | ||
| + | |||
| + | ==== TLS not available: requires Net:: | ||
| + | |||
| + | <code bash> | ||
| + | apt-get install libnet-ssleay-perl | ||
| + | apt-get install libcrypt-ssleay-perl | ||
| + | </ | ||
| + | |||
| + | ==== Unable to open env file: / | ||
| + | |||
| + | Ошибка **pam_env(cron: | ||
| + | |||
| + | <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 " | ||
| + | echo " | ||
| + | echo " | ||
| + | </ | ||
| + | |||
| + | Проверить FIXME | ||
| + | |||
| + | ==== Разное ==== | ||
| + | |||
| + | Ошибка **The value ' | ||
| + | |||
| + | Нужно [[https:// | ||
| + | |||
| + | Ошибка **UnicodeDecodeError: | ||
| + | |||
| + | Файл сохранен в windows редакторе. Пересохранить в UTF-8 кодировке. | ||
| + | |||
| + | Ошибка **UnicodeDecodeError: | ||
| + | |||
| + | < | ||
| + | export LC_CTYPE=en_US.UTF-8 | ||
| + | source ~/.bashrc | ||
| + | </ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | < | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | < | ||
| + | locale-gen " | ||
| + | dpkg-reconfigure locales | ||
| + | </ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== ipv4 и ipv6 для apt ==== | ||
| + | |||
| + | Принудительно использовать v4 или v6 соединение. | ||
| + | |||
| + | Добавить в файл ''/ | ||
| + | |||
| + | < | ||
| + | |||
| + | или | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== Запретить обновление определенных пакетов ==== | ||
| + | |||
| + | Запретить обновление пакета mariadb-server | ||
| + | |||
| + | < | ||
| + | |||
| + | Проверка | ||
| + | |||
| + | < | ||
| + | # dpkg --get-selections | grep mariadb-server | ||
| + | mariadb-server | ||
| + | </ | ||
| + | |||
| + | Если выполнить **apt-get upgrade** | ||
| + | |||
| + | < | ||
| + | The following packages have been kept back: | ||
| + | mariadb-server mariadb-server-10.2 | ||
| + | </ | ||
| + | |||
| + | Разрешить обновление пакета | ||
| + | |||
| + | < | ||
| + | |||
| + | Проверка | ||
| + | |||
| + | < | ||
| + | # dpkg --get-selections | grep mariadb-server | ||
| + | mariadb-server | ||
| + | </ | ||
| + | |||
| + | ==== sury php failed ==== | ||
| + | |||
| + | ❌Ошибка | ||
| + | |||
| + | < | ||
| + | W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https:// | ||
| + | W: Failed to fetch https:// | ||
| + | W: Some index files failed to download. They have been ignored, or old ones used instead. | ||
| + | </ | ||
| + | |||
| + | ✅Решение | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== Как обновить только один пакет ==== | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== There is no public key available ==== | ||
| + | |||
| + | < | ||
| + | # apt-get update | ||
| + | # apt-get install debian-archive-keyring debian-keyrin | ||
| + | </ | ||
| + | |||
| + | ==== Посмотреть с какими опциями был сконфигурирован PHP ==== | ||
| + | |||
| + | < | ||
| + | # apt-get install php5-dev | ||
| + | # php-config --configure-options | ||
| + | </ | ||
| + | |||
| + | ==== APT shell & apt-spy. Особая Debian магия ==== | ||
| + | |||
| + | < | ||
| + | / | ||
| + | / | ||
| + | collect2: error: ld returned 1 exit status | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== Как вывести список всех установленных пакетов в Debian ==== | ||
| + | |||
| + | < | ||
| + | $ dpkg --get-selections | ||
| + | adduser | ||
| + | alsa-base | ||
| + | alsa-utils | ||
| + | apache2 | ||
| + | apache2-mpm-prefork | ||
| + | apache2-utils | ||
| + | apache2.2-common | ||
| + | apt | ||
| + | apt-utils | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ dpkg --get-selections | grep php | ||
| + | |||
| + | libapache2-mod-php5 | ||
| + | php-db | ||
| + | php-pear | ||
| + | php-sqlite3 | ||
| + | php5 install | ||
| + | php5-cli | ||
| + | php5-common | ||
| + | php5-gd | ||
| + | php5-memcache | ||
| + | php5-mysql | ||
| + | php5-sqlite | ||
| + | php5-sqlite3 | ||
| + | php5-xsl | ||
| + | </ | ||
| + | |||
| + | ==== mailx и s-nail ==== | ||
| + | |||
| + | Ошибка - **mailx: invalid option -- ' | ||
| + | Решение - заменить mailx на s-nail ¯\_(ツ)_/ | ||
| + | |||
| + | История утилиты mail из 70-х годов - [[http:// | ||