Найти в Дзене
psmith

Установка Arch Linux с KDE Plasma, часть 3, установка приложений и настройка системы

Оглавление

Продолжение, начало тут:

Установка Arch Linux с КДЕ, часть 1, установка базовой системы
psmith17 августа
Установка Arch Linux с КДЕ, часть 2, установка минимальной КДЕ
psmith17 августа

В предыдущей части мы установили графическое окружение Plasma в нашу систему в минимальной комплектации. В этой части мы продолжим установку и настройку системы. Загружаемся и логинимся под созданным пользователем.

Подключение к сети

Если нужно подключиться к сети WiFi - делаем это через иконку сети в трее.

Установка необходимых приложений

Открываем Alacritty, это наш эмулятор консоли.

Устанавливаем файловый менеджер, текстовый редактор, браузер

sudo pacman -Sy dolphin kate chromium

Все дальнейшие действия в консоли могут осуществляться путем копирования из браузера или текстового редактора команд любого размера, и вставки их в терминал (ctrl-shift-V). Не нужно делать это бездумно, советую скопировать команды сначала из браузера в текстовый редактор, сохранить в файл и внимательно изучить, после чего уже выполнять их в терминале. Но "экономить" мы больше не будем. Приступим к основной настройке системы.

Настройка терминала

Настроим терминал, чтобы можно было делать вставку правым щелчком мыши, и копировать в буфер обмена выделенный текст, автоматически.

mkdir -pv ~/.config/alacritty
cat > ~/.config/alacritty/alacritty.toml << 'EOF'
[[mouse.bindings]]
action = "Paste"
mouse = "Right"
[selection]
save_to_clipboard = true
[window]
opacity = 0.85
dimensions = { columns = 200, lines = 30 }
[font]
size = 12
EOF

Добавим пару строчек в /etc/inputrc, чтобы была удобная навигация по истории команд в консоли (набираем первые буквы, которые помним, и жмем стрелку вверх)

sudo tee -a /etc/inputrc << 'EOF'
"\e[A": history-search-backward
"\e[B": history-search-forward
EOF

Закройте и откройте заново Alacritty, чтобы воспользоваться новыми настройками.

Создание файла подкачки

Если у вас мало памяти (меньше 32Gb), желательно создать файл подкачки

sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstab

Настройка русского языка

sudo tee /etc/locale.gen << 'EOF'
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
EOF
sudo tee /etc/locale.conf << 'EOF'
LANG=ru_RU.UTF-8
EOF
sudo tee /etc/vconsole.conf << 'EOF'
KEYMAP=ru
FONT=cyr-sun16
EOF
sudo locale-gen

При желании измените язык окружения в "Параметры системы" - "Региональные и языковые параметры" на русский.

Установка часового пояса

Найдем свой город

ls /usr/share/zoneinfo

Изменим команду ниже и выполним ее

sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Включим синхронизацию часов

sudo systemctl enable systemd-timesyncd

Если вы используете на компьютере параллельно Windows, то после загрузки в нее в следующий раз выполните в консоли команду

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

Это заставит Windows использовать системные часы в UTC, для совместимости с любым Linux

Имя компьютера в сети

Задайте ниже свое имя, вместо "archlinux"

sudo tee /etc/hostname << 'EOF'
archlinux
EOF

Настройка bash

Настроим историю команд и алиасы bash (для root и для своего пользователя)

sudo tee /root/.bash_profile << 'EOF'
[[ -f ~/.bashrc ]] && . ~/.bashrc
EOF
cat > ~/.bash_profile << 'EOF'
[[ -f ~/.bashrc ]] && . ~/.bashrc
EOF
sudo tee /root/.bashrc << 'EOF'
[[ $- != *i* ]] && return
export HISTSIZE=10000
export HISTFILESIZE=10000
export HISTCONTROL=ignoreboth:erasedups
export HISTIGNORE="&:ls:ll:[bf]g:exit"
export PROMPT_COMMAND="history -a"
shopt -s histappend
shopt -s autocd
shopt -s cdspell
shopt -s checkjobs
shopt -s checkwinsize
shopt -s cmdhist
shopt -s dirspell
shopt -s globstar
alias grep='grep --color=auto'
alias ls="ls -AF --color=auto"
alias ll='ls -AFl --color=auto'
alias lsblk='lsblk -apl -o NAME,RM,RO,ROTA,DISC-GRAN,PARTTYPENAME,TYPE,FSTYPE,FSVER,PARTLABEL,LABEL,SIZE,FSUSED,FSUSE%,MOUNTPOINTS'
EOF
cat > ~/.bashrc << 'EOF'
[[ $- != *i* ]] && return
export HISTSIZE=10000
export HISTFILESIZE=10000
export HISTCONTROL=ignoreboth:erasedups
export HISTIGNORE="&:ls:ll:[bf]g:exit"
export PROMPT_COMMAND="history -a"
shopt -s histappend
shopt -s autocd
shopt -s cdspell
shopt -s checkjobs
shopt -s checkwinsize
shopt -s cmdhist
shopt -s dirspell
shopt -s globstar
alias grep='grep --color=auto'
alias ls="ls -AF --color=auto"
alias ll='ls -AFl --color=auto'
alias lsblk='lsblk -apl -o NAME,RM,RO,ROTA,DISC-GRAN,PARTTYPENAME,TYPE,FSTYPE,FSVER,PARTLABEL,LABEL,SIZE,FSUSED,FSUSE%,MOUNTPOINTS'
EOF

