NetworkManager-1.44.2
      
      
        
          NetworkManager の概要
        
        
          NetworkManager is a set of
          co-operative tools that make networking simple and straightforward.
          Whether you use WiFi, wired, 3G, or Bluetooth, NetworkManager
          allows you to quickly move from one network to another: Once a
          network has been configured and joined once, it can be detected and
          re-joined automatically the next time it's available.
        
        
          ![[注記]](../images/note.png) 
          
            注記
          
          
            LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS
            開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
          
         
        
          ![[注記]](../images/note.png) 
          
            注記
          
          
            Make sure that you disable the systemd-networkd service or
            configure it not to manage the interfaces you want to manage with
            NetworkManager.
          
         
        
          パッケージ情報
        
        
        
          NetworkManager の依存パッケージ
        
        
          必須
        
        
          jansson-2.14, libndp-1.8
        
        
          推奨
        
        
          cURL-8.5.0,
          dhcpcd-10.0.6, gobject-introspection-1.78.1,
          iptables-1.8.10, newt-0.52.24 (for
          nmtui), nss-3.96.1, Polkit-123
          (runtime), PyGObject-3.46.0, Systemd-255, Vala-0.56.14, and
          wpa_supplicant-2.10 (runtime, built with
          D-Bus support)
        
        
          任意
        
        
          BlueZ-5.71, D-Bus Python-1.3.2 (for the test suite),
          GnuTLS-3.8.2 (can be used instead of nss-3.96.1), GTK-Doc-1.33.2, libpsl-0.21.2, (Qt-5.15.11 or
          qt-components-5.15.11 with qtdoc) (for
          examples), ModemManager-1.18.12, UPower-1.90.2, Valgrind-3.22.0, dnsmasq, firewalld, libaudit,
          libteam, 
          mobile-broadband-provider-info, PPP, RP-PPPoE
        
       
      
        
          Kernel Configuration
        
        
          If you wish to run the tests, check that at least the following
          options are enabled in the kernel configuration. Those options have
          been determined to be necessary, but may not be sufficient.
          Recompile the kernel if necessary:
        
        [*] 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]
       
      
        
          NetworkManager のインストール
        
        
          If Qt-5.15.11 is installed and the Qt based examples
          are desired, fix two meson.build files:
        
        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
        
          Fix the python scripts so that they use Python 3:
        
        grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
        
          以下のコマンドを実行して NetworkManager
          をビルドします。
        
        mkdir build &&
cd    build    &&
CXXFLAGS+="-O2 -fPIC"            \
meson setup ..                   \
      --prefix=/usr              \
      --buildtype=release        \
      -Dlibaudit=no              \
      -Dlibpsl=false             \
      -Dnmtui=true               \
      -Dovs=false                \
      -Dppp=false                \
      -Dselinux=false            \
      -Dqt=false                 \
      -Dsession_tracking=systemd \
      -Dmodem_manager=false      &&
