Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
system:apt-get [2022/02/21 09:18] – [Популярное] 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]]
Строка 19: Строка 18:
 </code> </code>
  
-==== Update apt-get\\ +==== Update apt-get ====
-NO_PUBKEY ====+
  
 +NO_PUBKEY
 <code bash> <code bash>
 $ apt-get autoclean $ apt-get autoclean
Строка 44: Строка 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).
  
Строка 61: Строка 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).
Строка 118: Строка 155:
 </code> </code>
 =====Q: Есть подозрение, что из-за моих экспериментов в системе много мусора...===== =====Q: Есть подозрение, что из-за моих экспериментов в системе много мусора...=====
 +
 A: Попробуйте пакет debfoster, он при первом запуске спросит у вас о необходимости пакетов и удалит все лишнее. A: Попробуйте пакет debfoster, он при первом запуске спросит у вас о необходимости пакетов и удалит все лишнее.
  
Строка 124: Строка 162:
  
 =====Q: Как мне поставить один *.deb пакет в систему?===== =====Q: Как мне поставить один *.deb пакет в систему?=====
 +
 A: При условии того, что удовлетворены все зависимости, dpkg -i <пакет> приведет к желаемому результату. A: При условии того, что удовлетворены все зависимости, dpkg -i <пакет> приведет к желаемому результату.
  
 =====Q: Как заставить apt работать через proxy-сервер?===== =====Q: Как заставить apt работать через proxy-сервер?=====
 +
 A: Либо установив переменную окружения при помощи A: Либо установив переменную окружения при помощи
  
Строка 136: Строка 176:
 Acquire::http::Proxy "http://192.168.10.5:8888/"; Acquire::http::Proxy "http://192.168.10.5:8888/";
 </code> </code>
 +
 =====Q: Я хочу определить в каком пакете необходимый мне файл (например, libodbc.so).===== =====Q: Я хочу определить в каком пакете необходимый мне файл (например, libodbc.so).=====
 +
 А: А:
 apt-file - утилита поиска по содержимому пакетов. apt-file - утилита поиска по содержимому пакетов.
Строка 150: Строка 192:
    
 =====Q: А как просмотреть полный список содержимого пакета?===== =====Q: А как просмотреть полный список содержимого пакета?=====
 +
 А: apt-file list <пакет> - отображает содержимое указанного пакета А: apt-file list <пакет> - отображает содержимое указанного пакета
  
Строка 157: Строка 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
Строка 171: Строка 214:
  
 =====Q: У меня стоит мешанина из stable, testing, unstable и даже кое-что из experimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?===== =====Q: У меня стоит мешанина из stable, testing, unstable и даже кое-что из experimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?=====
 +
 A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf: A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf:
  
Строка 178: Строка 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
Строка 229: Строка 273:
   * apt-show-versions   * apt-show-versions
  
-===== Q: Как узнать какии пакеты заморожены/стоит пометка о запрете обновления =====+===== Q: Как узнать какие пакеты заморожены/стоит пометка о запрете обновления=====
  
   * dpkg --get-selections|grep hold   * dpkg --get-selections|grep hold
Строка 258: Строка 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>
 +