Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
system:apt-get [2022/01/27 21:17] – [Менеджер пакетов APT: вопросы и ответы] mirocowsystem:apt-get [2024/02/23 01:51] (текущий) – [Q: Как узнать какии пакеты заморожены/стоит пометка о запрете обновления?] mirocow
Строка 1: Строка 1:
-{{tag>shell utils system apt dpkg}}+{{tag>shell utils system apt dpkg NO_PUBKEY}}
  
 ====== Менеджер пакетов APT: вопросы и ответы ====== ====== Менеджер пакетов APT: вопросы и ответы ======
  
   * [[system:dpkg|dpkg]] - работа с пакетами   * [[system:dpkg|dpkg]] - работа с пакетами
-  * [[system:apt|Advanced Packaging Tool]] 
   * [[:add-apt-repository]]   * [[:add-apt-repository]]
   * [[system:aptitude]]   * [[system:aptitude]]
Строка 10: Строка 9:
 ====== Популярное ====== ====== Популярное ======
  
 +<code bash>
 +$ apt istall ifupdown
 +$ apt autoremove -f
 +$ apt purge ifupdown
 +$ apt-file search ifupdown
 +$ apt-file list ifupdown
 +
 +</code>
  
 ==== Update apt-get ==== ==== Update apt-get ====
  
 +NO_PUBKEY
 <code bash> <code bash>
 $ apt-get autoclean $ apt-get autoclean
Строка 21: Строка 29:
 $ apt-get upgrade $ apt-get upgrade
 $ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FCEF32E745F2C3D5 $ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FCEF32E745F2C3D5
 +
 +
 </code> </code>
 +
  
 ==== Upgrade aptitude ==== ==== Upgrade aptitude ====
Строка 32: Строка 43:
 $ aptitude -f install $ aptitude -f install
 $ reboot $ reboot
 +</code>
 +
 +===== apt-cache policy =====
 +
 +apt-cache policy mysql-client-8.0 mysql-community-client
 +
 +<code>
 +mysql-client-8.0:
 +  Установлен: (отсутствует)
 +  Кандидат:   (отсутствует)
 +  Таблица версий:
 +mysql-community-client:
 +  Установлен: (отсутствует)
 +  Кандидат:   8.0.28-1ubuntu20.04
 +  Таблица версий:
 +     8.0.28-1ubuntu20.04 500
 +        500 http://repo.mysql.com/apt/ubuntu focal/mysql-8.0 amd64 Packages
 </code> </code>
  
 ===== Q: Downgrade или Как понизить версию пакета ===== ===== Q: Downgrade или Как понизить версию пакета =====
  