Настроим приглашение bash, например так

sudo tee -a /root/.bashrc << 'EOF'
N="\[\e[0m\]"
C1="\[\e[38;2;255;255;153m\]"
C2="\[\e[38;2;255;192;203m\]"
C3="\[\e[38;2;230;190;255m\]"
A1="\[\e[38;5;196m\]"
A2="\[\e[38;2;255;215;0m\]"
A3="\[\e[38;2;152;255;152m\]"
PS1="$C1\t $C2\u $C3\w $A1>$A2>$A3> $N"
export PROMPT_DIRTRIM=3
unset N C1 C2 C3 A1 A2 A3
EOF
cat >> ~/.bashrc << 'EOF'
N="\[\e[0m\]"
C1="\[\e[38;2;255;255;153m\]"
C2="\[\e[38;2;255;192;203m\]"
C3="\[\e[38;2;230;190;255m\]"
A1="\[\e[38;5;196m\]"
A2="\[\e[38;2;255;215;0m\]"
A3="\[\e[38;2;152;255;152m\]"
PS1="$C1\t $C2\u $C3\w $A1>$A2>$A3> $N"
export PROMPT_DIRTRIM=3
unset N C1 C2 C3 A1 A2 A3
EOF

Закройте и откройте заново Alacritty, чтобы применить новые настройки.

Настройка rEFInd

Это нужно выполнить один раз на компьютер

sudo tee /boot/efi/EFI/refind/refind.conf << 'EOF'
timeout 0
use_nvram false
hideui singleuser
hideui safemode
hideui hwtest
showtools reboot, shutdown
scanfor manual,internal,external,optical
EOF

Установка пакетов для сборки приложений

sudo pacman -Sy base-devel extra-cmake-modules linux-headers git

Установка менеджера AUR

Заберем директорию /data на своего пользователя (подставьте имя пользователя в команду ниже)

chown -Rv username:username /data

Установим aurutils, утилиту для работы с репозиторием AUR, и создадим локальный репозиторий

git clone https://aur.archlinux.org/aurutils.git
cd aurutils
makepkg -s
mkdir -pv /data/arch/aur_repo
mv aurutils*.zst /data/arch/aur_repo
cd /data/arch/aur_repo
repo-add aur.db.tar.bz2 aurutils*.pkg.tar.zst
cd ~
sudo rm -r aurutils/
sudo tee -a /etc/pacman.conf << 'EOF'
[aur]
SigLevel = Optional TrustAll
Server = file:///data/arch/aur_repo
EOF
sudo pacman -Sy aurutils vifm

Создадим в локальном репозитории пакеты pacman для некоторых программ из AUR (уберите ненужные вам, и добавьте свои)

aur sync -d aur yandex-browser yandex-disk yandex-disk-indicator rar zoom ventoy-bin visual-studio-code-bin

При появлении окна редактора наберите :q и нажмите Enter.

Зеркала для репозиториев

sudo tee /etc/pacman.d/mirrorlist << 'EOF'
Server = http://mirror.kamtv.ru/archlinux/$repo/os/$arch
Server =
https://mirror.kamtv.ru/archlinux/$repo/os/$arch
EOF

Или альтернативно - сделаем локальные зеркала на своем диске!

Внимание, потребуется много места, и процесс долгий.

Файл exclude.txt уменьшает размер, отредактируйте его потом, чтобы включить нужные программы и исключить большие и ненужные, и заново запустите /data/arch/mirror.sh

mirror.sh нужно запускать периодически, когда требуется обновление

