В статията "Минимална базова инсталация на Arch" показахме как се инсталира Arch linux в максимално орязан вариант. Сега ще се постараем да направим системата поносима за ползване, като няма да се увличаме в множество инсталации. Първия и главен проблем, който се набива на очи е, че работим в системата като главен потребител (root). Това е голяма дупка за хакване и първото нещо което ще изправим е именно това. Обаче едновременно с това да оправим времевата зона в която работим и да синхронизираме времето.
pacman -Syy - синхронизиране на нашата база с тази на хранилищата pacman -S - инсталиране на пакет pacman -R - триене на пакет pacman -Rs - триене на пакет с неговите зависимости pacman -Rdd - триене на пакет като оставя файловете в зависимост от други приложения pacman -Sс - търсене на пакет pacman -Qs vmware - тази операция ви позволява да видите инсталираните пакети и техните файлове, а s търси във всеки локално инсталиран пакет за имена или описания pacman -Syu - надграждане на пакети. По принцип, тази команда синхронизира локалната база данни на pacman с основната база данни на хранилището и след това актуализира системата. S - казва на pacman да синхронизира локалната база данни с основната база данни u - казва на pacman да обнови пакетите y - актуализира локалния catch в системата
За начало да обновим репозиторите.
pacman -Syy
Да обновим и системата.
pacman -Syu
Ако сте сбъркали и искате да изтриете някой пакет:
pacman -Rdd име_на_приложение
Ползваме -Rdd - R : трие всички файлове на приложението - dd : оставя файловете които са в зависимост от други приложения.
Синхронизираме часовата зона и часа.
ln -sf /usr/share/zoneinfo/Europe/Sofia /etc/localtime hwclock --systohc
Сега ако изберем:
date Sat May 31 13:34:26 EEST 2025
Имаме синхронизирани дата и време за нашия регион. Да определим какъв език ще ползваме в системата. Предпочитам Английски, защото има по-малко бъгове. Българския също работи но за някои опции има проблеми. За целта ще ползваме конзолен текстов редактор nano. По принцип сме го инсталирали но не е проблем наново да го пуснем за инсталация.
pacman -S nano warning: nano-8.7-1 is up to date -- reinstalling resolving dependencies... looking for conflicting packages... Packages (1) nano-8.7-1 Total Installed Size: 2.61 MiB Net Upgrade Size: 0.00 MiB :: Proceed with installation? [Y/n] n
Казва, че е инсталиран. Предлага да го преинсталираме, но няма смисъл и се отказваме. Да конфигурираме и езика на системата.
echo "bg_BG.UTF-8 UTF-8" >> /etc/locale.gen echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
Ако пък искате да виждате какво правите използвайте текстовия редактор.
nano /etc/locale.gen #bg_BG.UTF-8 UTF-8 bg_BG.UTF-8 UTF-8 #en_US.UTF-8 UTF-8 en_US.UTF-8 UTF-8
Дефинирахме езика който ще ползва системата. Да генерираме локалните настройки които указахме по-горе.
locale-gen Generating locales... bg_BG.UTF-8... done en_US.UTF-8... done Generation complete.
Да създадем конфигурационен файл указващ езика който ще показва системата ни.
echo LANG=en_US.UTF-8 > /etc/locale.conf
Тук ми се иска да се спра малко по-подробно. Ако бяхме ползвали език за показване да е Български. Примерно вместо en_US.UTF-8 бяхме сложили bg_BG.UTF-8, то тогава надписите нямаше да излязат на Български, а щяха да се показват във вид на квадратчета или там някакви непонятни знаци. За да няма неразбираеми знаци трябва да се оправи още един файл, който оправя шрифтовете.
echo KEYMAP=us > /etc/vconsole.conf echo FONT=UniCyr_8x16 >> /etc/vconsole.conf
Клавиатурната подредба ще ни е англиска. Освен това ще ползваме шрифт, който ще кирилизира непознатите символи. Шрифта също е уникод както дефинирахме по-горе системата. Горната операция може да се направи също така и през текстовия редактор.
nano /etc/vconsole.conf KEYMAP=us FONT=UniCyr_8x16
За Българския език на клавиатурата командата ще е:
echo KEYMAP=bg >> /etc/vconsole.conf
Ако искате веднага да ползвате настройките които сега направихте ще трябва системата да се рестартира. Това ще преинициализира фрейм-буфер екрана. Трябва да предупредя!!! Понякога фрейм-бувера не тръгва с новите настройки, понякога тръгва. Затова избягвам да ползвам Българския език в конзолен режим на работа.
Да създадем допълнителен потребител неразполагащ с правата на root. Не е добра практика да се работи с главния потребите. Той ще може да ползва допълнителни права чрез sudo. За начало да инсталираме пакета.
pacman -Sy sudo
Да създадем и допълнителния потребител, който да членува в тази група.
useradd -g users -G wheel,audio -s /bin/bash -m cccp
Да дадем парола за потребителя cccp.
passwd cccp New password: Pa$$ Retype new password: Pa$$ passwd: password updated successfully
Да подготвим потребителя за работа с графична среда. За целта трябва да го добавим към още няколко групи.
usermod -aG video,storage,power cccp
Да дадем на потребителя cccp, sudo права.
echo "%wheel ALL=(ALL:ALL) ALL" >> /etc/sudoers
Започваме с дефиниране на хоста.
echo My-PC >> /etc/hostname
Да поправим и файла hosts
echo "127.0.1.1 My-PC.localdomain My-PC" >> /etc/hosts cat /etc/hosts # Static table lookup for hostnames. # See hosts(5) for details. 127.0.0.1 localhost ::1 localhost 127.0.1.1 My-PC.localdomain My-PC
Да рестартираме системата и наново да влезем през потребителя cccp.
reboot
Много рядко но ще се наложи да работите със статични IP адреси. Нека да покажем и тази част.
ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:05:b9:77 brd ff:ff:ff:ff:ff:ff altname enp2s0 altname enx000c2905b977 inet 192.168.11.75/24 brd 192.168.11.255 scope global dynamic noprefixroute ens32 valid_lft 535sec preferred_lft 535sec inet6 fe80::a418:6b3f:370:52ef/64 scope link noprefixroute valid_lft forever preferred_lft forever ip link set ens32 up ip r default via 192.168.11.1 dev ens32 proto dhcp src 192.168.11.75 metric 100 192.168.11.0/24 dev ens32 proto kernel scope link src 192.168.11.75 metric 100 systemctl disable NetworkManager Removed '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'. Removed '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'. Removed '/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service'. systemctl enable systemd-networkd systemctl start systemd-networkd Created symlink '/etc/systemd/system/dbus-org.freedesktop.network1.service' → '/usr/lib/systemd/system/systemd-networkd.service'. Created symlink '/etc/systemd/system/multi-user.target.wants/systemd-networkd.service' → '/usr/lib/systemd/system/systemd-networkd.service'. Created symlink '/etc/systemd/system/sockets.target.wants/systemd-networkd.socket' → '/usr/lib/systemd/system/systemd-networkd.socket'. Created symlink '/etc/systemd/system/sysinit.target.wants/systemd-network-generator.service' → '/usr/lib/systemd/system/systemd-network-generator.service'. Created symlink '/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service' → '/usr/lib/systemd/system/systemd-networkd-wait-online.service'. nano /etc/systemd/network/ens32.network [Match] Name=ens32 [Network] Address=192.168.11.67/24 Gateway=192.168.11.1 DNS=1.1.1.1 DNS=8.8.8.8 sudo systemctl list-unit-files | grep enabled | grep netctl
sudo nano /etc/bash.bashrc # най-отдолу alias ll="ls -lh --color=auto" source /etc/bash.bashrc
yay (Yet Another Yogurt) е популярен помощник за управление на пакети за Arch-базирани Linux дистрибуции като Arch Linux и Manjaro, който опростява инсталирането и актуализирането на пакети от официалните хранилища и от Arch User Repository (AUR) , като комбинира функции на мениджъри на пакети като [yet another yogurt] pacmanс удобството на търсене и автоматизиране на компилации от AUR. За да се инсталира YAY се ползва командата make, а тя е част от пакета base-devel. Той съдържа базови компоненти и помощни програми за създаване на други програми, както в случая програмата make. Да инсталираме пакета.
pacman -Sy base-devel
Внимавайте, за по-нататъшни действия трябва да работите не с потребителя root, а този който сте създали с права за sudo. Прехвъляме се от потребителя root на cccp и продължаваме с инсталацията на YAY.
su cccp whoami cccp sudo pacman -Sy git cd ~ git clone https://aur.archlinux.org/yay-git.git cd yay-git makepkg -si cd .. rm -rf yay-git/ sudo yay -Syu -> Avoid running yay as root/sudo. :: Synchronizing package databases... core is up to date extra is up to date :: Searching AUR for updates... :: Searching databases for updates... there is nothing to do
Всичко работи правилно, без забележки. С това приключваме първоначалната настройка. Ако обобщим, настроихме системата за по-нататъшна инсталация на графична среда, създадохме потребител cccp с права на групата wheel, инсталирахме допълнителен помощник за управление на пакети, наречен YAY и инсталирахме пакета base-devel, който допълва системата с базови компоненти като командата make. В следващата статия ще допълним системата с няколко модула към ядрото, ще инсталираме NetworkManager за управление на мрежата, може би ще допълним настройките на GRUB, както и ще допълним правата на потребителя cccp.