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

Материал из ALT Linux Wiki
< Apt
Перейти к: навигация, поиск
м (Ошибка обновления через rsync: кривоватофикс)
м (начнём с вопроса номер раз...)
Строка 5: Строка 5:
 
| '''Внимание:'''<br />'''{{cmd|apt-get -s}} не&nbsp;работает'''<br /><small>(ключик для проведения «мысленного эксперимента» вместо действия приводит к&nbsp;неадекватной оценке последствий)</small>.
 
| '''Внимание:'''<br />'''{{cmd|apt-get -s}} не&nbsp;работает'''<br /><small>(ключик для проведения «мысленного эксперимента» вместо действия приводит к&nbsp;неадекватной оценке последствий)</small>.
 
|}
 
|}
== «Битые» пакеты ==
 
Если при обновлении системы или установке отдельных пакетов вываливается нечто вроде:
 
 
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}}.
 
  
 
== Превышение числа пакетов ==
 
== Превышение числа пакетов ==
См. тж. [[Changes/apt]].
+
{{main|Changes/apt}}
 
+
Если команда {{cmd|apt-get update}} завершается чем-то вроде:
Если команда <tt>apt-get update</tt> завершается чем-то вроде:
 
  
 
  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}} из соответствующего репозитория.
  
 
'''Объезд:'''
 
'''Объезд:'''
  
Отключить лишние репозитории в <tt>/etc/apt/sources.list.d/*.list</tt> и вновь отдать команду:
+
Отключить лишние репозитории в {{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>») испорчен (получен не полностью).
  
Более рабочий вариант:
+
'''Решение:'''
В /etc/apt/apt.conf добавить строку (если ещё нет)
 
  
APT::Cache-Limit SizeOfLimit;
+
Отдать команды:
  
Где SizeOfLimit - число большее, чем размер /var/lib/rpm/Packages.
+
apt-get clean
Возможно, придётся подбирать Cache-Limit несколько раз, пока ошибка не исчезнет.
+
apt-get install some_package
  
Рецепт из рассылки sisyphus@a.o от ldv@:
+
==Ошибка обновления через rsync==
  
Для обновления до Сизифа нужно поднять лимит. Сейчас достаточно 32Mb:
+
Если при попытке обновления сведений о пакетах выходит ошибка с повторяющимися строками вроде приведённых ниже для {{cmd|apt-get update}}:
  APT::Cache-Limit "33554432";
+
  E: Программа обработки метода /usr/lib/apt/methods/rsync не найдена.
  но ещё неизвестно, сколько понадобится, когда переход на set-versions
+
  E: Tried to dequeue a fetching object
завершится.  В Сизифе apt-0.5.15lorg2-alt34, в нем лимит был увеличен
+
и для {{cmd|synaptic}}:
с запасом (42Mb).
+
  E: The method driver /usr/lib/apt/methods/rsync could not be found.
-- ldv
+
— то это означает, что в числе активных репозиториев есть подключенные через протокол rsync. Следует либо их отключить, либо доустановить пакет {{pkg|apt-rsync}}.
  
 
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}}
 
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}}

Версия 11:28, 2 апреля 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).

Решение:

Вручную обновить 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.