[GUIDE] Как полностью удалить NetworkManager из Arch Linux с установленным Cinnamon'ом.

Небольшое руководство для тех, кто хочет полностью удалить NetworkManager из Arch Linux, но продолжить пользоваться Cinnamon'ом. Как известно, NM является обязательной зависимостью для Cinnamon'а и по этой причине отдельно не удаляется, но, при определенном желании это ограничение вполне можно обойти.

Начальные условия:
Arch Linux (канал обновления - stable) up2date
Cinnamon 4.0.9
NetworkManager 1.14.5
ConnMan 1.36 (переходить будем на него, но, в принципе, может быть и wicd или systemd-networkd)
connman-git 1.1.1

1. Устанавливаем пакет connman из официального репозитория Arch Linux и пакет connman-git из AUR (по желанию).

2. Переключаемся с NetworkManager'а на ConnMan:

$ sudo systemctl stop NetworkManager.service && sudo systemctl disable NetworkManager.service
$ sudo systemctl enable connman.service && sudo systemctl start connman.service

Перезагружаемся.

3. После перезагрузки можно ограничиться отключением автозагрузки network-manager-applet и на этом успокоиться, но наша цель - полностью удалить NM из системы. Для этого нам придется создать пакет-заглушку, который заменит собой все компоненты NetworkManager'а.

4. Создаем директорию networkmanager-dummy

5. Копируем в нее файл /usr/lib/girepository-1.0/NM-1.0.typelib (это один из двух файлов, требующихся для обмана Cinnamon. Второй файл мы создадим непосредственно в самом PKGBUILD)

6. Создаем в директории networkmanager-dummy файл PKGBUILD со следующим содержимым:


pkgname=networkmanager-dummy
pkgver=0.0.1
pkgrel=1
pkgdesc="Something to trick Cinnamon into thinking it has NetworkManager package installed"
url="http://127.0.0.1"
arch=('any')
license=('GPL')
depends=()
optdepends=()
makedepends=()
replaces=()
conflicts=('networkmanager' 'network-manager-applet' 'nm-connection-editor' 'libnm-glib' 'libmm-glib' 'libnma' 'libnm')
provides=('networkmanager' 'network-manager-applet' 'nm-connection-editor' 'libnm-glib' 'libmm-glib' 'libnma' 'libnm')
source=('NM-1.0.typelib')
md5sums=('SKIP')

build() {
   echo "Nothing to build"
}

package() {
   install -Dm644 ../NM-1.0.typelib "${pkgdir}/usr/lib/girepository-1.0/NM-1.0.typelib"
   install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/nm-applet.desktop" <<END
[Desktop Entry]
Name=Network
Comment=Manage your network connections
Icon=nm-device-wireless
Exec=nm-applet
Terminal=false
Type=Application
NoDisplay=true
NotShowIn=KDE;GNOME;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=NetworkManager
X-GNOME-Bugzilla-Component=nm-applet
X-GNOME-UsesNotifications=true
END

}

7. Собираем наш пакет-заглушку:

$ cd networkmanager-dummy
$ makepkg

8. Устанавливаем свежесобранный пакет networkmanager-dummy-0.0.1-1-any.pkg.tar.xz, перезагружаемся, дочищаем наш Arch Linux от orphan'ов.

9. Наводим косметику: в стартовом меню Cinnamon Настройка -> Меню -> Открыть редактор меню -> Параметры отключаем отображение пунктов "Сетевые соединения" и "Сеть" и переименовываем "Connman Setting" в "Сетевые настройки". Также можно удалить апплет NM для панели задач:

$ sudo rm -rf /usr/share/cinnamon/applets/[email protected]

однако после этого при следующем обновлении Cinnamon ругнется на отсутствующие файлы.

В общем где-то так. На все про все - не более 10 минут. Проверено на 4-х домашних машинах.

