Apt/TroubleShooting: различия между версиями

Материал из ALT Linux Wiki
< Apt
м (начнём с вопроса номер раз...)
(→‎Превышение числа пакетов: решение номер раз тоже вперёд надо.)
Строка 22: Строка 22:
— скорее всего, apt’y приходится перелопачивать больше пакетов, чем дозволено лимитом ([https://bugzilla.altlinux.org/show_bug.cgi?id=16900 #16900]).
— скорее всего, apt’y приходится перелопачивать больше пакетов, чем дозволено лимитом ([https://bugzilla.altlinux.org/show_bug.cgi?id=16900 #16900]).


'''Решение:'''
'''Решение N1<ref>На 04/04/2015 у apt в p7 недостаточный лимит для использования репозитария autoimports.</ref>:'''


Вручную обновить {{pkg|apt}} и {{pkg|libapt}} из соответствующего репозитория.
в {{path|/etc/apt/apt.conf}} добавить строку (если ещё нет):
 
'''Объезд:'''
 
Отключить лишние репозитории в {{path|/etc/apt/sources.list.d/*.list}} и вновь отдать команду:
 
apt-get update
 
Либо в {{path|/etc/apt/apt.conf}} добавить строку (если ещё нет):


  APT::Cache-Limit LimitInBytes;
  APT::Cache-Limit LimitInBytes;
Строка 42: Строка 34:
* 83886080 (80M на 32-битных архитектурах);
* 83886080 (80M на 32-битных архитектурах);
* 100663296 (96M на 64-битных архитектурах).
* 100663296 (96M на 64-битных архитектурах).
'''Решение N2 (если в обновлённом apt это уже увеличили):'''
Обновить {{pkg|apt}} и {{pkg|libapt}} из соответствующего репозитория:
apt-get update -o APT::Cache-Limit=100663296
apt-get install apt
'''Объезд:'''
Отключить лишние репозитории в {{path|/etc/apt/sources.list.d/*.list}} и вновь отдать команду:
apt-get update
Либо


== «Битые» пакеты ==
== «Битые» пакеты ==

Версия от 13:16, 4 апреля 2015

Gnome-dialog-warning.svg
Внимание:
apt-get -s не работает
(ключик для проведения «мысленного эксперимента» вместо действия приводит к неадекватной оценке последствий).

Превышение числа пакетов

Основная статья: Changes/apt

Если команда apt-get update завершается чем-то вроде:

Reading Package Lists... Error!
E: Dynamic MMap ran out of room
E: Error occured while processing ktechlab (UsePackage3)

или:

E: Wow, you exceeded the number of package names this APT is capable of.
E: Problem with MergeList /tmp/aptbox/var/lib/apt/lists/_ALT_Sisyphus_noarch_base_pkglist.classic
E: The package lists or status file could not be parsed or opened.

— скорее всего, apt’y приходится перелопачивать больше пакетов, чем дозволено лимитом (#16900).

Решение N1[1]:

в /etc/apt/apt.conf добавить строку (если ещё нет):

APT::Cache-Limit LimitInBytes;

Где LimitInBytes - число большее, чем размер /var/lib/rpm/Packages в байтах. Возможно, придётся подбирать Cache-Limit несколько раз, пока ошибка не исчезнет.

В apt 0.5.15lorg2-alt50 лимиты выставлены следующим образом (разница обусловлена предположением подключения biarch-репозитория):

  • 83886080 (80M на 32-битных архитектурах);
  • 100663296 (96M на 64-битных архитектурах).

Решение N2 (если в обновлённом apt это уже увеличили):

Обновить apt и libapt из соответствующего репозитория:

apt-get update -o APT::Cache-Limit=100663296
apt-get install apt

Объезд:

Отключить лишние репозитории в /etc/apt/sources.list.d/*.list и вновь отдать команду:

apt-get update

Либо

«Битые» пакеты

Если при обновлении системы или установке отдельных пакетов вываливается нечто вроде:

Committing changes...
Preparing...                 ###########################################  [100%]
1: some_package              error: unpacking of archive failed: cpio: Bad magic
E: Some errors occurred while running transaction

вероятней всего, rpm-архив (в данном случае «some_package») испорчен (получен не полностью).

Решение:

Отдать команды:

apt-get clean
apt-get install some_package

Ошибка обновления через rsync

Если при попытке обновления сведений о пакетах выходит ошибка с повторяющимися строками вроде приведённых ниже для apt-get update:

E: Программа обработки метода /usr/lib/apt/methods/rsync не найдена.
E: Tried to dequeue a fetching object

и для synaptic:

E: The method driver /usr/lib/apt/methods/rsync could not be found.

— то это означает, что в числе активных репозиториев есть подключенные через протокол rsync. Следует либо их отключить, либо доустановить пакет apt-rsync.

  1. На 04/04/2015 у apt в p7 недостаточный лимит для использования репозитария autoimports.