Skip to content

Документация по BlackArch на русском языке

Инструкции, советы, новые программы

Menu
  • Главная
  • Список инструментов
  • HackWare
Menu

Аналог опции --force в pacman

Posted on 21.01.202124.04.2021 by Alexey

Если вы обновляете или устанавливаете новый пакет, то если в файловой системе уже присутствуют файлы, включённые в этот пакет, то операция обновления/установки обрывается и выводятся файлы, которые уже присутствуют в системе. В моей практике причинами обычно являются пакеты, установленные с помощью pip и те же самые пакеты, которые пытаются установить с помощью pacman — в этом случае файлы пакетов уже существуют и установка невозможна.

Кстати, в этом случае точно не нужно использовать опцию --force, а нужно удалить мешающий пакет командой вида:

pip uninstall ПАКЕТ

Раньше в pacman была опция --force — если указать её вместе с командой установки/обновления, то она перезаписывала уже существующие в системе файлы.

Бывают ситуации, когда это действительно необходимо. Но сопроводители дистрибутива посчитали, что от опции --force только вред. И убрали её. На её смену пришла опция --overwrite <ПУТЬ>. Она перезаписывает конфликтующие файлы (может быть использовано неоднократно).

То есть по задумке авторов она должна использоваться с каждым файлом отдельно, чтобы мы чётко представляли что именно перезаписываем.


Я столкнулся с ситуацией, что моя ОС перестала загружаться. Я попытался удалить GNOME Display Manager и выяснилось, что этот пакет считается НЕ УСТАНОВЛЕННЫМ. Следовательно, он не мог быть обновлён, а также некоторые его зависимости были удалены как осиротевшие. То есть система не загружается явно из-за GDM, самый простой способ исправить — полностью удалить и сделать чистую установку. Но pacman не удаляет GDM, поскольку не считает его установленным. Но зато при попытке установить пакет gdm, pacman не позволяет и установить его, поскольку в системе присутствуют файлы этого пакета.

Пришла очередь воспользоваться опцией --overwrite, но файлов GDM очень много и перечислить их вручную невозможно. В общем, опытным путём я выяснил, что можно указывать папки, например:

sudo pacman -S --overwrite /usr/share/locale/* gdm

А чтобы получить полный аналог --force нужно указывать как «--overwrite '/*'».

Я выполнил следующие команды для принудительной установки, полного удаления и чистой установки GNOME Display Manager:

sudo pacman -S --overwrite '/*' gdm
sudo pacman -Rn gdm
sudo pacman -S gdm

В результате моя проблема была решена. Не злоупотребляйте «--overwrite '/*'», используйте этот синтаксис только когда вы действительно понимаете что вы делаете и когда вы уверены, что нет других способов удалить мешающие файлы — обычно это можно сделать сторонними менеджерами пакетов Python, PERL и прочими — теми же самыми, которыми эти пакеты были установлены.

Близкие статьи

  • Ошибка pacman «warning: failed to retrieve some files» (РЕШЕНО) (100%)
  • Ошибка «ruby-bundler: /usr/share/man/man5/gemfile.5.gz exists in filesystem (owned by ruby)» (РЕШЕНО) (100%)
  • Ошибка «не удалось разрешить зависимость lib32 (32-битной библиотеки)» (РЕШЕНО) (100%)
  • Ошибка «не удалось завершить транзакцию (неверный или поврежденный пакет)» (РЕШЕНО) (100%)
  • Ошибка «error: blackarch: signature from "Levon 'noptrix' Kayan (BlackArch Developer) " is invalid» (РЕШЕНО) (100%)
  • Приложение в .AppImage не запускается в Arch Linux (РЕШЕНО) (RANDOM - 59.2%)

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo


Поиск


Свежие записи

  • Как обновить загрузчик GRUB в Arch Linux и производных дистрибутивах (Manjaro, BlackArch)
  • Ошибка «error: failed to commit transaction (invalid or corrupted package)» (РЕШЕНО)
  • Ошибка «TypeError: ‘AURPackageInfo’ does not have attribute ‘submitter’» (РЕШЕНО)
  • Ошибка phpMyAdmin «Error: Undefined constant «SODIUM_CRYPTO_SECRETBOX_KEYBYTES»» (РЕШЕНО)
  • Ошибка «error: GPGME error: No data. error: failed to synchronize all databases (unexpected error)» (РЕШЕНО)

Свежие комментарии

  • Alexey к записи Как в Arch Linux найти все программы, установленные из AUR
  • МаксимК к записи Как в Arch Linux найти все программы, установленные из AUR
  • Vova к записи Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP8 и phpMyAdmin) в Arch Linux / BlackArch
  • Furi к записи Приложение в .AppImage не запускается в Arch Linux (РЕШЕНО)
  • Alexey к записи Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP8 и phpMyAdmin) в Arch Linux / BlackArch




Рубрики

  • Sniffing и Spoofing
  • Архив
  • Без рубрики
  • Взлом Wi-Fi сетей
  • Инструкции
  • Новости
  • Общая информация/новости
  • Разведка
  • Справка и подсказки




Яндекс.Метрика
© 2023 Документация по BlackArch на русском языке | Powered by Minimalist Blog WordPress Theme