--force
команды pacman
. Вы должны использовать его тогда и только тогда, когда понимаете, что делаете! pip
:>>> pip freeze > packages.txt
pacman
пакеты, установленные из pip
, которые не помечены как installed
в базе данных pacman
. >>> for i in $(awk -F "==" '{print $1}' packages.txt); do sudo pacman -S --needed --force --noconfirm python-$i; done
Вы можете сделать то же самое с python2
, просто добавив 2
после python
и pip
в приведенных выше командах.
С этого момента просто используйте pacman
, а не pip
. Вы можете использовать pip
для обновления/отката до определенной версии пакета, если это необходимо.
При желании вы также можете использовать скриптовую версию:
#!/bin/sh
pip freeze > packages.txt
for i in $(awk -F "==" '{print $1}' packages.txt)
do
sudo pacman -S --needed --force --noconfirm python-$i
done
Сохраните его в файл, дайте разрешение на выполнение этому файлу и запустите.
Установите libvirt -nss . Для Fedora запустите dnf install libvirt-nss
. (Для Debian:apt install libnss-libvirt
).
В /etc/nsswitch.conf
вы хотите, чтобы строка hosts:
включала libvirt
. Пример есть по ссылке выше.
Теперь вы можете получить доступ к виртуальной машине по имени хоста, например. ssh debian10-vm
.В этом решении вы не используете суффикс вроде .local
.
Шаг 1 :Создайте /etc/firewalld/zones/libvirt.xml
следующим образом
<?xml version="1.0" encoding="utf-8"?>
<zone target="ACCEPT">
<short>libvirt</short>
<description>
The default policy of "ACCEPT" allows all packets to/from
interfaces in the zone to be forwarded, while the (*low priority*)
reject rule blocks any traffic destined for the host, except those
services explicitly listed (that list can be modified as required
by the local admin). This zone is intended to be used only by
libvirt virtual networks - libvirt will add the bridge devices for
all new virtual networks to this zone by default.
</description>
<rule priority='32767'>
<reject/>
</rule>
<protocol value='icmp'/>
<protocol value='ipv6-icmp'/>
<service name='dhcp'/>
<service name='dhcpv6'/>
<service name='dns'/>
<!-- <service name='ssh'/> --> <!-- Wut? No thank you. -->
<service name='tftp'/>
<service name='mdns'/> <!-- Added by the local admin :). -->
</zone>
Шаг 2 :Выполнитьfirewall-cmd --reload
Существует объяснение, почему этот материал изменился в патче libvirt: «выборочно установить зону firewalld 'libvirt' ». По-видимому, это произошло, когда firewalld
перешел с использования iptables
на использование nftables
.