Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
pacman [2015/03/06 17:09]
vovka [Дополнительные команды]
pacman [2015/03/06 17:14] (текущий)
vovka [Устранение проблем]
Строка 264: Строка 264:
 ===== Устранение проблем ===== ===== Устранение проблем =====
  
-* //​Обновление пакета XYZ сломало мою систему!//​\\+  * **//​Обновление пакета XYZ сломало мою систему!//​**\\
 Arch Linux - передовой,​ постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя:​ может потребоваться обновление конфигурационных файлов,​ могут измениться дополнительные зависимости,​ и т.д. Arch Linux - передовой,​ постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя:​ может потребоваться обновление конфигурационных файлов,​ могут измениться дополнительные зависимости,​ и т.д.
  
Строка 276: Строка 276:
  
  
-* //Я знаю что для пакета ABC доступны обновления,​ но pacman сообщает мне, что система в актуальном состоянии!//​\\+  * **//Я знаю что для пакета ABC доступны обновления,​ но pacman сообщает мне, что система в актуальном состоянии!//​**\\
 Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. ​ Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. ​
  
-В качестве решения можно посоветовать сменить зеркало. На [https://​www.archlinux.de/?​page=MirrorStatus MirrorStatus] можно посмотреть состояние зеркал.+В качестве решения можно посоветовать сменить зеркало. На [[https://​www.archlinux.de/?​page=MirrorStatus|MirrorStatus]] можно посмотреть состояние зеркал.
  
  
-* //При обновлении появляется сообщение об ошибке:​ "file exists in filesystem"​ ("​файл существует в файловой системе"​)!//​\\ +  * **//При обновлении появляется сообщение об ошибке:​ "file exists in filesystem"​ ("​файл существует в файловой системе"​)!//​**\\ 
 +<​code>​
  ​error:​ could not prepare transaction  ​error:​ could not prepare transaction
  ​error:​ failed to commit transaction (conflicting files)  ​error:​ failed to commit transaction (conflicting files)
  ​package:​ /​path/​to/​file exists in filesystem  ​package:​ /​path/​to/​file exists in filesystem
  ​Errors occurred, no packages were upgraded.  ​Errors occurred, no packages were upgraded.
 +</​code>​
 Почему это происходит:​ pacman при обнаружении конфликтующих файлов,​ по умолчанию,​ не будет их перезаписывать автоматически. Это не ошибка,​ так сделано специально. (узнать какому пакету принадлежит файл, если таковой имеется,​ можно с помощью pacman -Qo.) Почему это происходит:​ pacman при обнаружении конфликтующих файлов,​ по умолчанию,​ не будет их перезаписывать автоматически. Это не ошибка,​ так сделано специально. (узнать какому пакету принадлежит файл, если таковой имеется,​ можно с помощью pacman -Qo.)
  
Строка 294: Строка 294:
  
  
-* //При установке пакета я получаю сообщение об ошибке:​ "not found in sync db"//​\\+  * **//При установке пакета я получаю сообщение об ошибке:​ "not found in sync db"//**\\
 Для начала убедитесь,​ что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует,​ то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить pacman -Syy. Для начала убедитесь,​ что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует,​ то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить pacman -Syy.
  
  
-* //pacman несколько раз обновляет один и тот же пакет!//​\\+  * **//pacman несколько раз обновляет один и тот же пакет!//​**\\
 Это может быть связано с дублированием записей в /​var/​lib/​pacman/​local/,​ к примеру имеется два экземпляра linux. pacman -Qi выведет правильную версию,​ а pacman -Qu покажет её как устаревшую и, следовательно,​ требующую обновления. Это может быть связано с дублированием записей в /​var/​lib/​pacman/​local/,​ к примеру имеется два экземпляра linux. pacman -Qi выведет правильную версию,​ а pacman -Qu покажет её как устаревшую и, следовательно,​ требующую обновления.
  
Строка 306: Строка 306:
  
  
-* //pacman сбоит при обновлении!//​\\+  * **//pacman сбоит при обновлении!//​**\\
 Если при попытке удаления,​ переустановки или обновления пакетов pacman падает с ошибкой "​database write" ("​записи в базу данных"​):​ Если при попытке удаления,​ переустановки или обновления пакетов pacman падает с ошибкой "​database write" ("​записи в базу данных"​):​
-#Загрузитесь используя Arch live CD +  - Загрузитесь используя Arch live CD 
-#Смонтируйте корневую файловую систему +  ​- ​Смонтируйте корневую файловую систему 
-#Обновите базу данных pacman с помощью pacman -Syy +  ​- ​Обновите базу данных pacman с помощью pacman -Syy 
-#Переустановите сломанный пакет через pacman -r /​путь/​к/​корневому_разделу -S package+  ​- ​Переустановите сломанный пакет через pacman -r /​путь/​к/​корневому_разделу -S package
  
  
-* //Я установил программу используя make install; теперь эти файлы не принадлежат ни одному из пакетов!//​\\+  * **//Я установил программу используя make install; теперь эти файлы не принадлежат ни одному из пакетов!//​**\\
 При обнаружении "​конфликтующих файлов",​ чтобы их не перезаписывать вручную,​ можно использовать pacman с ключом -f (pacman -Sf). При обнаружении "​конфликтующих файлов",​ чтобы их не перезаписывать вручную,​ можно использовать pacman с ключом -f (pacman -Sf).
  
-Почитайте ​[[pacman Tips#​Getting a list of files not owned by any package]], о скрипте,​ проверяющем файловую систему на наличие ​''​брошенных'' ​файлов.+Почитайте,​ о скрипте,​ проверяющем файловую систему на наличие ​//брошенных// файлов.
  
  
-* //Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?//​\\+  * **//Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?//​**\\
 Установите pkgtools, в его состав входит pkgfile, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами. Установите pkgtools, в его состав входит pkgfile, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.
  
  
-* //pacman полностью не работоспособен! Как мне его переустановить?//​\\ +  * **//pacman полностью не работоспособен! Как мне его переустановить?//​**\\ 
-Если pacman не работает и не получается его восстановить - скачайте вручную пакеты (openssl, libarchive, libfetch и pacman) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов,​ переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта,​ автоматизирующего этот процесс,​ можно найти в [https://​bbs.archlinux.org/​viewtopic.php?​id=95007 этом] сообщении форума.+Если pacman не работает и не получается его восстановить - скачайте вручную пакеты (openssl, libarchive, libfetch и pacman) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов,​ переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта,​ автоматизирующего этот процесс,​ можно найти в [[https://​bbs.archlinux.org/​viewtopic.php?​id=95007|этом]] сообщении форума.
  
 ===== Смотрите также ===== ===== Смотрите также =====
Печать/экспорт