NetworkManager-1.48.8
Introdução ao NetworkManager
"NetworkManager" é um conjunto de
ferramentas cooperativas que tornam a operação interativa de
dispositivos via rede de intercomunicação simples e direta. Quer
você use "WiFi", com fio, "3G" ou "Bluetooth", o "NetworkManager"
te permite mudar rapidamente de uma rede de intercomunicação para
outra: depois que uma rede de intercomunicação tiver sido
configurada e conectada uma vez, ela poderá ser detectada e
conectada novamente automaticamente na próxima vez que estiver
disponível.
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.2.
Informação do Pacote
Dependências do NetworkManager
Exigidas
libndp-1.9
Recomendadas
cURL-8.9.1,
dhcpcd-10.0.8, GLib-2.80.4 (com
GObject Introspection), iptables-1.8.10, libpsl-0.21.5, newt-0.52.24 (para nmtui), nss-3.103, Polkit-125 (tempo de execução), PyGObject-3.48.2, elogind-255.5, Vala-0.56.17 e
wpa_supplicant-2.11 (tempo de execução,
construído com suporte a D-Bus)
Opcionais
BlueZ-5.77, D-Bus Python-1.3.2 (para a suíte de
teste), GnuTLS-3.8.7.1 (pode ser usado em vez de
nss-3.103), GTK-Doc-1.34.0, jansson-2.14,
ModemManager-1.18.12, qt5-components-5.15.14 com qtdoc (para
exemplos), UPower-1.90.4, Valgrind-3.23.0, dnsmasq, firewalld, libaudit,
libteam,
mobile-broadband-provider-info, PPP e RP-PPPoE
Configuração do Núcleo
Se desejar executar os testes, [então] verifique se pelo menos as
seguintes opções estão habilitadas na configuração do núcleo. Essas
opções foram consideradas necessárias, mas podem não ser
suficientes. Recompile o núcleo se necessário:
[*] Networking support ---> [NET]
Networking options --->
[*] TCP/IP networking [INET]
<*/M> IP: tunneling [NET_IPIP]
<*/M> IP: GRE demultiplexer [NET_IPGRE_DEMUX]
<*/M> IP: GRE tunnels over IP [NET_IPGRE]
<*> The IPv6 protocol ---> [IPV6]
<*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver) [IPV6_SIT]
<*/M> IPv6: GRE tunnel [IPV6_GRE]
[*] IPv6: Multiple Routing Tables [IPV6_MULTIPLE_TABLES]
[*] MPTCP: Multipath TCP [MPTCP]
[*] MPTCP: IPv6 support for Multipath TCP [MPTCP_IPV6]
<*/M> 802.1Q/802.1ad VLAN Support [VLAN_8021Q]
[*] QoS and/or fair queueing ---> [NET_SCHED]
<*> Stochastic Fairness Queueing (SFQ) [NET_SCH_SFQ]
<*> Token Bucket Filter (TBF) [NET_SCH_TBF]
<*> Fair Queue Controlled Delay AQM (FQ_CODEL) [NET_SCH_FQ_CODEL]
<*> Ingress/classifier-action Qdisc [NET_SCH_INGRESS]
Device Drivers --->
[*] Network device support ---> [NETDEVICES]
[*] Network core driver support [NET_CORE]
<*/M> Bonding driver support [BONDING]
<*/M> Dummy net driver support [DUMMY]
<*/M> Ethernet team driver support ---> [NET_TEAM]
<*/M> MAC-VLAN support [MACVLAN]
<*/M> MAC-VLAN based tap driver [MACVTAP]
<*/M> IP-VLAN support [IPVLAN]
<*/M> Virtual eXtensible Local Area Network (VXLAN) [VXLAN]
<*/M> Virtual ethernet pair device [VETH]
<*/M> Virtual Routing and Forwarding (Lite) [NET_VRF]
Instalação do NetworkManager
Se qt5-components-5.15.14 estiver
instalado e os exemplos baseados em Qt forem desejados, corrija
dois arquivos meson.build:
sed -e 's/-qt4/-qt5/' \
-e 's/moc_location/host_bins/' \
-i examples/C/qt/meson.build &&
sed -e 's/Qt/&5/' \
-i meson.build
Corrija os conjuntos sequenciais de comandos "Python", de forma que
eles usem "Python 3":
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Instale o NetworkManager
executando os seguintes comandos:
mkdir build &&
cd build &&
CXXFLAGS+="-O2 -fPIC" \
meson setup .. \
--prefix=/usr \
--buildtype=release \
-D libaudit=no \
-D nmtui=true \
-D ovs=false \
-D ppp=false \
-D selinux=false \
-D session_tracking=elogind \
-D modem_manager=false \
-D systemdsystemunitdir=no \
-D systemd_journal=false \
-D qt=false &&
ninja
Uma sessão gráfica já ativa com endereço de barramento é necessária
para executar os testes. Para testar os resultados, emita
"ninja test".
Uns poucos testes possivelmente falhem, dependendo das opções de
núcleo habilitadas.
Agora, como o(a) usuário(a) "root
":
ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.48.8}
Se você não passou a opção -D docs=true
para meson, você
consegue instalar as páginas de manual pré geradas com (como o(a)
usuário(a) root
):
for file in $(echo ../man/*.[1578]); do
section=${file##*.} &&
install -vdm 755 /usr/share/man/man$section
install -vm 644 $file /usr/share/man/man$section/
done
Se você não tiver usado -D docs=true
, a
documentação HTML pré gerada também pode ser instalada com (como
o(a) usuário(a) root
):
cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.48.8
Explicações do Comando
CXXFLAGS="-O2 -fPIC"
: Essas opções do
compilador são necessárias para construir exemplos baseados em
"Qt5".
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza binários
não otimizados.
-D docs=true
: Use essa chave para
habilitar construir páginas de manual e documentação se GTK-Doc-1.34.0 estiver instalado.
-D nmtui=true
: Essa chave
habilita construir nmtui.
-D systemdsystemunitdir=no
e -D systemd_journal=false
:
systemd não é usado para sistemas de inicialização SysV, de forma
que evite instalar unidades e usar o diário do systemd.
-D ovs=false
: Essa chave
desabilita a integração do Open vSwitch porque ela precisa de
jansson-2.14. Remova-a se você tiver jansson-2.14 instalado em teu sistema.
-D modem_manager=false
:
Essa chave é exigida se o ModemManager não estiver instalado. Omita essa
chave se você tiver construído ModemManager e mobile-broadband-provider-info.
-D
session_tracking=elogind
: Essa chave é usada para
configurar elogind
como o aplicativo padrão para rastreamento de sessão.
-D ppp=false
: Essa chave
desabilita suporte a PPP no
NetworkManager, já que os
aplicativos necessários para isso não estão instalados. Remova essa
chave se você precisar de suporte a PPP e tiver o PPP instalado.
-D libaudit=no
e -D selinux=false
: Essa chave
desabilita o suporte para libaudit e SELinux, vez que ele(a) não é
usado(a) no BLFS.
-D qt=false
: Essa chave
desabilita os exemplos QT. Omita
se você tiver o Qt disponível e
desejar instalar os exemplos.
-D crypto=gnutls
: Use essa chave se
você tiver GnuTLS instalado e quiser usá-lo para operações de
certificados e chaves no NetworkManager, em vez de usar o NSS (o
padrão).
-D crypto=null
: Use essa chave se nem
NSS nem GnuTLS estiverem instalados, mas você quiser construir
NetworkManager de qualquer maneira. Essa chave fará com que
NetworkManager careça de alguns recursos (por exemplo, 802.1X).
-D suspend_resume=upower
: Use essa
chave se você tiver UPower-1.90.4 instalado e quiser usá-lo
(em vez de elogind-255.5 ) para suspender e retomar
o suporte.
Configurando o NetworkManager
Arquivos de Configuração
/etc/NetworkManager/NetworkManager.conf
Informação de Configuração
Para o "NetworkManager"
funcionar, pelo menos um arquivo de configuração mínima precisa
estar presente. Tal arquivo não é instalado com "make install". Emita o seguinte
comando como o(a) usuário(a) "root
" para criar um arquivo "NetworkManager.conf
" mínimo:
cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF
Esse arquivo não deveria ser modificado diretamente pelos(as)
usuários(as) do sistema. Em vez disso, mudanças específicas do
sistema deveriam ser feitas usando arquivos de configuração no
diretório "/etc/NetworkManager/conf.d
".
Para permitir que o "Polkit" gerencie autorizações, adicione o
seguinte arquivo de configuração:
cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF
Para usar algo diferente do cliente DHCP integrado (recomendado
se usar somente o nmcli), use a seguinte
configuração (os valores válidos incluem ou dhcpcd ou internal):
cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=
dhcpcd
EOF
Para evitar que o "NetworkManager" atualize o arquivo
"/etc/resolv.conf
", adicione o
seguinte arquivo de configuração:
cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF
Para opções adicionais de configuração, veja-se "man 5 NetworkManager.conf".
Para permitir que usuários(as) regulares configurem conexões de
rede de intercomunicação, você deveria adicioná-los(as) ao grupo
"netdev
" e criar uma regra do
"polkit" que conceda acesso.
Execute os seguintes comandos como o(a) usuário(a) "root
":
groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <nome_usuário(a)>
cat > /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
return polkit.Result.YES;
}
});
EOF
Conjunto de Comandos Sequenciais de
Inicialização
Para iniciar automaticamente o processo de segundo plano
"NetworkManager"
quando o sistema for reinicializado, instale o conjunto
sequencial de comandos de inicialização "/etc/rc.d/init.d/networkmanager
" a partir do
pacote "blfs-bootscripts-20240416".
Nota
Se usar o "Network Manager"
para gerenciar uma interface, [então] qualquer configuração
anterior para essa interface deveria ser removida e a interface
ser desativada antes de iniciar o "Network Manager".
make install-networkmanager
Conteúdo
Aplicativos Instalados:
NetworkManager, nmcli, nm-online, nmtui e
simbolicamente vinculado ao nmtui: nmtui-connect, nmtui-edit e
nmtui-hostname
Bibliotecas Instaladas:
libnm.so e vários módulos sob
/usr/lib/NetworkManager
Diretórios Instalados:
/etc/NetworkManager, /usr/include/libnm,
/usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.48.8,
/usr/share/gtk-doc/html/{libnm,NetworkManager} (se a
documentação for construída) e /var/lib/NetworkManager
Descrições Curtas
nmcli
|
é uma ferramenta de linha de comando para controlar o
"NetworkManager" e obter
a situação dele
|
nm-online
|
é um utilitário para determinar se você está online
|
nmtui
|
é uma interface interativa de usuário(a) baseada em
"Ncurses" para o "nmcli"
|
nmtui-connect
|
é uma interface interativa de usuário(a) baseada em
"Ncurses" para ativar/desativar conexões
|
nmtui-edit
|
é uma interface interativa de usuário(a) baseada em
"Ncurses" para editar conexões
|
nmtui-hostname
|
é uma interface interativa de usuário(a) baseada em
"Ncurses" para editar o nome do dispositivo
|
NetworkManager
|
é o processo de segundo plano de gerenciamento de rede de
intercomunicação
|
libnm.so
|
contém funções usadas pelo "NetworkManager"
|