Поскольку я полагаю, что zentyal идет с интегрированной поддержкой фырканья IDS, Вы могли добавить правило фырканья, которое обнаруживает и блокирует пакет SSL, который содержит сертификат сервера на основе общего названия, которое содержит facebook.com. Это могло также обратиться к доступам через прокси (как долго, поскольку соединение с самим прокси не шифруется).
Другой подход мог быть должен вызвать весь трафик DNS через Ваш сервер DNS (трафик домена блока кроме к Вашему серверу DNS) и возвратиться, что-то поддельное для запросов любого домена facebook.com (не остановит доступ через прокси хотя).
После того, как pacman окончательно отказался от опции --force
и заставил суррогатную опцию --overwrite
работать как положено, следует отметить следующий шаблон использования.
Команда для воспроизведения опции --force
, которая слепо перезаписывает все, что конфликтует, это:
sudo pacman -S --overwrite \* <package_name>
Или
sudo pacman -S --overwrite "*" <package_name>
Сложность заключается в экранировании подстановочного знака, чтобы оболочка не расширила его первым.
Хорошо, похоже, что выполняется sudo pacman -S --force
работает, но не работает » t разрешить конфликтующие каталоги. В таких случаях работает команда sudo rm -rf
в конфликтующих каталогах, а затем sudo pacman -S --force <имя-пакета>
.
Теперь мой pacman -Syu
разрешается хорошо.
tl;dr: Удалите конфликтующее приложение перед запуском pacman
.
pacman
(и другие менеджеры пакетов) хранят индекс пакетов и файлов, которыми они управляют (pacman --query --list
). Некоторые файлы, такие как конфигурация, будут помечены как изменяемые и не будут перезаписываться во время обновления (за исключением особых случаев, когда менеджер пакетов обычно перемещает старый файл перед созданием нового). Другие файлы будут помечены как немодифицируемые. Если другое приложение каким-либо образом изменит эти файлы без соответствующего обновления индекса, менеджер пакетов никак не сможет узнать, что делать с этими файлами во время обновления.
Многие приложения, установленные по стандартной схеме ./configure && make && sudo make install
, могут быть удалены с помощью sudo make uninstall
. Если вы установили приложение каким-то другим способом, вам, возможно, придется сделать что-то еще, чтобы удалить его. В общем, хорошей идеей может быть хранить копии установочных файлов где-нибудь (например, ~/install
), чтобы иметь возможность надежно удалить их в таких случаях. Простое удаление конфликтующих файлов, вероятно, оставит другие файлы, которые могут вызвать другие проблемы.
При установке программ с помощью других менеджеров пакетов есть способы изолировать их от системных файлов. Это общепринятая лучшая практика, например, при разработке программного обеспечения, когда вы действительно хотите сохранить согласованность версий и избежать конфликтов с другими программами. Примеры:
sudo pacman -Syu
еще раз.Хотя я почти уверен, что не делал ничего глупого, у меня была эта проблема, может быть, каждый второй раз, когда я пытался обновить, так как я использую Manjaro; три-четыре раза в течение двух месяцев. Дело в том, что это исправляет это.
При сбое обновления в окне терминала вы получаете это:
error: failed to commit transaction (conflicting files)
evilfile: /usr/bin/evilfile exists in filesystem
libx000: /usr/lib/libx000.so.f.u.loser exists in filesystem
accountsservice: /usr/share/locale/ru/LC_MESSAGES/accounts-service.mo.yu.dnt.evn.spk.russian exists in filesystem
... и многое другое.
Скопируйте вывод из терминала и поместите его в файл. Я использовал nano и назвал свои «файлы», как в~/work/files .
Удаление лишней информации:
cat files | awk '{print $2}' >> ~/work/files2
Это берет второе «слово» из каждой строки и печатает его в файлы2.
Вы можете удалить их, переместить или переименовать.
Если что-то ломается, проще всего это исправить, если мы сломаем это, переместив это, а не удаляя или переименовывая:mkdir ~/work/oldfiles
while read -r file; do sudo mv -- "$file" ~/work/oldfiles/$file; done < files2
Если вы действительно хотите удалить их, для чего нет причин(ОПАСНОСТЬ ОПАСНОСТЬ):при чтении -r файла; сделать sudo rm --"$file";сделано < файлы2
Чтобы заставить --перезаписывать работать, что нам нужно сделать, чтобы pacman понял, что пакет не сломан, вам нужен следующий синтаксис:
sudo pacman -S package_name --overwrite /location/of/thing
sudo pacman -S libidn2 --overwrite /usr/lib/libidn2.so.0
sudo pacman -S libx000 --overwrite /usr/lib/libx000.so.f.u.loser
У меня была забавная проблема: если я удалял символическую ссылку libidn2.so.0, ничего не работало, а когда я возвращал ее обратно, я получал ошибку «существует в файловой системе». Вышеприведенное с перезаписью --— это все, что сработало для меня.
Наконец:
sudo pacman -Syu
Если у вас много файлов, как у меня,
sudo pacman --force -Syyu
решает все проблемы.
Из-за этого я устанавливал пакеты, которые обычно устанавливал с помощью pip через pacman. Но некоторые пакеты не найдены в репозиториях pacman. Я думаю, нам следует избегать установки pip с привилегиями sudo и вместо этого:
pip install pillow --user
--флаг пользователя вместо этого заставляет pip устанавливать пакеты в ваш домашний каталог, что не требует каких-либо специальных привилегий.https://stackoverflow.com/questions/42988977/what-is-the-purpose-pip-install-user
если конфликтующие файлы/файл уже существует. сделайте следующее.
pacman -Qo "path_to_file"
Если вывод «Этот файл не принадлежит ни одному пакету», вы можете удалить файл без каких-либо проблем.
обычно я получаю сообщение об ошибке «файл уже существует» в /usr/lib/python3.8/"папке _X"/.... поэтому я бегу pacman -Qo /usr/lib/python3.8/folder_X
которые обычно возвращают «Ни один пакет не владеет этим файлом», и я просто удаляю его.
sudo rm -rf /usr/lib/python3.8/folder_X
До сих пор у меня не было ситуации, когда файл или папка фактически принадлежали пакету. так что не могу посоветовать что делать в такой ситуации.
Надеюсь, это поможет
Правильный способ обновить и перезаписать конфликтующие пакеты:
sudo pacman --overwrite "*" -Syu