APT в ALT Linux/Советы по использованию: различия между версиями

Материал из ALT Linux Wiki
(Минихауту по холду пакета)
Строка 91: Строка 91:
  E: Problem executing scripts RPM::Post-Invoke 'mount -o remount,ro /usr'
  E: Problem executing scripts RPM::Post-Invoke 'mount -o remount,ro /usr'
  E: Sub-process returned an error code
  E: Sub-process returned an error code
== Hold пакета (Заблокировать версию пакета) ==
Иногда требуется предотвратить обновление какого-то пакета, например флеш-плеера (пакет mozilla-plugin-adobe-flash) Это можно сделать при помощи synaptic (Пакет - Заблокировать версию) и aptitude (aptitude hold mozilla-plugin-adobe-flash). Но это не остановит апдейт в случае использования традиционного apt-get upgrade (dist-upgrade). Чтобы решить эту проблему создаём файл типа 90-apt-hold в каталоге /etc/apt/apt.conf.d/ (или просто редактируем apt.conf) cо следующим содержимым содержимым
# cat /etc/apt/apt.conf.d/90-apt-hold.conf
RPM::Hold { mozilla-plugin-adobe-flash }
Холд установлен. Так же можно посмотреть подобный вариант в /etc/apt/apt.conf.d/apt.eter.conf и почитать [http://apt-rpm.org/tricks.shtml]


{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}}

Версия от 18:00, 13 апреля 2012

Использование proxy

HTTP-прокси

/etc/apt/apt.conf:

Acquire::http::Proxy "http://[user[:pass]@]host[:port]/";

либо выставить переменную окружения http_proxy.

FTP-прокси

/etc/apt/apt.conf:

Acquire::ftp::Proxy "ftp://[user[:pass]@]host[:port]/";

либо выставить переменную окружения ftp_proxy.

RSYNC-прокси

/etc/apt/apt.conf:

Acquire::rsync::proxy="[user[:pass]@]host[:port]";
Acquire::rsync::proxy::hostname="none";

либо выставить переменную окружения RSYNC_PROXY.

  • При использовании репозиториев на разных хостах возможно задание proxy для всех хостов и для каждого в отдельности.
  • Значение для конкретного хоста перекрывает глобальное значение.
  • Значение "none" указывает, что необходимо использовать прямое соединение.

Пример:

Acquire::rsync::proxy="192.168.1.1:3128";
Acquire::rsync::proxy::mirror.localdomain="none";

Будет использоваться http-proxy "192.168.1.1:3128" для всех хостов, кроме mirror.localdomain, для которого будет использоваться прямое соединение.

HTTP-прокси для проксирования FTP-запросов

Не рекомендуется из-за низкой эффективности и не поддерживается настройками в конфигурационном файле. В случае крайней необходимости - определите переменную окружения ftp_proxy в HTTP URL.

Поиск пакетов, использующих данную библиотеку

apt-cache showpkg libuuid.so.1

Установка всех пакетов, найденных через apt-cache

apt-get install `apt-cache search <package name>|grep <package name>`

Обновление системы «вниз»

Внимание! Такое обновление может привести к непредсказуемым последствиям, ибо майнтейнеры пакетов не проверяют работу обновления в таких условиях.

Основная статья: Downgrade


apt-scripts: «ненужное» и «не в текущем репо»

Описано по мотивам письма at@; для начала потребуется установить пакет apt-scripts.

apt-cache list-extras

Показывает пакеты, которые отсутствуют в репозитории (совпадение по имени пакета, кроме специальных случаев типа Allow-Duplicated, в которых версия также учитывается).

Непустой вывод означает, что перечисленных пакетов больше нет в репозитории. Следовательно, эти пакеты скорее всего устарели или перестали собираться (и поэтому, быть может, стоит их снести).

apt-cache list-nodeps

Показывает пакеты, от которых не зависят какие-либо другие пакеты, установленные в системе. То есть эти пакеты «никому не нужны» и их можно удалить с помощью rpm -e.

Среди этого списка можно обнаружить неиспользуемые библиотеки, примерно так:

$ apt-cache list-nodeps |grep '^lib[^-]*$'
libgtk+mdk
libmysqlclient10
[...]

Эти библиотеки, вероятно, стоит снести:

$ apt-cache list-nodeps |grep '^lib[^-]*$' |xargs sudo rpm -e

APT совместно с /usr, смонтированным в режиме read only

/etc/apt/apt.conf:

RPM
{
  Pre-Invoke {"mount -o remount,rw /usr";};
  Post-Invoke {"mount -o remount,ro /usr";};
}

работает в 4.0, в 4.1, начиная с некоторого времени, что-то сломалось и после установки пакетов выдает ошибки типа такого

Done.
mount: /usr is busy
E: Sub-process mount -o remount,ro /usr returned an error code (32)
E: Problem executing scripts RPM::Post-Invoke 'mount -o remount,ro /usr'
E: Sub-process returned an error code


Hold пакета (Заблокировать версию пакета)

Иногда требуется предотвратить обновление какого-то пакета, например флеш-плеера (пакет mozilla-plugin-adobe-flash) Это можно сделать при помощи synaptic (Пакет - Заблокировать версию) и aptitude (aptitude hold mozilla-plugin-adobe-flash). Но это не остановит апдейт в случае использования традиционного apt-get upgrade (dist-upgrade). Чтобы решить эту проблему создаём файл типа 90-apt-hold в каталоге /etc/apt/apt.conf.d/ (или просто редактируем apt.conf) cо следующим содержимым содержимым


# cat /etc/apt/apt.conf.d/90-apt-hold.conf
RPM::Hold { mozilla-plugin-adobe-flash }


Холд установлен. Так же можно посмотреть подобный вариант в /etc/apt/apt.conf.d/apt.eter.conf и почитать [1]