Apt/TroubleShooting: различия между версиями
м (→Ошибка обновления через rsync: кривоватофикс) |
м (начнём с вопроса номер раз...) |
||
Строка 5: | Строка 5: | ||
| '''Внимание:'''<br />'''{{cmd|apt-get -s}} не работает'''<br /><small>(ключик для проведения «мысленного эксперимента» вместо действия приводит к неадекватной оценке последствий)</small>. | | '''Внимание:'''<br />'''{{cmd|apt-get -s}} не работает'''<br /><small>(ключик для проведения «мысленного эксперимента» вместо действия приводит к неадекватной оценке последствий)</small>. | ||
|} | |} | ||
== Превышение числа пакетов == | == Превышение числа пакетов == | ||
{{main|Changes/apt}} | |||
Если команда {{cmd|apt-get update}} завершается чем-то вроде: | |||
Если команда | |||
Reading Package Lists... Error! | Reading Package Lists... Error! | ||
Строка 46: | Строка 20: | ||
E: The package lists or status file could not be parsed or opened. | E: The package lists or status file could not be parsed or opened. | ||
скорее всего, apt’y приходится перелопачивать больше пакетов, чем дозволено лимитом ([https://bugzilla.altlinux.org/show_bug.cgi?id=16900 #16900]). | — скорее всего, apt’y приходится перелопачивать больше пакетов, чем дозволено лимитом ([https://bugzilla.altlinux.org/show_bug.cgi?id=16900 #16900]). | ||
'''Решение:''' | '''Решение:''' | ||
Вручную обновить apt и libapt из соответствующего репозитория. | Вручную обновить {{pkg|apt}} и {{pkg|libapt}} из соответствующего репозитория. | ||
'''Объезд:''' | '''Объезд:''' | ||
Отключить лишние репозитории в | Отключить лишние репозитории в {{path|/etc/apt/sources.list.d/*.list}} и вновь отдать команду: | ||
apt-get update | apt-get update | ||
Либо в {{path|/etc/apt/apt.conf}} добавить строку (если ещё нет): | |||
APT::Cache-Limit LimitInBytes; | |||
Где ''LimitInBytes'' - число большее, чем размер /var/lib/rpm/Packages в байтах. | |||
Возможно, придётся подбирать <tt>Cache-Limit</tt> несколько раз, пока ошибка не исчезнет. | |||
В {{pkg|apt}} 0.5.15lorg2-alt50 лимиты выставлены следующим образом (разница обусловлена предположением подключения [[biarch]]-репозитория): | |||
* 83886080 (80M на 32-битных архитектурах); | |||
* 100663296 (96M на 64-битных архитектурах). | |||
== «Битые» пакеты == | |||
Если при обновлении системы или установке отдельных пакетов вываливается нечто вроде: | |||
Committing changes... | |||
Preparing... ########################################### [100%] | |||
1: some_package error: unpacking of archive failed: cpio: Bad magic | |||
E: Some errors occurred while running transaction | |||
вероятней всего, rpm-архив (в данном случае «<tt>some_package</tt>») испорчен (получен не полностью). | |||
'''Решение:''' | |||
Отдать команды: | |||
apt-get clean | |||
apt-get install some_package | |||
==Ошибка обновления через rsync== | |||
Если при попытке обновления сведений о пакетах выходит ошибка с повторяющимися строками вроде приведённых ниже для {{cmd|apt-get update}}: | |||
E: Программа обработки метода /usr/lib/apt/methods/rsync не найдена. | |||
E: Tried to dequeue a fetching object | |||
и для {{cmd|synaptic}}: | |||
E: The method driver /usr/lib/apt/methods/rsync could not be found. | |||
— то это означает, что в числе активных репозиториев есть подключенные через протокол rsync. Следует либо их отключить, либо доустановить пакет {{pkg|apt-rsync}}. | |||
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}} |
Версия от 14:28, 2 апреля 2015
Превышение числа пакетов
Если команда 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).
Решение:
Вручную обновить apt и libapt из соответствующего репозитория.
Объезд:
Отключить лишние репозитории в /etc/apt/sources.list.d/*.list и вновь отдать команду:
apt-get update
Либо в /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-битных архитектурах).
«Битые» пакеты
Если при обновлении системы или установке отдельных пакетов вываливается нечто вроде:
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.