ninja
        
          An already active graphical session with a bus address is necessary
          to run the tests. To test the results, issue ninja test.
        
        
          A few tests may fail, depending on enabled kernel options.
        
        
          root ユーザーになって以下を実行します。
        
        ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.44.2}
        
          If you have not passed the -Ddocs=true
          option to meson, you
          can install the pregenerated manual pages with (as the root user):
        
        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
        
          If you have not used -Ddocs=true, the
          pregenerated HTML documentation can also be installed with (as the
          root user):
        
        cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.44.2
       
      
        
          コマンド説明
        
        
          CXXFLAGS="-O2 -fPIC": These compiler
          options are necessary to build the Qt5 based examples.
        
        
          --buildtype=release:
          本パッケージの安定版リリース向けに適したビルドタイプを指定します。
          デフォルトにしていると、最適化されていないバイナリを生成する場合があるためです。
        
        
          -Ddocs=true: Use this switch to enable
          building man pages and documentation if GTK-Doc-1.33.2
          is installed.
        
        
          -Dnmtui=true: This switch
          enables building nmtui.
        
        
          -Dlibpsl=false and
          -Dovs=false: These switches
          disable building with the respective libraries. Remove these if you
          have the needed libraries installed on your system.
        
        
          -Dmodem_manager=false: This
          switch is required if ModemManager
          is not installed. Omit this switch if you have built ModemManager and mobile-broadband-provider-info.
        
        
          -Dsession_tracking=systemd:
          This switch is used to set systemd-logind as the default
          program for session tracking.
        
        
          -Dppp=false: This switch
          disables PPP support in
          NetworkManager since the programs
          necessary for it are not installed. Remove this switch if you need
          PPP support and have PPP
          installed.
        
        
          -Dlibaudit=no and
          -Dselinux=false: This
          switch disables support for libaudit and SELinux since they are not
          used in BLFS.
        
        
          -Dqt=false: This switch
          disables the Qt examples. Omit if
          you have Qt available and wish to
          install the examples.
        
        
          -Dcrypto=gnutls: Use this switch if you
          have GnuTLS installed and want to use it for certificate and key
          operations in NetworkManager, instead of using NSS (the default).
        
        
          -Dcrypto=null: Use this switch if
          neither NSS nor GnuTLS is installed but you want to build
          NetworkManager anyway. This switch will make NetworkManager lack
          some features (for example 802.1X).
        
        
          -Dsuspend_resume=upower: Use this
          switch if you have UPower-1.90.2 installed and want to use
          it (instead of Systemd-255) for suspend and resume
          support.
        
       
      
        
          NetworkManager の設定
        
        
          
            
          
          
            設定ファイル
          
          
            /etc/NetworkManager/NetworkManager.conf
          
         
        
          
          
            設定情報
          
          
            For NetworkManager to work, at
            least a minimal configuration file must be present. Such a file
            is not installed with make
            install. Issue the following command as the
            root user to create a minimal
            NetworkManager.conf file:
          
          cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF
          
            This file should not be modified directly by users of the system.
            Instead, system specific changes should be made using
            configuration files in the /etc/NetworkManager/conf.d directory.
          
          
            To allow polkit to manage authorizations, add the following
            configuration file:
          
          cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF
          
            To use something other than the built-in dhcp client (recommended
            if using only nmcli), use the following
            configuration (valid values include either dhcpcd or internal):
          
          cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=dhcpcd
EOF
          
            To prevent NetworkManager from
            updating the /etc/resolv.conf file,
            add the following configuration file:
          
          cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF
          
            For additional configuration options, see man 5 NetworkManager.conf.
          
          
            To allow regular users to configure network connections, you
            should add them to the netdev
            group, and create a polkit rule
            that grants access. Run the following commands as the
            root user:
          
          groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <username>
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
         
        
          
            
          
          
            
            Systemd ユニット
          
          
            To start the NetworkManager daemon at boot,
            enable the previously installed systemd unit by running the
            following command as the root
            user:
          
          
            ![[注記]](../images/note.png) 
            
              注記
            
            
              If using Network Manager to
              manage an interface, any previous configuration for that
              interface should be removed, and the interface brought down
              prior to starting Network
              Manager.
            
           
          systemctl enable NetworkManager
          
            Starting in version 1.11.2 of NetworkManager, a systemd unit named
            NetworkManager-wait-online.service
            is enabled, which is used to prevent services that require
            network connectivity from starting until NetworkManager establishes a connection. To
            disable this behavior, run the following command as the
            root user:
          
          systemctl disable NetworkManager-wait-online
         
       
      
        
          パッケージ構成
        
        
          
            
              インストールプログラム: NetworkManager, nmcli, nm-online, nmtui, and,
              symlinked to nmtui: nmtui-connect, nmtui-edit, and
              nmtui-hostname
            
            
              インストールライブラリ: libnm.so, /usr/lib/NetworkManager 配下の数種のモジュール
            
            
              インストールディレクトリ: /etc/NetworkManager, /usr/include/libnm,
              /usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.44.2,
              /usr/share/gtk-doc/html/{libnm,NetworkManager} (if the
              documentation is built), /var/lib/NetworkManager
            
           
         
        
          
            概略説明
          
          
            
              
              
            
            
              
                | 
                    nmcli
                   | 
                    is a command-line tool for controlling NetworkManager and getting its
                    status
                   | 
              
                | 
                    nm-online
                   | 
                    is an utility to determine whether you are online
                   | 
              
                | 
                    nmtui
                   | 
                    is an interactive ncurses-based user interface for
                    nmcli
                   | 
              
                | 
                    nmtui-connect
                   | 
                    is an interactive ncurses-based user interface to
                    activate/deactivate connections
                   | 
              
                | 
                    nmtui-edit
                   | 
                    is an interactive ncurses-based user interface to edit
                    connections
                   | 
              
                | 
                    nmtui-hostname
                   | 
                    is an interactive ncurses-based user interface to edit
                    the hostname
                   | 
              
                | 
                    NetworkManager
                   | 
                    is the network management daemon
                   | 
              
                | 
                    libnm.so | 
                    contains functions used by NetworkManager
                   |