Debian 10
Скачиваем образ, хэш-сумму и подпись
wget --https-only https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/MD5SUMS https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/MD5SUMS.sign https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA1SUMS https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA1SUMS.sign https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA256SUMS https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA256SUMS.sign https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA512SUMS https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA512SUMS.sign https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso
В файле .zshrc есть alias под названием downloaddebianstable который загрузит образы Debian и проверит gpg-подписи с хэш-суммами (для этого потребуются программы exa, wget, date, sha1sum, md5sum). Ниже представлена подробная команда этого алиаса.
wget --https-only https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/MD5SUMS https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/MD5SUMS.sign https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA1SUMS https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA1SUMS.sign https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA256SUMS https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA256SUMS.sign https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA512SUMS https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA512SUMS.sign https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso && echo "\nChecking gpg keys ...\n" && gpg --keyserver keyring.debian.org --recv-keys 6294BE9B && gpg --fingerprint 6294BE9B && gpg --list-sigs 6294BE9B && gpg --verify MD5SUMS.sign MD5SUMS && gpg --verify SHA1SUMS.sign SHA1SUMS && gpg --verify SHA256SUMS.sign SHA256SUMS && gpg --verify SHA512SUMS.sign SHA512SUMS && md5sum --ignore-missing -c MD5SUMS && sha1sum --ignore-missing -c SHA1SUMS && sha512sum --ignore-missing -c SHA512SUMS && exa --all --classify --long --sort=modified --group-directories-first --bytes --group --header --links --inode --blocks --time=modified --time-style=long-iso --extended --git --color-scale
Проверка подписи
Чтобы удостовериться, что файлы с контрольными суммами сами по себе верны, используйте GnuPG для проверки их соответствия прилагаемым файлам с подписями (например, SHA512SUMS.sign). Все ключи, используемые для этих подписей, включены в набор ключей Debian GPG и лучший способ проверить их — использовать этот набор ключей для проверки через web of trust
gpg --keyserver keyring.debian.org --recv-keys 6294BE9B
gpg --fingerprint 6294BE9B
gpg --list-sigs 6294BE9B
gpg --verify MD5SUMS.sign MD5SUMS
gpg --verify SHA1SUMS.sign SHA1SUMS
gpg --verify SHA256SUMS.sign SHA256SUMS
gpg --verify SHA512SUMS.sign SHA512SUMS
Должно выдать что-то типо этого
gpg: key DA87E80D6294BE9B: 5 подписей не проверено за отсутствием ключа
gpg: ключ DA87E80D6294BE9B: "Debian CD signing key <debian-cd@lists.debian.org>" не изменен
gpg: Всего обработано: 1
gpg: неизмененных: 1
pub rsa4096 2011-01-05 [SC]
DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
uid [ неизвестно ] Debian CD signing key <debian-cd@lists.debian.org>
sub rsa4096 2011-01-05 [E]
pub rsa4096 2011-01-05 [SC]
DF9B9C49EAA9298432589D76DA87E80D6294BE9B
uid [ неизвестно ] Debian CD signing key <debian-cd@lists.debian.org>
sig 8F638F961B3045CE 2011-01-07 [Идентификатор пользователя не найден]
sig 587979573442684E 2011-01-05 [Идентификатор пользователя не найден]
sig 7F55BB12A40F862E 2011-01-05 [Идентификатор пользователя не найден]
sig C5CE5DC2C542CD59 2011-01-05 [Идентификатор пользователя не найден]
sig 4DE8FF2A63C7CC90 2011-01-05 [Идентификатор пользователя не найден]
sig 3 DA87E80D6294BE9B 2011-01-05 Debian CD signing key <debian-cd@lists.debian.org>
sub rsa4096 2011-01-05 [E]
sig DA87E80D6294BE9B 2011-01-05 Debian CD signing key <debian-cd@lists.debian.org>
gpg: Подпись сделана Вс 09 фев 2020 05:01:04 MSK
gpg: ключом RSA с идентификатором DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: Действительная подпись пользователя "Debian CD signing key <debian-cd@lists.debian.org>" [неизвестно]
gpg: Внимание: Данный ключ не заверен доверенной подписью!
gpg: Нет указаний на то, что подпись принадлежит владельцу.
Отпечаток первичного ключа: DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
gpg: Подпись сделана Вс 09 фев 2020 05:01:04 MSK
gpg: ключом RSA с идентификатором DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: Действительная подпись пользователя "Debian CD signing key <debian-cd@lists.debian.org>" [неизвестно]
gpg: Внимание: Данный ключ не заверен доверенной подписью!
gpg: Нет указаний на то, что подпись принадлежит владельцу.
Отпечаток первичного ключа: DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
gpg: Подпись сделана Вс 09 фев 2020 05:01:05 MSK
gpg: ключом RSA с идентификатором DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: Действительная подпись пользователя "Debian CD signing key <debian-cd@lists.debian.org>" [неизвестно]
gpg: Внимание: Данный ключ не заверен доверенной подписью!
gpg: Нет указаний на то, что подпись принадлежит владельцу.
Отпечаток первичного ключа: DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
gpg: Подпись сделана Вс 09 фев 2020 05:01:05 MSK
gpg: ключом RSA с идентификатором DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: Действительная подпись пользователя "Debian CD signing key <debian-cd@lists.debian.org>" [неизвестно]
gpg: Внимание: Данный ключ не заверен доверенной подписью!
gpg: Нет указаний на то, что подпись принадлежит владельцу.
Отпечаток первичного ключа: DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
Проверяем хэш-суммы
md5sum --ignore-missing -c MD5SUMS
sha1sum --ignore-missing -c SHA1SUMS
sha512sum --ignore-missing -c SHA512SUMS
Должно выдать что-то типо этого
debian-10.3.0-amd64-netinst.iso: ЦЕЛ
debian-10.3.0-amd64-netinst.iso: ЦЕЛ
debian-10.3.0-amd64-netinst.iso: ЦЕЛ
Записываем на флэшку с помощью Rufus или Etcher
Вставляем флэшку, определяем её и форматируем
Раздел флэшки (в данном примере это /dev/sdd1) должен быть отформатирован в FAT32.
sudo fdisk -l | sudo grep /dev/sd
sudo df | sudo grep /dev/sd
sudo lsblk
sudo umount /dev/sdd1
sudo mkfs.vfat -n 'debian' -I /dev/sdd1
Дальше можно воспользоваться Etcher или Rufus
При установке системы задаём
Имя компьютера: book
Имя пользователя: me
При установке выбираем устанавливать только "Стандартные системные утилиты" и больше ничего.
Логинимся из под root
root
su -
Добавляем пользователя me
в группу sudo
и другие нужные группы
me
в группу sudo
и другие нужные группыid me
usermod -a -G sudo,adm,cdrom,lp,systemd-journal,plugdev,netdev,audio,video,disk,dialout,dip me
id me
Ставим необходимый минимум
apt update && apt install sudo curl wget vim apt-transport-https ca-certificates gnupg2 software-properties-common dirmngr software-properties-gtk tor apt-transport-tor module-assistant build-essential debian-archive-keyring python3-software-properties debconf-utils git stow openssl xclip cmake pkg-config gdebi lsb-release -y
Смотрим версию и ядро Debian
cat /etc/os-release && uname -a
Перезагружаемся
shutdown -r 0
Входим из под пользователя me
и сразу обновляем систему
me
и сразу обновляем системуsudo apt update && sudo apt upgrade -y && sudo apt full-upgrade -y && sudo apt autoremove -y
Ставим Xorg и i3wm c терминалом kitty
sudo apt update && sudo apt install i3 i3lock-fancy i3-wm dunst i3lock i3status suckless-tools i3blocks pluma nemo nemo-fileroller nemo-gtkhash nemo-nextcloud ranger nnn xorg rofi kitty kitty-terminfo kitty-doc htop iotop net-tools git git-man git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn xclip jq grep zsh nitrogen fzf tmux tmux-plugin-manager tmuxinator tmuxp catfish chromium linux-headers-$(uname -r) -y
Правим /etc/apt/sources.list
/etc/apt/sources.list
sudo -i
sudo sh -c 'echo "deb https://deb.debian.org/debian/ $(lsb_release -sc) main contrib non-free\ndeb-src https://deb.debian.org/debian/ $(lsb_release -sc) main contrib non-free\ndeb https://deb.debian.org/debian/ $(lsb_release -sc)-updates main contrib non-free\ndeb-src https://deb.debian.org/debian/ $(lsb_release -sc)-updates main contrib non-free\ndeb https://deb.debian.org/debian-security $(lsb_release -sc)/updates main\ndeb-src https://deb.debian.org/debian-security $(lsb_release -sc)/updates main\ndeb https://deb.debian.org/debian $(lsb_release -sc)-backports main contrib non-free\ndeb-src https://deb.debian.org/debian $(lsb_release -sc)-backports main contrib non-free" > /etc/apt/sources.list'
exit
Полезные ссылки:
Why there is no https transport for debian apt tool?
Создание любой папки с tmpfs в ОЗУ
sudo -i
mkdir /home/me/ram
groupadd tmpdriveusers
usermod -a -G tmpdriveusers me
Меняем владельца папки /home/me/ram и даем группе tmpdriveusers права на запись
chown root:tmpdriveusers /home/me/ram
chmod 777 /home/me/ram
Создаем новый ram-диск в папке /home/me/ram
sudo printf "tmpfs /home/me/ram tmpfs nodev,nosuid,size=16G 0 0" >> /etc/fstab
Добавляем в конец файла /etc/fstab такую строку, параметр size означает сколько нужно выделить из оперативной памяти под RAM диск, в данном случае это 16gb - то есть всю ОЗУ.
Перезапускаем систему
sudo shutdown -r 0
После перезагрузки убеждаемся в том, что RAM-диск смонтирован и к нему есть доступ. В листинге команды mount должна присутствовать строка “tmpfs on /home/me/ram type tmpfs (rw)”.
sudo mount | grep ram
Убедиться в том, что ram-disk реально доступен для записи обычному пользователю, можно создав на нём новый файл
echo hi-akimdi > /home/me/ram/temp.txt && cat /home/me/ram/temp.txt
При выключении компьютера ОЗУ очищается и всё что находилось в этой папке будет удалено!
Установка KeePassXC
wget --no-cache --no-cookies --https-only --output-document=/home/me/ram/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage https://github.com/keepassxreboot/keepassxc/releases/download/$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage
wget --no-cache --no-cookies --https-only --output-document=/home/me/ram/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage.DIGEST https://github.com/keepassxreboot/keepassxc/releases/download/$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage.DIGEST
wget --no-cache --no-cookies --https-only --output-document=/home/me/ram/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage.sig https://github.com/keepassxreboot/keepassxc/releases/download/$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage.sig
cd /home/me/ram
shasum -a 256 -c /home/me/ram/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage.DIGEST
gpg --fetch-keys https://keepassxc.org/keepassxc_master_signing_key.asc
Проверяем GPG подпись
gpg --verify /home/me/ram/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage.sig /home/me/ram/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage
mv -v /home/me/ram/KeePassXC-$(curl -Ls https://api.github.com/repos/keepassxreboot/keepassxc/releases/latest | jq -r ".tag_name")-x86_64.AppImage /home/me/ram/keepassxc.AppImage
cp -v /home/me/ram/keepassxc.AppImage /home/me/keepassxc.AppImage
sudo chmod a+rx /home/me/keepassxc.AppImage
sudo rm -r -f -v /home/me/ram/KeePassXC-*-x86_64.AppImage.DIGEST /home/me/ram/KeePassXC-*-x86_64.AppImage.sig /home/me/ram/keepassxc.AppImage
Открываем базу данных KeepassXC
/home/me/keepassxc.AppImage
В настройках KeepassXC разрешаем запуск ssh-agent (потребуется перезапук)
Тестируем SSH-соединение
ssh -T git@github.com
Скачиваем последнюю версию Chezmoi
sudo wget --no-cache --no-cookies --https-only --output-document=/home/me/ram/chezmoi.deb https://github.com/twpayne/chezmoi/releases/download/v$(curl -sL https://api.github.com/repos/twpayne/chezmoi/releases/latest | jq -r ".tag_name" | sed -e "s/^.\{1\}//")/chezmoi_$(curl -sL https://api.github.com/repos/twpayne/chezmoi/releases/latest | jq -r ".tag_name" | sed -e "s/^.\{1\}//")_linux_amd64.deb
sudo apt update && sudo apt install /home/me/ram/chezmoi.deb -y
sudo rm -v /home/me/ram/chezmoi.deb
Установливаем zsh качестве оболочки по-умолчанию для root
sudo -i
sudo chsh -s /bin/zsh
Установка ZSH пользователю me
sudo usermod me -s /usr/bin/zsh
exit
Установка Antigen
wget --no-cache --no-cookies --https-only --output-document=/home/me/ram/antigen.zsh https://github.com/zsh-users/antigen/releases/download/v$(curl -sL https://api.github.com/repos/zsh-users/antigen/releases/latest | jq -r ".tag_name" | sed -e "s/^.\{1\}//")/antigen.zsh
cp --verbose /home/me/ram/antigen.zsh /home/me
rm -v /home/me/ram/antigen.zsh
Установка ccat
sudo wget --no-cache --no-cookies --https-only --output-document=/home/me/ram/ccat-linux-amd64.tar.gz $(curl -sL https://api.github.com/repos/jingweno/ccat/releases/latest | jq -r ".assets[].browser_download_url" | grep linux | grep amd64)
sudo tar -xvzf /home/me/ram/ccat-linux-amd64.tar.gz -C /home/me/ram
sudo cp --verbose /home/me/ram/linux-amd64-*/ccat /usr/local/bin
sudo chmod a+rx /usr/local/bin/ccat
sudo rm -r -f -v /home/me/ram/linux-amd64-*
sudo rm -r -f -v /home/me/ram/ccat-linux-amd64.tar.gz
Устанавливаем git-extras чтобы получить дополнительные команды Git
sudo git clone --verbose https://github.com/tj/git-extras.git /home/me/ram/git-extras
cd /home/me/ram/git-extras
sudo git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
sudo make install
sudo wget --no-cache --no-cookies --https-only --output-document=/usr/share/git-core/git-extras-completion.zsh https://raw.githubusercontent.com/tj/git-extras/master/etc/git-extras-completion.zsh
cd /home/me/ram
sudo rm -r -f -v /home/me/ram/git-extras
Настройка chezmoi
Это действие создаст chezmoi репозиторий в папке /home/me/.local/share/chezmoi
chezmoi -v init git@github.com:akimdi/dotfiles.git
Этой командой можно увидеть что будет изменено, прежде чем применить изменения
chezmoi -v diff
Эта команда проверит репозиторий и любые его подмодули и при необходимости создаст конфигурационный файл chezmoi и применит склонированный репозиторий в систему, то есть dotfiles которые будут в репозитории будут аналогичными и в системе
chezmoi -v apply
Последняя команда выполняет git pull
из репозитория с dotfiles и одновременно применяет все изменения в систему, то есть по сути команда chezmoi update
это git pull
+ chezmoi apply
chezmoi -v update
Устанавливаем необходимые пакеты из списка в файле
cat /home/me/packages.txt | xargs sudo apt install -y
Настраиваем JDK и Go
sudo update-java-alternatives --set java-1.11.0-openjdk-amd64 --verbose
sudo mkdir -p /usr/share/desktop-directories
mkdir -p /home/me/go
java -version
java -fullversion
javac -version
javac -fullversion
java -Xinternalversion
gccgo --version
go env
go version
Установка Nerd Fonts
git clone --depth 1 --verbose https://github.com/ryanoasis/nerd-fonts.git /home/me/ram/nerd
chmod +x /home/me/ram/nerd/install.sh
/home/me/ram/nerd/install.sh
fc-list | ag terminess
fc-list | ag hack
sudo rm -r -f -v /home/me/ram/nerd
Шрифты установятся в папку /home/me/.local/share/fonts/NerdFonts
Перезагружаемся
sudo shutdown -r 0
Установка SpaceVim
curl -sLf https://spacevim.org/install.sh | bash
Следует обязательно запустить SpaceVim чтобы установились необходимые плагины
vim
Файл настроек SpaceVim лежит в /home/me/.SpaceVim.d/init.toml
Проверка обновления микрокода Intel
sudo dmesg | sudo ag microcode
Должно выдать что-то похожее на следующее, что указывает на то, что микрокод обновляется при ранней загрузке
[ 0.000000] CPU0 microcode updated early to revision 0x1b, date = 2014-05-29
[ 0.221951] CPU1 microcode updated early to revision 0x1b, date = 2014-05-29
[ 0.242064] CPU2 microcode updated early to revision 0x1b, date = 2014-05-29
[ 0.262349] CPU3 microcode updated early to revision 0x1b, date = 2014-05-29
[ 0.507267] microcode: CPU0 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507272] microcode: CPU1 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507276] microcode: CPU2 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507281] microcode: CPU3 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507286] microcode: CPU4 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507292] microcode: CPU5 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507296] microcode: CPU6 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507300] microcode: CPU7 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507335] microcode: Microcode Update Driver: v2.2.
Установка Rust и Сargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Выбираем опцию Customize installation
и прописываем установку toolchain stable
и Modify PATH variable?
(no)
Customize installation
и прописываем установку toolchain stable
и Modify PATH variable?
(no)info: downloading installer
Welcome to Rust!
This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.
It will add the cargo, rustc, rustup and other commands to
Cargo's bin directory, located at:
/home/me/.cargo/bin
This can be modified with the CARGO_HOME environment variable.
Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:
/home/me/.rustup
This can be modified with the RUSTUP_HOME environment variable.
This path will then be added to your PATH environment variable by
modifying the profile files located at:
/home/me/.profile
/home/me/.zprofile
You can uninstall at any time with rustup self uninstall and
these changes will be reverted.
Current installation options:
default host triple: x86_64-unknown-linux-gnu
default toolchain: stable
profile: default
modify PATH variable: yes
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>2
I'm going to ask you the value of each of these installation options.
You may simply press the Enter key to leave unchanged.
Default host triple?
Default toolchain? (stable/beta/nightly/none)
stable
Profile (which tools and data to install)? (minimal/default/complete)
default
Modify PATH variable? (y/n)
n
Current installation options:
default host triple: x86_64-unknown-linux-gnu
default toolchain: stable
profile: default
modify PATH variable: no
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>1
info: profile set to 'default'
info: setting default host triple to x86_64-unknown-linux-gnu
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2020-01-30, rust version 1.41.0 (5e1a79984 2020-01-27)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
12.0 MiB / 12.0 MiB (100 %) 11.1 MiB/s in 1s ETA: 0s
info: downloading component 'rust-std'
17.5 MiB / 17.5 MiB (100 %) 11.0 MiB/s in 1s ETA: 0s
info: downloading component 'rustc'
57.9 MiB / 57.9 MiB (100 %) 11.1 MiB/s in 5s ETA: 0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
12.0 MiB / 12.0 MiB (100 %) 8.7 MiB/s in 1s ETA: 0s
info: installing component 'rust-std'
17.5 MiB / 17.5 MiB (100 %) 17.1 MiB/s in 1s ETA: 0s
info: installing component 'rustc'
57.9 MiB / 57.9 MiB (100 %) 12.4 MiB/s in 4s ETA: 0s
info: installing component 'rustfmt'
info: default toolchain set to 'stable'
stable installed - rustc 1.41.0 (5e1a79984 2020-01-27)
Rust is installed now. Great!
To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable.
To configure your current shell run source $HOME/.cargo/env
Если вы установили предыдущую версию Rust средствами rustup, то для обновления до его последней версии версии, вам достаточно выполнить следующую команду
rustup update stable
Чтобы убедиться, что установка прошла успешно, можно воспользоваться командой, которая выводит версию Cargo
cargo --version
rustc --version
Установка ripgrep-all
cargo install ripgrep_all
cargo install click
Установка vimiv-gtk
Внимание ⚠️
Версия vimiv-gtk является устаревшей и разработчики переписали её на qt. Поэтому релиз v0.9.1 является последним и больше не будет разрабатываться. В будущем когда версия vimiv-qt достигнет стабильной версии 1.0 и будет готова, нужно будет переписать установку vimiv под qt.
Ссылка на новый репозиторий версия vimiv-qt.
wget --no-cache --no-cookies --https-only --output-document=/home/me/ram/v0.9.1.tar.gz https://github.com/karlch/vimiv/archive/v0.9.1.tar.gz
tar -xvzf /home/me/ram/v0.9.1.tar.gz -C /home/me/ram
cd /home/me/ram/vimiv-0.9.1
sudo make install
cd /home/me/ram
sudo rm -r -f -v /home/me/ram/vimiv-0.9.1
Установка Axel
Внимание ⚠️
Интегрировать установку и обновление Axel в алиас fullupgrade. Так как после установки он не обновляется больше.
wget --no-cache --no-cookies --https-only --output-document=/home/me/ram/axel.tar.gz https://github.com/axel-download-accelerator/axel/releases/download/v$(curl -sL https://api.github.com/repos/axel-download-accelerator/axel/releases/latest | jq -r ".tag_name" | sed -e "s/^.\{1\}//")/axel-$(curl -sL https://api.github.com/repos/axel-download-accelerator/axel/releases/latest | jq -r ".tag_name" | sed -e "s/^.\{1\}//").tar.gz
tar -xvzf /home/me/ram/axel.tar.gz -C /home/me/ram
cd /home/me/ram/axel-$(curl -sL https://api.github.com/repos/axel-download-accelerator/axel/releases/latest | jq -r ".tag_name" | sed -e "s/^.\{1\}//")
./configure
make
sudo make install
Установка Wire
sudo -i
sudo printf "deb [arch=amd64] https://wire-app.wire.com/linux/debian stable main" > /etc/apt/sources.list.d/wire.list
sudo wget -q https://wire-app.wire.com/linux/releases.key -O- | sudo apt-key add -
sudo apt update
sudo apt install wire-desktop -y
sudo printf "deb [arch=amd64] https://wire-app.wire.com/linux/debian stable main" > /etc/apt/sources.list.d/wire.list
exit
Установка aws-cli
sudo pip3 install awscli
Установка Docker
sudo apt update
sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Убедитесь что есть ключ с отпечатком 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
sudo apt-key fingerprint 0EBFCD88
sudo sh -c 'echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list'
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo sh -c 'echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list'
sudo systemctl start docker.service
sudo systemctl enable docker.service
sudo systemctl status docker.service
sudo usermod -aG docker me
sudo vim /etc/docker/daemon.json
Прописываем следущее чтобы использовать overlay2
{
"storage-driver": "overlay2"
}
А также есть всеми любимый список Awesome Docker
Установка happyfinder
go get -u -v github.com/hugows/hf
Настройка отображения кодировки в текстовых редакторах
gedit или xed открывает текстовые файлы в неправильной кодировке. Выполняем в терминале gconf-editor (запомните это приложение, оно полезное), идем в /apps/gedit-2/preferences/encodings. Двойной клик по ключу auto-detected, поднимаем на самый верх пункт CURRENT. Двойной клик по ключу shown-in-menu, поднимаем на самый верх пункты UTF-8 и WINDOWS-1251. P.S. для Ubuntu и Mint нужно сделать через sudo apt-get install dconf-editor -y
Для редактора gedit
gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['UTF-8', 'WINDOWS-1251', 'KOI8-R', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
Для редактора pluma
gsettings set org.mate.pluma auto-detected-encodings "['UTF-8', 'WINDOWS-1251', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
Настройка web-камеры
sudo ls -ltrh /dev/* | sa video
v4l2-ctl --list-devices
qv4l2
Настройка PulseAudio
Создаём общесистемный файл
sudo vim /etc/asound.conf
Пишем следующие строки, что бы PulseAudio использовался по-умолчанию
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
При некоторых ошибках установки alsa отключает звук всех каналов и устанавливает для всех громкость 0. Запустите программу командной строки alsamixer и включите звук (нажмите m) и измените громкость каналов, которые вас интересуют (используйте клавиши со стрелками для навигации и изменения громкости). Вы можете включить звук предпочтительно Master и PCM каналов.
Системы объемного звука. Многие люди имеют многоканальные звуковые карты, но используют акустические системы для двух каналов. PulseAudio не имеет настроек по умолчанию для поддержки объемного звука. Для включения поддержки все каналов отредактируйте файл /etc/pulse/daemon.conf: раскомментируйте строку default-sample-channels (т.е. удалите точку с запятой в начале строки) и установите значение в 6 если у Вас система 5.1, или в 8, если у Вас система 7.1.
Тогда редактируем файл
sudo vim /etc/pulse/daemon.conf
Нужно расскоментировать строку
default-sample-channels = 2
После внесения изменений необходимо перезапустить Pulseaudio.
Полезные ссылки
https://help.ubuntu.ru/wiki/pulseaudio https://wiki.debian.org/ru/PulseAudio https://wiki.archlinux.org/index.php/PulseAudio https://wiki.archlinux.org/index.php/PulseAudio/Examples https://wiki.debian.org/AlsaMixer
Создание образа гостевой системы
qemu-img create -f qcow2 debian-deploy.qcow2 128G
-f указывает на формат файла, лучше использовать формат qcow2 родной для QEMU, так как qcow2 формат записи образа виртуальных машины с поддержкой сжатия, снапшотов и шифрования. Кроме того qcow2 образ занимает столько места, сколько данных записано в него виртуальной машиной, вне зависимости от размера созданного изначально при создании.
debian-deploy.qcow2 это имя нашего файла образа.
128G это размер файла для образа, в данном примере 128 гигабайт.
После выполнения данной команды будет такое сообщение
Formatting 'debian-deploy.qcow2', fmt=qcow2 size=8589934592 encryption=off cluster_size=65536 lazy_refcounts=off
Установка ISO образа в QEMU
Сначала нам надо запустить ISO образ в QEMU, затем проинсталлировать и потом уже использовать полученную виртуальную систему.
qemu-system-x86_64 -cpu IvyBridge -enable-kvm -hda debian-deploy.qcow2 -cdrom /home/me/projects/vm/debian-deploy/debian-10.2.0-amd64-netinst.iso -boot d -m 4096
-cpu IvyBridge это опция отвечающая за эмуляцию командных инструкций процессоров под кодовым названием IvyBridge. В принципе вы можете узнать какие еще процессора поддерживает qemu и выбрать свой.
-enable-kvm = включаем поддержку kvm ядра. Если мы не включим эту опцию, то qemu будет запущен без использования kvm.
-hda debian-deploy.qcow2 это указываем какой файл образ будем использовать. Выше было описано, как его создавать.
-cdrom /home/me/projects/vm/debian-deploy/debian-10.2.0-amd64-netinst.iso это опция указывает, что мы будем использовать ISO образ который находится виртуально на устройстве cdrom.
-boot d это указывает, что грузиться qemu будет с cdrom (т.е. с нашего ISO образа) но буква d говорит о том, что ISO образ находится не в приводе cdrom, а на жестком диске.
-m 4096 это указывает, сколько памяти будет выделено под работу qemu. В данном примере 4 Гигабайта.
Запуск виртуальной ОС в QEMU
qemu-system-x86_64 -cpu IvyBridge -enable-kvm -hda debian-deploy.qcow2 -m 4096
Отличие данной строки запуска, от строки запуска с ISO образом в том, что в первом случае мы указываем параметр: -cdrom /home/me/projects/vm/debian-deploy/debian-10.2.0-amd64-netinst.iso и -boot d. Здесь, же нам это не требуется, т.к. уже имеется файл с установленной виртуальной системой.
Просмотр информации об образе системы
qemu-img info debian-deploy.qcow2
Добавляем текущего пользователя me пользователя в группу kvm
sudo gpasswd -a me kvm
или же можно сделать вот так
sudo gpasswd -a $(whoami) kvm
В зависимости от процессора Intel или AMD, прописываем модуль ядра в /etc/modules-load.d/kvm.conf
sudo vim /etc/modules-load.d/kvm.conf
kvm_intel
Или что бы не вписывать можно скачать конфигурационный файл kvm.conf (файл предназначен только для машин работающих под управлением процессоров Intel)
sudo wget --https-only --output-document=/etc/modules-load.d/kvm.conf https://raw.githubusercontent.com/akimdi/help-install-arch/master/kvm.conf
Подгружаем модули ядра kvm_intel или kvm_amd в зависимости от процессора Intel или AMD
sudo modprobe kvm_intel
Запускаем и устанавливаем в автозагрузку libvirtd
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
sudo systemctl status libvirtd
Создаём группу пользователей libvirt
sudo groupadd libvirt
Добавляем пользователя me в группу libvirt
sudo gpasswd -a me libvirt
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
sudo systemctl status libvirtd
Просмотр всех сетей в virsh
sudo virsh net-list --all
sudo virsh net-start default
virsh net-autostart default
virsh net-info default
Запускаем Virtual Machine Manager by Red Hat
virt-manager
Важно знать что после установки, в гостевую систему нужно установить пакет spice-vdagent. Например для Debian он находится здесь. Для ArchLinux здесь. Для Windows здесь.
Eсли хотим подключить shared folder в гостевую систему нужно запустить virt-manager, открыть свою виртуальную машину, дважды щелкнув по ней. Нажать на детали виртуального оборудования (лампочка). Далее «Добавить оборудование» и выбрать файловую систему. Драйвер выбираем Path. Режим Mapped. Правила записи Immediate. Указываем путь на хостовой и на гостевой системах.

А также обязательно выставляем видеодрайвер Virtio чтобы не было проблем с 3D графикой

В гостевой системе создаём папку и монтируем её
mkdir -p /home/me/projects
sudo mount -t 9p -o trans=virtio,version=9p2000.L /home/me/projects /home/me/projects
Для автомонтирования при загрузке системы, следует прописать следующие стоки в файле /etc/fstab
sudo vim /etc/fstab
/home/me/projects /home/me/projects 9p noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,x-systemd.idle-timeout=0,trans=virtio,version=9p2000.L,rw 0 0
Так как гостевая система работает от имени libvirt-qemu пользователя, а настройки ACL ограничивают разрешения этого пользователя, на хостовой операционной системе следует выполнить следующие команды
sudo chmod -R 777 /home/me/projects
sudo chown -R me:me /home/me/projects
sudo chmod -R 777 /var/lib/libvirt/images
sudo chown -R me:me /var/lib/libvirt/images
sudo groupadd libvirt
sudo usermod -G libvirt -a me
sudo groupadd libvirtd
sudo usermod -a -G libvirtd me
sudo useradd libvirt-qemu
sudo usermod -a -G libvirt-qemu me
sudo useradd kvm
sudo usermod -a -G kvm me
sudo setfacl -R -m u:libvirt-qemu:rwx /home/me/projects
sudo chown -R me:me /home/me/projects
Для гостевой Windows инструкция здесь
Для подключения по SSH нужно на гостевой системе узнать IP
sudo ip a
Должно выдать что-то типо этого
enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:e3:07:bc brd ff:ff:ff:ff:ff:ff
inet 192.168.122.106/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
valid_lft 3366sec preferred_lft 3366sec
inet6 fe80::5054:ff:fee3:7bc/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Далее на хостовой системе уже выполняем подключение
Конкретно в этом примере IP 192.168.122.106
ssh -p 22 me@192.168.122.106
Полезные ссылки:
How to change the default Storage Pool from libvirt
Easy instructions to get QEMU/KVM and virt-manager up and running on Arch
Коротко о том что и где принято хранить:
*/var/lib/libvirt/boot — ISO-образы для установки гостевых систем.*
*/var/lib/libvirt/images — образы жестких дисков гостевых систем.*
*/var/log/libvirt — здесь следует искать все логи.*
*/etc/libvirt — каталог с файлами конфигурации.*
Далее можно установить виртуалку, а в качестве начального пособия рекомендую статью от Александра Алексеева https://eax.me/kvm
Далее по-желанию можно настроить системные уведомления через Dunst
Ставим расширения для Firefox
Firefox Multi-Account Containers
User-Agent Switcher and Manager
Google Redirects Fixer & Tracking Remover
Last updated
Was this helpful?