Различия

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

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

Следующая версия
Предыдущая версия
system:apt-get [2017/01/05 12:23] – создано 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]] 
 +  * [[system:aptitude]] 
 + 
 +====== Популярное ====== 
 + 
 +<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
Строка 14: Строка 28:
 $ apt-get update $ apt-get update
 $ apt-get upgrade $ apt-get upgrade
 +$ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FCEF32E745F2C3D5
 +
 +
 </code> </code>
 +
  
 ==== Upgrade aptitude ==== ==== Upgrade aptitude ====
Строка 25: Строка 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).
  
Строка 42: Строка 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).
Строка 92: Строка 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, он при первом запуске спросит у вас о необходимости пакетов и удалит все лишнее.
  
Строка 103: Строка 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 - утилита поиска по содержимому пакетов.
Строка 124: Строка 192:
    
 =====Q: А как просмотреть полный список содержимого пакета?===== =====Q: А как просмотреть полный список содержимого пакета?=====
 +
 А: apt-file list <пакет> - отображает содержимое указанного пакета А: apt-file list <пакет> - отображает содержимое указанного пакета
  
Строка 131: Строка 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
Строка 145: Строка 214:
  
 =====Q: У меня стоит мешанина из stable, testing, unstable и даже кое-что из experimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?===== =====Q: У меня стоит мешанина из stable, testing, unstable и даже кое-что из experimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?=====
 +
 A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf: A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf:
  
Строка 152: Строка 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
Строка 203: Строка 273:
   * apt-show-versions   * apt-show-versions
  
-===== Q: Как узнать какии пакеты заморожены/стоит пометка о запрете обновления =====+===== Q: Как узнать какие пакеты заморожены/стоит пометка о запрете обновления=====
  
   * dpkg --get-selections|grep hold   * dpkg --get-selections|grep hold
Строка 217: Строка 287:
     * -t stable - указывает на используемый репозиторий (stable, unstable, sid итд)     * -t stable - указывает на используемый репозиторий (stable, unstable, sid итд)
  
-===== Q: Как обновить толь заданный пакет/программу? =====+===== Q: Как обновить только заданный пакет/программу? =====
  
   * apt-get install --only-upgrade bash :!:   * apt-get install --only-upgrade bash :!:
Строка 227: Строка 297:
 pub   2048R/7BD9BF62 2011-08-19 [expired: 2016-08-17] pub   2048R/7BD9BF62 2011-08-19 [expired: 2016-08-17]
 </code> </code>
-  * apt-key adv --keyserver keys.gnupg.net --recv-keys 7BD9BF62+ 
 +<code bash> 
 +apt-key adv --keyserver keys.gnupg.net --recv-keys F76221572C52609D 
 +$ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F76221572C52609D 
 +</code> 
 + 
 +===== Q: Как игнорировать проверку ssl сертификата? ===== 
 + 
 +<code bash> 
 +$ apt update -o Acquire::https::Verify-Peer=false 
 +$ apt install mc -o Acquire::https::Verify-Peer=false 
 +</code>