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 6294BE9Bgpg --fingerprint 6294BE9Bgpg --list-sigs 6294BE9Bgpg --verify MD5SUMS.sign MD5SUMSgpg --verify SHA1SUMS.sign SHA1SUMSgpg --verify SHA256SUMS.sign SHA256SUMSgpg --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 MD5SUMSsha1sum --ignore-missing -c SHA1SUMSsha512sum --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/sdsudo df | sudo grep /dev/sdsudo lsblksudo umount /dev/sdd1sudo mkfs.vfat -n 'debian' -I /dev/sdd1Дальше можно воспользоваться Etcher или Rufus
При установке системы задаём
Имя компьютера: book
Имя пользователя: me
При установке выбираем устанавливать только "Стандартные системные утилиты" и больше ничего.
Логинимся из под root
rootsu -Добавляем пользователя me в группу sudo и другие нужные группы
me в группу sudo и другие нужные группыid meusermod -a -G sudo,adm,cdrom,lp,systemd-journal,plugdev,netdev,audio,video,disk,dialout,dip meid 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.listsudo -isudo 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 -imkdir /home/me/ramgroupadd tmpdriveusersusermod -a -G tmpdriveusers meМеняем владельца папки /home/me/ram и даем группе tmpdriveusers права на запись
chown root:tmpdriveusers /home/me/ramchmod 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.AppImagewget --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.DIGESTwget --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.sigcd /home/me/ramshasum -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.DIGESTgpg --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.AppImagemv -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.AppImagecp -v /home/me/ram/keepassxc.AppImage /home/me/keepassxc.AppImagesudo chmod a+rx /home/me/keepassxc.AppImagesudo 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.debsudo apt update && sudo apt install /home/me/ram/chezmoi.deb -ysudo rm -v /home/me/ram/chezmoi.debУстановливаем zsh качестве оболочки по-умолчанию для root
sudo -isudo chsh -s /bin/zshУстановка ZSH пользователю me
sudo usermod me -s /usr/bin/zshexitУстановка 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.zshcp --verbose /home/me/ram/antigen.zsh /home/merm -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/ramsudo cp --verbose /home/me/ram/linux-amd64-*/ccat /usr/local/binsudo chmod a+rx /usr/local/bin/ccatsudo 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-extrascd /home/me/ram/git-extrassudo git checkout $(git describe --tags $(git rev-list --tags --max-count=1))sudo make installsudo 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.zshcd /home/me/ramsudo 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 --verbosesudo mkdir -p /usr/share/desktop-directoriesmkdir -p /home/me/gojava -versionjava -fullversionjavac -versionjavac -fullversionjava -Xinternalversiongccgo --versiongo envgo versionУстановка Nerd Fonts
git clone --depth 1 --verbose https://github.com/ryanoasis/nerd-fonts.git /home/me/ram/nerdchmod +x /home/me/ram/nerd/install.sh/home/me/ram/nerd/install.shfc-list | ag terminessfc-list | ag hacksudo 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 --versionrustc --versionУстановка ripgrep-all
cargo install ripgrep_allcargo 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.gztar -xvzf /home/me/ram/v0.9.1.tar.gz -C /home/me/ramcd /home/me/ram/vimiv-0.9.1sudo make installcd /home/me/ramsudo 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.gztar -xvzf /home/me/ram/axel.tar.gz -C /home/me/ramcd /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\}//")./configuremakesudo make installУстановка Wire
sudo -isudo printf "deb [arch=amd64] https://wire-app.wire.com/linux/debian stable main" > /etc/apt/sources.list.d/wire.listsudo wget -q https://wire-app.wire.com/linux/releases.key -O- | sudo apt-key add -sudo apt updatesudo apt install wire-desktop -ysudo printf "deb [arch=amd64] https://wire-app.wire.com/linux/debian stable main" > /etc/apt/sources.list.d/wire.listexitУстановка aws-cli
sudo pip3 install awscliУстановка Docker
sudo apt updatesudo 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 0EBFCD88sudo 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 updatesudo apt install docker-ce docker-ce-cli containerd.io -ysudo 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.servicesudo systemctl enable docker.servicesudo systemctl status docker.servicesudo usermod -aG docker mesudo 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 videov4l2-ctl --list-devicesqv4l2Настройка 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.confkvm_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 libvirtdsudo systemctl enable libvirtdsudo systemctl status libvirtdСоздаём группу пользователей libvirt
sudo groupadd libvirtДобавляем пользователя me в группу libvirt
sudo gpasswd -a me libvirtsudo systemctl start libvirtdsudo systemctl enable libvirtdsudo systemctl status libvirtdПросмотр всех сетей в virsh
sudo virsh net-list --allsudo virsh net-start defaultvirsh net-autostart defaultvirsh 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/projectssudo 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/projectssudo chown -R me:me /home/me/projectssudo chmod -R 777 /var/lib/libvirt/imagessudo chown -R me:me /var/lib/libvirt/imagessudo groupadd libvirtsudo usermod -G libvirt -a mesudo groupadd libvirtdsudo usermod -a -G libvirtd mesudo useradd libvirt-qemusudo usermod -a -G libvirt-qemu mesudo useradd kvmsudo usermod -a -G kvm mesudo setfacl -R -m u:libvirt-qemu:rwx /home/me/projectssudo 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?