-  * [[system:apt&#qкак_apt-get_заставить_не_обновлять_пакет]]+  * apt-cache showpkg package-name 
 +  * apt-get install packagename=version 
 +  * apt-get install firefox=59.0.2+build1-0ubuntu1 
 +  * apt-mark hold packagename 
 +  * aptitude install packagename=version 
 +  * apt-get install <package-name>=<package-version-number> 
 +  * apt-get -t=<target release> install <package-name> 
 =====Q: Что такое apt?===== =====Q: Что такое apt?=====
 +
 A: apt - это Advanced Packaging Tool, система управления пакетами, то есть набор программ для установки, удаления, поиска бинарных пакетов определенных форматов. A: apt - это Advanced Packaging Tool, система управления пакетами, то есть набор программ для установки, удаления, поиска бинарных пакетов определенных форматов.
  
 =====Q: В каких дистрибутивах используется apt?===== =====Q: В каких дистрибутивах используется apt?=====
 +
 A: apt первоначально был разработан для дистрибутива Debian и формата пакетов deb. Ныне используется во всех клонах Debian (Ubuntu, Kubuntu, Mepis, Xandros), а также в некоторыхх rpm based дистрибутивах (например, в Altlinux). A: apt первоначально был разработан для дистрибутива Debian и формата пакетов deb. Ныне используется во всех клонах Debian (Ubuntu, Kubuntu, Mepis, Xandros), а также в некоторыхх rpm based дистрибутивах (например, в Altlinux).
  
Строка 49: Строка 86:
  
 =====Q: Какие утилиты входят в состав пакета apt?===== =====Q: Какие утилиты входят в состав пакета apt?=====
 +
 apt-cache - средство для работы с кэшами пакетов (например, поиса пакетов по ключевым словам), apt-extracttemplates, apt-sortpkgs, apt-cdrom, apt-ftparchive, apt-key, apt-config, apt-get - средство установки и удаления пакетов, apt-setup apt-cache - средство для работы с кэшами пакетов (например, поиса пакетов по ключевым словам), apt-extracttemplates, apt-sortpkgs, apt-cdrom, apt-ftparchive, apt-key, apt-config, apt-get - средство установки и удаления пакетов, apt-setup
  
 =====Q: Как обновить список пакетов?===== =====Q: Как обновить список пакетов?=====
 +
 A: apt-get update пройдет по всему списку указанному у вас в /etc/apt/sources.list и обновит списки пакетов по всем репозиториям. A: apt-get update пройдет по всему списку указанному у вас в /etc/apt/sources.list и обновит списки пакетов по всем репозиториям.
  
 =====Q: Списки я обновил, как теперь обновить сами пакеты?===== =====Q: Списки я обновил, как теперь обновить сами пакеты?=====
 +
 A: apt-get upgrade - менее "интеллектуальный" вариант, обновляющий пакеты, которые есть в системе; A: apt-get upgrade - менее "интеллектуальный" вариант, обновляющий пакеты, которые есть в системе;
 apt-get dist-upgrade - более "интеллектуальный" вариант, который следит за тем, не сменили ли пакеты имя и пытающийся обновлять более важные пакеты даже ценой удаления менее важных. apt-get dist-upgrade - более "интеллектуальный" вариант, который следит за тем, не сменили ли пакеты имя и пытающийся обновлять более важные пакеты даже ценой удаления менее важных.
  
 =====Q: А я не хочу все обновлять, как мне обновить только один пакет?===== =====Q: А я не хочу все обновлять, как мне обновить только один пакет?=====
 +
 A: Точно так же, как и установка пакета: apt-get install <пакет> A: Точно так же, как и установка пакета: apt-get install <пакет>
  
 =====Q: Как удалить пакет?===== =====Q: Как удалить пакет?=====
 +
 A: apt-get remove <пакет> A: apt-get remove <пакет>
  
 =====Q: Как удалить все пакеты программы?===== =====Q: Как удалить все пакеты программы?=====
 +
 A: <text>apt-get remove --purge percona*****</text> A: <text>apt-get remove --purge percona*****</text>
  
 =====Q: А после удаления точно ничего от пакета не останется?===== =====Q: А после удаления точно ничего от пакета не останется?=====
 +
   * A: Для того, чтобы точно не осталось, лучше пользоваться apt-get remove --purge<пакет>   * A: Для того, чтобы точно не осталось, лучше пользоваться apt-get remove --purge<пакет>
   * A: или apt-get purge <пакет>   * A: или apt-get purge <пакет>
  
 =====Q: Как мне узнать, как называется пакет для какой-то определенной цели?===== =====Q: Как мне узнать, как называется пакет для какой-то определенной цели?=====
 +
 A: Попробуйте поиск по ключевым словам при помощи apt-cache search <слова> A: Попробуйте поиск по ключевым словам при помощи apt-cache search <слова>
  
 =====Q: Мне принесли компакты дистрибутива, которых у меня не было, как мне их добавить?===== =====Q: Мне принесли компакты дистрибутива, которых у меня не было, как мне их добавить?=====
 +
 A: apt-cdrom add должно помочь A: apt-cdrom add должно помочь
  
 =====Q: Мне кажется, что меня взломали и что-то сделали с <пакетом>===== =====Q: Мне кажется, что меня взломали и что-то сделали с <пакетом>=====
 +
 A: apt-get install --reinstall вернет пакет к изначальному состоянию, то есть такому, какой он был на свежеустановленной системе. A: apt-get install --reinstall вернет пакет к изначальному состоянию, то есть такому, какой он был на свежеустановленной системе.
  
 =====Q: Очень хочется создать локальное зеркало, в какую сторону смотреть?===== =====Q: Очень хочется создать локальное зеркало, в какую сторону смотреть?=====
 +
 A: apt-move скорее всего решит полностью вашу проблему, для него достаточно указать, где лежит архив файлов и куда выложить ваше зеркало. A: apt-move скорее всего решит полностью вашу проблему, для него достаточно указать, где лежит архив файлов и куда выложить ваше зеркало.
  
 =====Q: А подробнее про apt-move можно?===== =====Q: А подробнее про apt-move можно?=====
 +
 А: Можно: А: Можно:
 apt-move update - переносит из /var/cache/apt/archives пакеты в директорию локального зеркала (указывается в /etc/apt-move.conf как переменная LOCALDIR=path_to). apt-move update - переносит из /var/cache/apt/archives пакеты в директорию локального зеркала (указывается в /etc/apt-move.conf как переменная LOCALDIR=path_to).
Строка 99: Строка 148:
 A: Простой скрипт, выполненный в пустом каталоге, соберет в нем пакеты, которые установлены в системе: A: Простой скрипт, выполненный в пустом каталоге, соберет в нем пакеты, которые установлены в системе:
  
 +<code bash>
 dpkg --get-selections | \ dpkg --get-selections | \
   grep -v "deinstall" |  \   grep -v "deinstall" |  \
  awk '{print $1}' | \  awk '{print $1}' | \
  xargs dpkg-repack  xargs dpkg-repack
 +</code>
 =====Q: Есть подозрение, что из-за моих экспериментов в системе много мусора...===== =====Q: Есть подозрение, что из-за моих экспериментов в системе много мусора...=====
 +
 A: Попробуйте пакет debfoster, он при первом запуске спросит у вас о необходимости пакетов и удалит все лишнее. A: Попробуйте пакет debfoster, он при первом запуске спросит у вас о необходимости пакетов и удалит все лишнее.
  
Строка 110: Строка 162:
  
 =====Q: Как мне поставить один *.deb пакет в систему?===== =====Q: Как мне поставить один *.deb пакет в систему?=====
 +
 A: При условии того, что удовлетворены все зависимости, dpkg -i <пакет> приведет к желаемому результату. A: При условии того, что удовлетворены все зависимости, dpkg -i <пакет> приведет к желаемому результату.
  
 =====Q: Как заставить apt работать через proxy-сервер?===== =====Q: Как заставить apt работать через proxy-сервер?=====
 +
 A: Либо установив переменную окружения при помощи A: Либо установив переменную окружения при помощи
  
   * export "http://login:password@xxx.xxx.x.xx:yyyy"    * export "http://login:password@xxx.xxx.x.xx:yyyy" 
   * либо прописав в файл /etc/apt/apt.conf строку Acquire::http::Proxy "http://xxx.xxx.xx:yyyy" где xxx.xxx.xx - имя вашего прокси, yyyy - порт   * либо прописав в файл /etc/apt/apt.conf строку Acquire::http::Proxy "http://xxx.xxx.xx:yyyy" где xxx.xxx.xx - имя вашего прокси, yyyy - порт
 +
 +nano /etc/apt/apt.conf.d/proxy.conf
 +<code bash>
 +Acquire::http::Proxy "http://192.168.10.5:8888/";
 +</code>
 +
 =====Q: Я хочу определить в каком пакете необходимый мне файл (например, libodbc.so).===== =====Q: Я хочу определить в каком пакете необходимый мне файл (например, libodbc.so).=====
 +
 А: А:
 apt-file - утилита поиска по содержимому пакетов. apt-file - утилита поиска по содержимому пакетов.
Строка 131: Строка 192:
    
 =====Q: А как просмотреть полный список содержимого пакета?===== =====Q: А как просмотреть полный список содержимого пакета?=====
 +
 А: apt-file list <пакет> - отображает содержимое указанного пакета А: apt-file list <пакет> - отображает содержимое указанного пакета
  
Строка 138: Строка 200:
  
 =====Q: Как мне найти неиспользуемые (осиротевшие) пакеты?===== =====Q: Как мне найти неиспользуемые (осиротевшие) пакеты?=====
 +
 А: deborphan без указания ключа осуществляет поиск в разделе библиотек, с указанием ключа -a поиск ведется во всех разделах. Имеется и интерфейс к deborphan - orphaner, поставляются в одном пакете. А: deborphan без указания ключа осуществляет поиск в разделе библиотек, с указанием ключа -a поиск ведется во всех разделах. Имеется и интерфейс к deborphan - orphaner, поставляются в одном пакете.
  
 =====Q: есть локальный репозиторий из дистрибутивных дисков. Packages.gz сделал, а вот как сделать Contents-<ARCH>.gz для того, чтобы apt-file'ом можно было пользоваться?===== =====Q: есть локальный репозиторий из дистрибутивных дисков. Packages.gz сделал, а вот как сделать Contents-<ARCH>.gz для того, чтобы apt-file'ом можно было пользоваться?=====
-A: 
  
-apt-ftparchive contents . | gzip > Contents-i386.gz+A:apt-ftparchive contents . | gzip > Contents-i386.gz
 также с помощью apt-ftparchive можно создавать Sources.gz и Packages.gz также с помощью apt-ftparchive можно создавать Sources.gz и Packages.gz
 apt-ftparchive sources . | gzip > Sources.gz apt-ftparchive sources . | gzip > Sources.gz
Строка 152: Строка 214:
  
 =====Q: У меня стоит мешанина из stable, testing, unstable и даже кое-что из experimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?===== =====Q: У меня стоит мешанина из stable, testing, unstable и даже кое-что из experimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?=====
 +
 A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf: A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf:
  
Строка 159: Строка 222:
 $ apt-get -t unstable install имя_пакета $ apt-get -t unstable install имя_пакета
  
-===== Q: Как узнать расширенное описание пакета =====+===== Q: Как узнать расширенное описание пакета=====
  
   * apt-cache -f search apache2-utils   * apt-cache -f search apache2-utils
   * apt-cache show sysstat   * apt-cache show sysstat
  
-===== Q: Как исправить зависимости в пакетах =====+===== Q: Как исправить зависимости в пакетах=====
  
   * apt-get -f install   * apt-get -f install
Строка 210: Строка 273:
   * apt-show-versions   * apt-show-versions
  
-===== Q: Как узнать какии пакеты заморожены/стоит пометка о запрете обновления =====+===== Q: Как узнать какие пакеты заморожены/стоит пометка о запрете обновления=====
  
   * dpkg --get-selections|grep hold   * dpkg --get-selections|grep hold
Строка 239: Строка 302:
 $ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F76221572C52609D $ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F76221572C52609D
 </code> </code>
 +
 +===== Q: Как игнорировать проверку ssl сертификата? =====
 +
 +<code bash>
 +$ apt update -o Acquire::https::Verify-Peer=false
 +$ apt install mc -o Acquire::https::Verify-Peer=false
 +</code>
 +