Skip to content
andyceo edited this page May 17, 2023 · 5 revisions

Здесь рассказывается о работе с пакетным менеджером apt (используется в дистрибутиве Debian, а также его производных Ubuntu и др.) и его обертками, такими, как aptitude, apt-get и т.п., а также других утилит работы с пакетами, например dpkg.

Ключи репозиториев

  • Показать список всех ключей:

      sudo apt-key list
    
  • Удалить ключ:

      sudo apt-key del "3820 03C2 C8B7 B4AB 813E 915B 14E4 9429 73C6 2A1B"
    

    или указав только последние 8 символов ключа:

      sudo apt-key del 73C62A1B
    

После удаления или добавления ключей нужно запустить обновление списка пакетов:

sudo apt update

Репозитории

  • Показать список всех подключенных репозиториев:

      sudo apt-cache policy
    

    или

      sudo grep -Erh ^deb /etc/apt/sources.list*
    

После (или лучше до) добавления репозитория, может понадобиться добавить ключ для этого репозитория, см. раздел Ключи репозиториев.

Удалить репозиторий можно просто удалив соответствующую строчку или целый файл со строчкой репозитория.

После удаления или добавления репозитория нужно запустить обновление списка пакетов:

sudo apt update

Работа с пакетами - разное

  • Показать список неиспользуемых пакетов (которые ставились как зависимости, а теперь остались одни):

      deborphan
    

    Для использования, потребуется установить одноименный пакет. Удалить пакеты, которые показал deborphan:

      sudo deborphan | xargs sudo apt-get -y remove --purge
    
  • Показать список установленных пакетов:

      dpkg --list
    

    или установить пакет apt-show-versions и выполнить одноименную команду:

      apt-show-versions
    

    Вычистить (purge) удаленные пакеты (со статусом rc), чье имя начинается на linux:

      dpkg --list | grep "^rc *linux-" | cut -d " " -f 3 | xargs sudo apt-get -y remove --purge
    
  • Показать количество установленных пакетов:

      dpkg --list | wc --lines
    
  • Показать список файлов установленного пакета:

      dpkg -L <PACKAGE_NAME>
    
  • Показать все пакеты, для которых нет репозитория (не принадлежат ни одному репозиторию):

      sudo aptitude search ~o
    
  • Как обновить пакет Ubuntu-Debian? (т.е. программу):

      sudo aptitude upgrage <имя пакета>
    
  • Как зафиксировать пакет Ubuntu-Debian от обновления?

      sudo aptitude hold <имя пакета>
    

Заметим, что aptitude использует отличный от apt-get и dselect метод регистрации зафиксированных пакетов. Определить, какие пакеты зафиксированы через aptitude, можно с помощью:

aptitude search "~ahold"

Если вы хотите проверить, какие пакеты зафиксированы через apt-get, используйте

dpkg --get-selections | grep hold

Источник: http://www.debian.org/releases/stable/mips/release-notes/ch-upgrading.ru.html#package-status

Можно посмотреть, из какого именно источника будет установлен тот или иной пакет:

sudo apt-cache policy htop

apt-get

Управление пакетами

  • apt-get update – обновить базу пакетов

  • apt-get upgrade – обновить все пакеты

  • apt-get dist-upgrade – обновить версию Ubuntu

  • apt-get install pkg – установить pkg

  • apt-get remove pkg – удалить pkg

  • apt-get autoremove – удалить устаревшие пакеты

  • apt-get -f install – попытаться исправить сломаные пакеты(зависимости)

  • dpkg --configure -a – попытаться исправить сломаные пакеты(зависимости)

  • dpkg -i pkg.deb – установить пакет из файла pkg.deb

  • файл /etc/apt/sources.list – список репозиториев APT

  • grep ^Package: /var/lib/apt/lists/ppa.launchpad.net_*_Packages - посмотреть список всех пакетов из всех ppa локально

  • Посмотреть все установленные ppa:

      #! /bin/sh
      # listppa Script to get all the PPA installed on a system ready to share for reininstall
      for APT in `find /etc/apt/ -name \*.list`; do
          grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
              USER=`echo $ENTRY | cut -d/ -f4`
              PPA=`echo $ENTRY | cut -d/ -f5`
              echo sudo apt-add-repository ppa:$USER/$PPA
          done
      done
    

Sidebar is under construction

Clone this wiki locally