P.S. В сообщении на второй странице данной темы приведен рецепт по сборке пакетов cinnamon-slim и cinnamon-control-center-slim с полностью удаленными зависимостями от NetworkManager. Также данные пакеты доступны в AUR.
Andy_Vetrov
Как известно, NM является обязательной зависимостью для Cinnamon'а и по этой причине отдельно не удаляется
Удалить можно все, было бы желание, например,
sudo pacman -Rdd networkmanager
Пакеты (1) networkmanager-1.14.5dev+17+gba83251bb-2
Будет освобождено:  12,81 MiB
:: Удалить эти пакеты? [Y/n] n

А зачем его вообще удалять? - занимет 13М. Стоит у меня, но практически использую очень редко, но он же не мешает и в процессах не висит
journalctl -b | grep -i NetworkManager
..... пусто ....
Ошибки не исчезают с опытом - они просто умнеют
1. К сожалению именно к Cinnamon'у NetworkManager прибит гвоздями и штатным образом его снести не получится - снесется и DE. Поэтому-то и пришлось городить огород.
2. Кроме непосредственно самого NM там еще куча барахла в зависимостях - в сумме получается чуть ли не на порядок больше занятого места. А так - я не вижу смысла держать у себя установленными пакеты, которыми я не пользуюсь.

P.S. @Moderator, похоже я ошибся с разделом. Переместите, пожалуйста, тему в GNOME 3 & Cinnamon - там для нее похоже более подходящее место.
vasek
Удалить можно все, было бы желание, например,
sudo pacman -Rdd networkmanager
И обновлять систему потом так же:
# pacman -Syudd
в противном случае заблеклистиная обязательная зависимость не даст обновиться.
Обновляться с пропуском всех проверок, кстати, - ай-ай-ай!

vasek
занимет 13М
Очень много по сравнению с другими утилитами, при помощи которых можно поднять интернет.

Andy_Vetrov
$ sudo systemctl stop NetworkManager.service && sudo systemctl disable NetworkManager.service
$ sudo systemctl enable connman.service && sudo systemctl start connman.service
$ sudo systemctl disable --now NetworkManager
$ sudo systemctl enable --now connman

Andy_Vetrov
Перезагружаемся.
Зачем???

Дальше не читал, но согласен, что NM не нужен.
Aivar
Очень много по сравнению с другими утилитами, при помощи которых можно поднять интернет.
сейчас бы в 2019 году, бороться за 13 мб места, при наличии 2 ТБ из которых 512ГБ ssd, ну такое
Xts, это дело принципа. Зачем тянуть паровоз-NM, если соединение настраивается один единственный раз, привязывается к юниту и забывается о его существовании...
Мне воообще непонятно, зачем было ставить НМ-аплет при установке Арча, если вы им не пользуетесь? А потом снова его вырезать.
При установке, нууу все же знают:
sudo hostnamectl set-hostname HOST
sudo ip addr
sudo ss -tuwpln
sudo nano /etc/systemd/network/ethernet.network
[Match]
Name=enp4s0f2
[Network]
DHCP=yes
sudo systemctl enable dhcpcd
sudo systemctl start dhcpcd
sudo journalctl -u dhcpcd
sudo pacman -S dnsutils net-tools wpa_supplicant dialog ntfs-3g git wget
А пооооотом уже,.... в зависимости от пожеланий, - НМ. Разве нет?
Давайте жить дружно! :-)
igorog
Мне воообще непонятно, зачем было ставить НМ-аплет при установке Арча, если вы им не пользуетесь? А потом снова его вырезать.
ТС ничего сам не ставил - NM притянулся автоматом при установке DE.

Человек от чистого сердца предложил совет ...... не нужно отпугивать (хотя я и сам, не думая, непроизвольно поучаствовал в этом)
Ошибки не исчезают с опытом - они просто умнеют
igorog

sudo nano /etc/systemd/network/ethernet.network
[Match]
Name=enp4s0f2
[Network]
DHCP=yes
sudo systemctl enable dhcpcd
sudo systemctl start dhcpcd
непонятно, зачем ты создал конфиг ethernet.network, но вместо systemd-networkd.service включил dhcpcd.service???
для dhcpcd.service ethernet.network не нужен.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
vasek
Человек от чистого сердца предложил совет …… не нужно отпугивать
+1
Для тех кто пользуется Cinnamon полезная фишка.
 
Зарегистрироваться или войдите чтобы оставить сообщение.