Alpine linux setup mini-wiki.
Первое что вам необходимо усвоить - это то, что у вас не будет красивого grub и некоторых стандартных утилит, к которым вы привыкли в том же Debian.
По крайней мере, у меня при попытке добавить картинку или тему к любому загрузчику полностью выводил его из строя. Восстановить систему и убрать картинку у меня так толком и не вышло. Мне пришлось полностью переустанавливать систему. Благо это была виртуалка. На реальном компьютере будет немногим сложнее.
Второе - у вас не будет полноценной обработки чего-либо, потому что многие библиотеки специально урезаны ради экономии места на жестком диске. Т.е. как минимум для полноценной компиляции она точно не подойдёт. Однако, это же и преимущество, которое говорит о том, что система подойдёт либо для очень старых компьютеров, либо там, где важен каждый магабайт.
Это специфичная система которая подойдёт для узкого круга задач. Однако, это не означает, что её нельзя настроить как полноценную Desktop-ую версию.
Возможно с первого раза вы даже не всё поймёте в этой системе и не всё сможете запустить или настроить.
Всё приходит с ошибками и практикой. Поэтому не отчаивайтесь и для начала испытайте её на виртуальной машине, чтобы определиться - подойдёт такая система для вас и ваших задач или нет.
Во всем привычном Debian или Ubuntu при установке Xorg и менеджера дисплея автоматически устанавливаются минимальный набор графических, офисных программ и системных утилит. Здесь же в Alpine linux вам буквально придётся выбирать и устанавливать все указанные утилиты вручную.Что даёт вам гораздо больший контроль над системой по сравнению с указанными.
Самое интересное как всегда напоследок. Оставляю также и список 30 категорий на 70~80% проверенных и найденных программ и утилит в реп-ях Alpine. Поэтому просто копируйте нужное и вставляйте в команду установки: «apk add program-name». Поэтому если пакетный менеджер что-нибудь не находит и ругается - смело убирайте эту программу из установки.
Большой список программ и утилит для Alpine Linux 30 различных категорий.
Первым делом для входа в систему введите логин:
$ root
Для установки системы введите команду:
$ setup-alpnie
Следуйте указаниям мастера-установщика.
us us eth0 dhcpcd no proxy - none openssh sda sys y reboot
После перезагрузки введите: «root».
Далее обновите пакеты, установите редактор nano, раскоментируйте все репозитории и снова обновитесь.
$ apk update $ apk add nano $ nano /etc/apk/repositories # uncomment all $ apk update $ apk upgrade
Установим минимальный набор утилит, шрифтов и тем.
$ apk add sed attr dialog dialog-doc bash bash-doc bash-completion grep grep-doc \ util-linux util-linux-doc pciutils usbutils binutils findutils readline \ man-pages lsof lsof-doc less less-doc nano nano-doc curl curl-doc \ coreutils coreutils-doc $ apk add terminus-font ttf-inconsolata ttf-dejavu font-misc-cyrillic font-mutt-misc \ font-screen-cyrillic font-winitzki-cyrillic font-cronyx-cyrillic terminus-font \ font-sony-misc font-daewoo-misc font-jis-misc font-isas-misc
Настройка skel директории.
$ mkdir -p /etc/skel $ nano /etc/skel/.Xresources Xft.antialias: 0 Xft.rgba: rgb Xft.autohint: 0 Xft.hinting: 1 Xft.hintstyle: hintslight
Установка и автозапуск аудио Alsa.
$ apk add alsa-utils alsa-utils-doc alsa-lib alsaconf $ rc-service alsa start $ rc-update add alsa
cshrc и profile.
$ nano /root/.cshrc unsetenv DISPLAY || true HISTCONTROL=ignoreboth $ cp /root/.cshrc /root/.profile
Xorg, Display manager - XFCE4.
$ setup-xorg-base $ apk add xfce4 thunar-volman faenza-icon-theme $ rc-service dbus start $ rc-update add dbus $ rc-service udev start $ rc-update add udev $ apk add accountsservice ttf-cantarell librsvg gnome-icon-theme adwaita-icon-theme lightdm lightdm-gtk-greeter lightdm-openrc $ rc-update add lightdm $ apk add polkit consolekit2 xterm $ apk add firefox $ reboot
И мы получаем примерно вот такую картину.
Мышь, тачпад, регулятор громкости...
$ apk add xf86-input-synaptics alsa-utils alsa-plugins volumeicon
Pulseaudio.
$ apk add pavucontrol pulseaudio pulseaudio-alsa pulseaudio-equalizer pulseaudio-jack pulsemixer pamixer pulseview
xdg, polkit, gvfs.
$ apk add xdg-user-dirs xdg-utils polkit gvfs gvfs-afc gvfs-mtp gvfs-smb acpid avahi cronie $ rc-service acpid start $ rc-service avahi-daemon start $ rc-service cronie start $ rc-update add acpid $ rc-update add avahi-daemon
Архиваторы, архивы.
apk add ark xarchiver file-roller apk add unzip zip p7zip
Шрифты, темы.
apk add ttf-liberation ttf-dejavu terminus-font fontforge apk add breeze breeze-grub breeze-icons faenza-icon-theme adwaita-icon-theme
Установка утилиты для добавлению пользователей.
apk add libuser
Настройка skel и default.
$ touch /etc/login.defs $ mkdir -p /etc/default/ $ touch /etc/default/useradd $ mkdir -p /etc/skel/ $ touch /etc/skel/.logout $ nano /etc/skel/.cshrc set autologout = 30 set prompt = "\$ " set ignoreeof $ cp /etc/skel/.cshrc /etc/skel/.profile
Добавление пользователя, настройка пароля групп.
$ adduser -D -k /etc/skel -h /home/mikl -s /bin/bash mikl $ chown YourUserName /home/YourUserName && chmod 700 /home/YourUsername # or $ chown YourUserName /home/YourUserName && chmod 750 /home/YourUsername # или так $ adduser -D -h /home/mikl -s /bin/bash mikl $ echo "mikl:1234" | chpasswd $ for u in $(ls /home); do for g in disk usb cdrw ping kvm lp floppy audio cdrom dialout video netdev games users wheel; do addgroup $u $g; done;done # Перечисление всех групп. # disk lp floppy audio cdrom dialout ping tape video netdev kvm games cdrw apache usb users
Изменить shell по умолчанию.
$ lchsh $ lchsh root $ lchsh mikl
Имя машины, dns-адреса.
$ echo "shortname" > /etc/hostname $ nano /etc/hosts $ nano /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4
Если вдруг нужен ipv6.
# Enabling IPv6 (Optional) $ modprobe ipv6 $ echo "ipv6" >> /etc/modules
Обязательно, настройка адресов - вручную или автоматически - на ваше усмотрение.
nano /etc/network/interfaces
Network Manager.
$ apk add networkmanager networkmanager-bash-completion networkmanager-cli networkmanager-qt network-manager-applet # Для KDE воспользуйтесь этой утилитой $ plasma-nm network-manager-applet $ rc-service networkmanager start $ adduser YourUsername plugdev # Если WiFi секция не нужна, то просто не копируйте её и пропустите. # Обратите внимание, что флаг managed установлен в true, т.е. все соединения управляются вручную. Это обязательно. $ nano /etc/NetworkManager/NetworkManager.conf [main] dhcp=internal plugins=ifupdown,keyfile [ifupdown] managed=true [device] wifi.scan-rand-mac-address=yes wifi.backend=wpa_supplicant # Now you need to stop conflicting services: $ rc-service networking stop $ rc-service wpa_supplicant stop # Now restart NetworkManager: $ rc-service networkmanager restart $ rc-update add networkmanager $ rc-service iwd start $ rc-service networkmanager restart # rc-update del networking boot # rc-update del wpa_supplicant boot
Таблицы маршрутизации, добавление в автозапуск.
$ apk add iptables $ apk add ip6tables $ apk add iptables-doc $ rc-update add iptables $ /etc/init.d/iptables save # lbu ci $ rc-update add ip6tables /etc/init.d/ip6tables save # lbu ci $ apk add iputils iproute2
Установка утилит для локализации. Время. Временная зона.
$ apk add tzdata musl-locales musl-locales-lang $ cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime $ echo "Europe/Moscow" > /etc/timezone
Настройка локали.
$ nano /etc/profile.d/locale.sh export TZ=Europe/Moscow export CHARSET=ru_RU.UTF-8 export LANG=ru_RU.UTF-8 export LANGUAGE=ru_RU.UTF-8 export LC_ALL=ru_RU.UTF-8
Настройка клавиатуры и русской раскладки.
$ apk add terminus-font kbd-bkeymaps kbd $ wget -O ru-utf.map.gz https://aur.archlinux.org/cgit/aur.git/plain/ru-utf.map.gz?h=kbd-ru-keymaps
Применение локализаций + автозагрузка.
$ sed -i 's/unicode="NO"/unicode="YES"/' /etc/rc.conf $ cat /etc/conf.d/consolefont $ rc-update add consolefont boot $ cp ru-utf.map.gz /usr/share/keymaps/xkb/ $ sed -i 's/keymap="us"/keymap="ru-utf"/' /etc/conf.d/loadkeys $ sed -i 's/dumpkeys_charset="no"/dumpkeys_charset="yes"/' /etc/conf.d/loadkeys $ rc-update add loadkeys boot
Установка rEfind.
$ apk install refind $ refind-install --alldrivers $ echo '"Alpine" "modules=loop,squashfs,sd-mod,usb-storage quiet initrd=\boot\intel-ucode.img initrd=\boot\amd-ucode.img initrd=\boot\initramfs-lts"' > /media/sdXY/boot/refind_linux.conf
Syslinux.
$ apk add syslinux $ dd bs=440 count=1 conv=notrunc if=/usr/share/syslinux/gptmbr.bin of=/dev/sda # или $ dd bs=440 count=1 conv=notrunc if=/usr/share/syslinux/mbr.bin of=/dev/sda $ extlinux --install /boot
UEFI syslinux.
$ mkdir -p /mnt/EFI/syslinux $ cp /usr/share/syslinux/efi64/* /mnt/EFI/syslinux/ $ cp /boot/extlinux.conf /mnt/EFI/syslinux/syslinux.cfg $ cp /boot/vmlinuz* /mnt/ $ cp /boot/initramfs* /mnt/ # You may need to modify /mnt/EFI/syslinux/syslinux.cfg to change the paths to absolute paths (just add a / in front of the vmlinuz/initramfs entries), or copy the files to /mnt/EFI/syslinux instead (XXX: untested).
GRUB.
$ apk del syslinux $ apk add grub grub-bios os-prober breeze-grub $ apk add grub-efi $ grub-install /dev/sda # sdb, sdc... # GRUB UEFI. $ grub-install --target=x86_64-efi --efi-directory=/boot $ grub-mkconfig -o /boot/grub/grub.cfg $ nano /etc/default/grub GRUB_DISABLE_OS_PROBER=false $ grub-mkconfig -o /boot/grub/grub.cfg
Установка и настройка.
$ apk add wireguard-tools $ modprobe wireguard # /etc/modules $ echo "wireguard" >> /etc/modules
Генерирование ключей, запуск.
$ wg genkey | tee privatekey | wg pubkey > publickey Interface] Address = 10.123.0.1/24 ListenPort = 45340 PrivateKey = SG1nXk2+kAAKnMkL5aX3NSFPaGjf9SQI/wWwFj9l9U4= # the key from the previously generated privatekey file PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;iptables -A FORWARD -o %i -j ACCEPT PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;iptables -D FORWARD -o %i -j ACCEPT $ wg-quick up wg0 $ wg-quick down wg0
Установка и настройка интерфейса.
$ apk add wireguard-tools-wg $ nano /etc/network/interfaces auto wg0 iface wg0 inet static requires eth0 use wireguard address 192.168.42.1 post-up iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;iptables -A FORWARD -o wg0 -j ACCEPT post-down iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;iptables -D FORWARD -o wg0 -j ACCEPT
Включить перенаправления.
$ nano /etc/sysctl.conf # or $ mkdir -p /etc/sysctl.d/ && nano /etc/sysctl.d/forwarding.conf net.ipv4.ip_forward = 1
Запуск, остановка.
$ ifup wg0 $ ifdown wg0
Установка и настрнойка.
$ apk add docker $ addgroup username docker $ rc-update add docker boot $ service docker start $ sysctl -w kernel.grsecurity.chroot_deny_chmod=0 $ sysctl -w kernel.grsecurity.chroot_deny_mknod=0 $ apk add docker-compose # Или установка из pip: $ apk add py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make $ pip3 install docker-compose
$ adduser -SDHs /sbin/nologin dockremap $ addgroup -S dockremap $ echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f3):65536 >> /etc/subuid $ echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f4):65536 >> /etc/subgid $ add to /etc/docker/daemon.json { "userns-remap": "dockremap" } You may also consider these options : ' "experimental": false, "live-restore": true, "ipv6": false, "icc": false, "no-new-privileges": false
Установка.
apk add cups cups-lang cups-libs cups-pdf print-manager
По умолчанию файлы PDF хранятся в /var/spool/cups-pdf/имя_пользователя. Местоположение можно изменить в /etc/cups/cups-pdf.conf.
# Добавить локальный принтер - Cups-PDF $ mkdir ~/cups-pdf # Настраиваем конфиг $ sudo nano /etc/cups/cups-pdf.conf ... Out /home/mikl/cups-pdf/ ... TitlePref 1 ... DecodeHexStrings 1 ... http://localhost:631/ # cups.service # cups.socket
При активации cups.socket и выключении cups.service, CUPS запускается только тогда, когда программа хочет его использовать.
Gutenprint Printer Drivers: Canon, Epson, Lexmark, Sony, Olympus, PCL.
sudo pacman -S gutenprint foomatic-db-gutenprint-ppds
Foomatic Printer Drivers. Чтобы использовать foomatic, установите foomatic-db-engine и по крайней мере один из пакетов: foomatic-db - коллекция файлов XML, используемая foomatic-db-engine для генерации файлов PPD. foomatic-db-ppds - прекомпилированные файлы PPD. foomatic-db-nonfree - коллекция файлов XML под несвободными лицензиями от производителей принтеров, используемая foomatic-db-engine для генерации файлов PPD. foomatic-db-nonfree-ppds - прекомпилированные файлы PPD под несвободными лицензиями.
Инструмент для управления заданиями печати и принтерами (KDE):
print-manager
Инструмент настройки принтера GTK+ и апплет состояния (GNOME и другие):
system-config-printer
Настройки сервера CUPS находятся в /etc/cups/cupsd.conf и /etc/cups/cups-files.conf.
Установка Flatpak.
apk add flatpak
Рекомендовано добавить пользователя в группу.
adduser <YourUsername> flatpak
Добавление репозитория.
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Ну а сегодня на этом всё. Всем Добра и Удачи!
Copyright © 21.03.2022 by Mikhail Artamonov