sudo pacman -Sy rsync
cat > /data/arch/mirror.sh << 'EOF'
#!/bin/bash
REMOTE=rsync://mirror.kamtv.ru/archlinux
LOCAL=/data/arch/repo/
mirror() {
echo ""
echo ""
echo ""
echo "Mirroring $1"
echo "----------------------------------------------------------------------------------------------"
rsync -rhtLH \
--info=progress2 \
--delete-before \
--delete-excluded \
--delay-updates \
--exclude-from='exclude.txt' \
$REMOTE/$1 $LOCAL
echo "----------------------------------------------------------------------------------------------"
}
mirror core
mirror multilib
mirror extra
EOF
chmod +x /data/arch/mirror.sh
cat > /data/arch/exclude.txt << 'EOF'
extra/os/x86_64/0ad-data-a27-1-any.pkg.tar.zst
extra/os/x86_64/composable-kernel*
extra/os/x86_64/cuda*
extra/os/x86_64/cudnn*
extra/os/x86_64/dotnet-source*
extra/os/x86_64/endless-sky*
extra/os/x86_64/frogatto*
extra/os/x86_64/gitlab*
extra/os/x86_64/ginkgo-hpc-cuda*
extra/os/x86_64/intel-oneapi-basekit*
extra/os/x86_64/kea-docs*
extra/os/x86_64/naev*
extra/os/x86_64/nltk-data*
extra/os/x86_64/pioneer*
extra/os/x86_64/python-pytorch*
extra/os/x86_64/rocm-llvm*
extra/os/x86_64/ruby-docs*
extra/os/x86_64/sauerbraten-data*
extra/os/x86_64/supertuxkart*
extra/os/x86_64/texlive*
extra/os/x86_64/tensorflow*
extra/os/x86_64/warsow*
extra/os/x86_64/widelands*
extra/os/x86_64/xonotic-data*
extra/os/x86_64/nvhpc-comm-libs*
extra/os/x86_64/nccl*
extra/os/x86_64/hipblaslt*
extra/os/x86_64/intellij-idea-community-edition*
extra/os/x86_64/pycharm-community-edition*
extra/os/x86_64/python-onnxruntime-opt*
extra/os/x86_64/python-onnxruntime*
extra/os/x86_64/netbeans*
extra/os/x86_64/python-tensorflow-opt-cuda*
extra/os/x86_64/deepin-desktop-theme*
extra/os/x86_64/onnxruntime*
extra/os/x86_64/python-tensorflow-cuda*
extra/os/x86_64/vaporizer2*
extra/os/x86_64/wesnoth*
extra/os/x86_64/schemacrawler*
extra/os/x86_64/enlightenment*
extra/os/x86_64/emscripten*
extra/os/x86_64/magma-cuda*
extra/os/x86_64/opensearch-ml-commons-plugin*
extra/os/x86_64/warzone2100*
extra/os/x86_64/kicad-library*
extra/os/x86_64/ghidra*
extra/os/x86_64/nvidia-utils*
extra/os/x86_64/solr*
extra/os/x86_64/megaglest-data*
extra/os/x86_64/gap-packages*
extra/os/x86_64/freepats-general-midi*
extra/os/x86_64/emptyepsilon*
extra/os/x86_64/gap*
extra/os/x86_64/languagetool*
extra/os/x86_64/freedroidrpg*
extra/os/x86_64/rocsolver*
extra/os/x86_64/bullet-docs*
extra/os/x86_64/freecol*
extra/os/x86_64/zaproxy*
extra/os/x86_64/coq*
extra/os/x86_64/racket*
extra/os/x86_64/occt*
extra/os/x86_64/miopen-hip*
extra/os/x86_64/arrayfire*
extra/os/x86_64/ogre-next*
extra/os/x86_64/surge-xt-common*
extra/os/x86_64/rocblas*
extra/os/x86_64/supertux*
extra/os/x86_64/nextcloud*
extra/os/x86_64/root-cuda*
extra/os/x86_64/blender*
extra/os/x86_64/ollama-cuda*
extra/os/x86_64/opencv-cuda*
extra/os/x86_64/python-tensorflow*
extra/os/x86_64/grafana*
extra/os/x86_64/scummvm*
EOF
sudo tee /etc/pacman.d/mirrorlist << 'EOF'
Server = file:///data/arch/repo/$repo/os/$arch
EOF
cd /data/arch
./mirror.sh
./mirror.sh

На этом настройка первой системы завершена, в следующей статье будет описана установка второй, полной системы для работы, без необходимости начинать с загрузочной флешки. Это удобно, если есть желание делать эксперименты, и часто переeустанавливать систему. Так же это удобно тем, что остается "запасная" система, в которую всегда можно загрузиться, если что то сломали в рабочей.

Продолжение тут:

Установка Arch Linux с КДЕ, часть 4, установка второй (полной) системы
psmith19 августа