Редактирование: Apt/TroubleShooting

Перейти к: навигация, поиск

Внимание: Вы работаете как анонимный пользователь. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
{| style="border:1px solid #AAA; background:#F9F9F9; width:200px; margin: 0 0 1em 1em; padding:.2em; text-align:center; float: right;" class=noprint
+
== «Битые» пакеты ==
|-
+
Если при обновлении системы или установке отдельных пакетов вываливается нечто вроде:
|[[Image:Gnome-dialog-warning.svg]]
+
 
|-
+
Committing changes...
| '''Внимание:'''<br />'''{{cmd|apt-get -s}} не&nbsp;работает'''<br /><small>(ключик для проведения «мысленного эксперимента» вместо действия приводит к&nbsp;неадекватной оценке последствий)</small>.
+
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>») испорчен (получен не полностью).
 +
 
 +
'''Решение:'''
 +
 
 +
Удалить файл <tt>some_package.some_digits.rpm</tt> из <tt>/var/cache/apt/archives</tt> и отдать команду:
 +
 
 +
apt-get install some_package
  
 
== Превышение числа пакетов ==
 
== Превышение числа пакетов ==
{{main|Changes/apt}}
+
См. тж. [[Changes/apt]].
Если команда {{cmd|apt-get update}} завершается чем-то вроде:
+
 
 +
Если команда <tt>apt-get update</tt> завершается чем-то вроде:
  
 
  Reading Package Lists... Error!
 
  Reading Package Lists... Error!
Строка 20: Строка 30:
 
  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]).
  
'''Решение N1<ref>На 04/04/2015 у apt в p7 недостаточный лимит для использования репозитория autoimports, а на октябрь 2015 -- у apt в Sisyphus тоже {{altbug|31410}}. В p7 это не чувствуется сейчас благодаря попаданию в p7 порта {{pkg|apt}}-0.5.15lorg2-alt50 (его лимиты см. ниже), я для Sisyphus это объехали для удобства подключения [[Autoimports]] в {{pkg|apt-conf-autoimports-sisyphus}}-1.0-alt3 способом, здесь описанным.</ref>:'''
+
'''Решение:'''
  
в {{path|/etc/apt/apt.conf}} добавить строку (если ещё нет):
+
Вручную обновить apt и libapt из соответствующего репозитория.
 
 
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-битных архитектурах).
 
 
 
'''Решение 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}} и вновь отдать команду:
+
Отключить лишние репозитории в <tt>/etc/apt/sources.list.d/*.list</tt> и вновь отдать команду:
  
 
  apt-get update
 
  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-архив (в данном случае «<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}}.
 
 
 
==Ошибка сегментирования==
 
 
 
Если при работе {{cmd|apt-get}} падает по Segmentation fault, удалите кэш apt:
 
mv /var/cache/apt/*pkgcache.bin /tmp
 
Если это поможет, и если примера в {{altbug|31089}} ещё нет, приложите эти файлы к багу.
 
 
 
Проверьте stack лимиты, должно быть не менее:
 
# ulimit -s
 
8192
 
 
 
Задать можно тут:
 
/etc/security/limits.conf
 
root hard stack 8192
 
root soft stack 8192
 
  
==Ругань о неудовлетворённых зависимостях при попытке сделать apt-get dist-upgrade==
 
В таком случае надо сначала попытаться обновить отдельно <tt>apt</tt> и <tt>rpm</tt>, а потом повторить попытку dist-upgrade:
 
  
  apt-get install apt rpm
+
Более рабочий вариант:
  apt-get dist-upgrade
+
В /etc/apt/apt.conf добавить строку (если ещё нет)
  
Такое поведение не типичное, и случилось после того, как в строгие зависимости стали добавлять помимо <tt>name = epoch:version-release</tt> ещё и значение <tt>disttag</tt> (в <tt>rpm 4.0.4-alt128</tt>), а <tt>rpm</tt> до версии <tt>4.13.0.1-alt6</tt> не всегда справлялся с различением таких версий.
+
APT::Cache-Limit SizeOfLimit;
  
==Удаление дубликатов пакетов (например, после прерванного dist-upgrade)==
+
Где SizeOfLimit - число большее, чем размер /var/lib/rpm/Packages.
В пакете <tt>apt-scripts</tt>, начиная с версии <tt>0.1.4-alt1</tt>, добавлена команда <tt>apt-get dedup</tt>, которая удаляет все непозволенные дубликаты из системы:
+
Возможно, придётся подбирать Cache-Limit несколько раз, пока ошибка не исчезнет.
  
  apt-get install apt-scripts # если ещё не установлен
+
Рецепт из рассылки sisyphus@a.o от ldv@:
  apt-get dedup
 
  
== Ссылки ==
+
Для обновления до Сизифа нужно поднять лимит.  Сейчас достаточно 32Mb:
 +
APT::Cache-Limit "33554432";
 +
но ещё неизвестно, сколько понадобится, когда переход на set-versions
 +
завершится.  В Сизифе apt-0.5.15lorg2-alt34, в нем лимит был увеличен
 +
с запасом (42Mb).
 +
-- ldv
  
<references/>
 
 
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}}
 
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}}

Обратите внимание, что все добавления и изменения текста статьи рассматриваются, как выпущенные на условиях лицензии CC-BY-SA-3.0.

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Вики-разметка
Заголовки: 1-го: == ==, 2-го: === ===, 3-го: ==== ==== уровня.
Быстрая вставка: «» | [[]] [[|]] {{}} {{|}} [[Категория:]] [[altbug:]] <source lang=""></source> <pre></pre> <!-- -->.
Определения: {{man|}} {{lists|}} {{cmd|}} {{path|}} {{prg|}} {{pkg|}} {{term|}} {{span||}} {{altbug|}}
Выделение: ''italics'', '''bold''', <tt>моноширинный</tt>, <code>код</code>.
Списки: * ненумерованный список, ** вложенный список, # нумерованный список, ## вложенный нумерованный список, *# вложенный смешанный список, ;список :определений.
Verbatim: Пробел в начале строки или <pre>Явный тэг</pre>
Ссылки: [http://www.altlinux.ru/ внешние], [[Main Page|внутренние]], [http://altlinux.ru], [[Main Page]]
Шаблоны: {{Crap}} {{D}} {{Policy}} {{DraftPolicy}} {{Merge|}} {{Улучшение}} {{Тимовец|}}