wget https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher_2.2.0-travis995.0f91801.bionic_amd64.deb
sudo apt install ./appimagelauncher_2.2.0-travis995.0f91801.bionic_amd64.deb
sudo snap install nvim
# required
mv ~/.config/nvim{,.bak}
# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
nvim
- Менеджеры: python3-pip
- Система контроля версий: git
- Инструменты сборки: build-essential, musl, musl-dev, musl-tools, upx-ucl, strip-nondeterminism
- Базы данных: sqlite3 libsqlite3-dev
sudo apt install -y \
git build-essential \
python3 python3-pip \
musl musl-dev musl-tools \
openssl \
sqlite3 libsqlite3-dev \
libpcre3 \
upx-ucl strip-nondeterminism binutils sudo apt install nala
sudo mv /etc/apt/preferences.d/nosnap.pref ~/Documents/nosnap.backup
sudo apt update
sudo apt install snapdcurl https://sh.rustup.rs -sSf | sh
echo 'source "$HOME/.cargo/env"' >> ~/.bashrc
source "$HOME/.cargo/env"sudo apt-get install bison
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
gvm install go1.21.0
gvm use go1.21.0
gvm install go1.4
gvm use go1.4 [--default]# В.1
sudo snap install go
# В.2
# Скачивание последней версии Go
wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
# Удаление предыдущей установки и распаковка новой
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
# Добавление Go в PATH
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
# Проверка установки
go versioncurl https://nim-lang.org/choosenim/init.sh -sSf | sh
echo 'export PATH=$HOME/.nimble/bin:$PATH' >> ~/.bashrc
# еще один способ
wget https://github.com/dom96/choosenim/releases/download/v0.8.4/choosenim-0.8.4_linux_amd64 -O choosenim
choosenim devel
# еще способ
wget https://launchpad.net/ubuntu/+source/nim/1.6.10-1/+build/24865690/+files/nim_1.6.10-1_amd64.deb
sudo dpkg -i nim_1.6.10-1_amd64.deb
# еще
sudo apt install nim# Обновление системы
sudo apt update
sudo apt upgrade -y
# Установка зависимостей
sudo apt install -y \
dirmngr \
ca-certificates \
software-properties-common \
apt-transport-https \
curl \
gnupg2
# Добавление GPG-ключа Oracle
curl -fsSL https://www.virtualbox.org/download/oracle_vbox_2016.asc | \
sudo gpg --dearmor -o /usr/share/keyrings/virtualbox.gpg
# Добавление репозитория VirtualBox
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/virtualbox.gpg] \
http://download.virtualbox.org/virtualbox/debian \
$(lsb_release -cs) contrib" | \
sudo tee /etc/apt/sources.list.d/virtualbox.list
# Обновление списка пакетов
sudo apt update
# Установка заголовков ядра и DKMS
sudo apt install -y \
linux-headers-$(uname -r) \
dkms
# Установка VirtualBox
sudo apt install -y virtualbox-7.0
# Добавление текущего пользователя в группу vboxusers
sudo usermod -aG vboxusers $USER
# Перезагрузка групп
newgrp vboxusers# Создание сертификата и ключа
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox Signing Key/"
# Регистрация ключа в системе
sudo mokutil --import MOK.der
# Подписывание модулей
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 MOK.priv MOK.der /lib/modules/$(uname -r)/misc/vboxdrv.koВнимание: Храните файлы MOK.priv и MOK.der в безопасном месте, так как они используются для подписи модулей.
# В.1
brew tap hashicorp/tap
brew install hashicorp/tap/hashicorp-vagrant
# В.2
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrantДобавление в Vagrantfile специальной строки:
ENV['VAGRANT_SERVER_URL'] = 'https://vagrant.elab.pro'
# В.1
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# В.2
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
# В.3
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88 | grep [email protected] || exit 1
# jammy https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9_Ubuntu
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce
sudo docker run --rm hello-worldsudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl restart dockersudo curl -SL https://github.com/docker/compose/releases/download/v2.25.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --versionDOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.25.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version- https://www.howtogeek.com/devops/how-to-run-docker-compose-containers-with-gpu-access/
- https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/supported-platforms.html
| OS Name / Version | amd64 / x86_64 | ppc64le | arm64 / aarch64 |
|---|---|---|---|
| Amazon Linux 2023 | X | X | |
| Amazon Linux 2 | X | X | |
| Open Suse/SLES 15.x | X | ||
| Debian Linux 10 | X | ||
| Debian Linux 11 | X | ||
| Centos 7 | X | X | |
| Centos 8 | X | X | X |
| RHEL 7.x | X | X | |
| RHEL 8.x | X | X | X |
| RHEL 9.x | X | X | X |
| Ubuntu 18.04 | X | X | X |
| Ubuntu 20.04 | X | X | X |
| Ubuntu 22.04 | X | X | X |
| Ubuntu 24.04 | X | X |
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install -y nvidia-docker2
sudo systemctl restart dockercurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# проверка работы
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smicurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bashrc
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> ~/.bashrc
nvm install --lts
nvm use --lts
nvm install 'lts/*'
nvm alias default 'lts/*'
wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz
tar -xzvf openssl-1.1.1o.tar.gz
cd openssl-1.1.1o
./config
make -j8
make test
sudo make install$ cargo install coreutils
$ ~/.cargo/bin/coreutils$ sudo apt install fd-find
$ fdfindsudo apt-get install taskwarrior
cargo install --git https://github.com/kdheepak/taskwarrior-tui
# первый запуск нужен для генерации кофига
task
# tui клиент для taskwarrior, иначе нужно вводить команды
taskwarrior-tui
# Taskwarrior in Python, https://dev.to/natamacm/taskwarrior-with-python-261b
pip install taskwКонфиги
~/.taskrc
npm install -g mprocspipx install visidatacargo install --locked zellijpipx install calcurego install github.com/mathaou/termdbms@latest
cargo install --version 0.1.0-alpha.5 gobanggo install github.com/gcla/termshark/v2/cmd/[email protected]
cargo install gpingsudo wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop
sudo chmod +x /usr/local/bin/ctopsudo apt install ncducargo install kmon- https://www.ovpn.com/en/guides/ubuntu-cli
- https://www.cyberciti.biz/faq/howto-setup-openvpn-server-on-ubuntu-linux-14-04-or-16-04-lts/
- https://openvpn.net/vpn-software-packages/ubuntu/
sudo apt-get install openvpnscp [email protected]:/home/vivek/desktopclient.ovpn .
sudo cp desktopclient.ovpn /etc/openvpn/client.conf
# Test connectivity from the CLI:
sudo openvpn --client --config /etc/openvpn/client.conf
# For systemd based system, use the following command:
sudo systemctl start openvpn@client Nebula — это масштабируемый оверлейный сетевой инструмент с акцентом на производительность, простоту и безопасность. Он позволяет легко подключать компьютеры в любой точке мира. Nebula является портативной и работает на Linux, OSX и Windows. (Также: держите это в секрете, но у нас есть ранний прототип, работающий на iOS). Его можно использовать для подключения небольшого количества компьютеров, но он также может подключать десятки тысяч компьютеров.
Nebula включает ряд существующих концепций, таких как шифрование, группы безопасности, сертификаты, и туннелирование, и каждая из этих отдельных частей существовала до Небулы в различных формах. Что отличает Nebula от существующих предложений, так это то, что она объединяет все эти идеи, в результате получается сумма, которая больше, чем ее отдельные части.
Примеры конфигов https://github.com/jimsalterjrs/nebula-sample-configs
sudo snap install nebulacommands:
- nebula.cert-ca
- nebula.cert-sign
- nebula
services:
nebula.daemon: simple, enabled, inactive
/etc/systemd/system/nebula.service
[Unit]
Description=Nebula
[Service]
ExecStart=/etc/nebula/nebula -config /etc/nebula/config.yaml
[Install]
WantedBy=multi-user.target
- Бинарные файлы Nebula или дистрибутивы для вашей конкретной платформы. В частности, вам понадобится nebula-certи конкретный двоичный файл туманности для каждой используемой вами платформы.
- (Необязательно, но вам действительно следует...) Как минимум один узел обнаружения с маршрутизируемым IP-адресом, который мы называем маяком.
Маяки Nebula позволяют узлам находить друг друга в любой точке мира. Маяк — это единственный узел в сети Nebula, IP-адрес которого не должен меняться. Для запуска маяка требуется очень мало вычислительных ресурсов, и вы можете легко использовать самый дешевый вариант от поставщика облачного хостинга. Если вы не уверены, какого провайдера использовать, некоторые из нас использовали капли DigitalOcean за 5 долларов в месяц в качестве маяков.
После запуска экземпляра убедитесь, что udp-трафик Nebula (порт по умолчанию udp/4242) может достигать его через Интернет. 3. Центр сертификации Nebula, который будет корнем доверия для конкретной сети Nebula.
./nebula-cert ca -name "Myorganization, Inc"
Это создаст файлы с именем ca.keyа также ca.certв текущем каталоге. ca.keyфайл является наиболее важным файлом, который вы создадите, поскольку он является ключом, используемым для подписи сертификатов для отдельных узлов/хостов туманности. Пожалуйста, сохраните этот файл в безопасном месте, желательно с надежным шифрованием. 4. Ключи хоста Nebula и сертификаты, сгенерированные этим центром сертификации.
Это предполагает, что у вас есть четыре узла с именами: маяк1, ноутбук, сервер1, хост3. Вы можете называть узлы как угодно, включая FQDN. Вам также потребуется выбрать IP-адреса и соответствующую подсеть. В этом примере мы создаем сеть туманности, которая будет использовать 192.168.100.x/24 в качестве сетевого диапазона. В этом примере также демонстрируются группы туманностей, которые впоследствии можно использовать для определения правил трафика в сети туманностей.
./nebula-cert sign -name "lighthouse1" -ip "192.168.100.1/24"
./nebula-cert sign -name "laptop" -ip "192.168.100.2/24" -groups "laptop,home,ssh"
./nebula-cert sign -name "server1" -ip "192.168.100.9/24" -groups "servers"
./nebula-cert sign -name "host3" -ip "192.168.100.10/24"
- Файлы конфигурации для каждого хоста
Загрузите копию примера конфигурации туманности .
- На узле маяка вам необходимо убедиться, am_lighthouse: trueустановлен.
- На отдельных хостах убедитесь, что маяк правильно определен в static_host_mapраздел, и добавляется к маяку hostsраздел.
- Скопируйте учетные данные, конфигурацию и двоичные файлы nebula на каждый хост.
Для каждого хоста скопируйте двоичный файл nebula на хост вместе с config.yaml с шага 5, и файлы ca.crt, {host}.crt, а также {host}.keyс шага 4.
НЕ КОПИРУЙ ca.key К ОТДЕЛЬНЫМ УЗЛАМ.
- Запускаем туманность на каждом хосте
./nebula -config /path/to/config.yaml
- https://jami.net/download-jami-linux/
- https://dl.jami.net/ring-manual/ubuntu_22.10/jami-all_amd64.deb
- https://dl.jami.net/ring-manual/ubuntu_22.04/jami-all_amd64.deb
- Обзоры
- https://www.youtube.com/watch?v=5Lnx-8rr4WI
- https://www.youtube.com/watch?v=_0ArXX5KIH4
- https://www.youtube.com/watch?v=kJOvr96Wwko
sudo apt install gnupg dirmngr ca-certificates curl --no-install-recommends
curl -s https://dl.jami.net/public-key.gpg | sudo tee /usr/share/keyrings/jami-archive-keyring.gpg > /dev/null
sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/jami-archive-keyring.gpg] https://dl.jami.net/nightly/ubuntu_22.04/ jami main' > /etc/apt/sources.list.d/jami.list"
sudo apt-get update && sudo apt-get install jami
sudo snap install jami- https://briarproject.org/download-briar-desktop/
- Обзоры
- https://www.youtube.com/watch?v=wqsvDVJb_4E
- https://www.youtube.com/watch?v=e-eN7h8Z_SY&t=331s
# Generic Linux .jar: run using java -jar <file> and make sure to use JRE 17.
wget https://desktop.briarproject.org/jars/linux/briar-desktop-linux.jar
java -jar briar-desktop-linux.jarsudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev
sudo snap install flutter --classic
flutter sdk-path
# Проверка и настройка окружения
flutter doctor
flutter doctor --android-licenses
echo 'export PATH="$PATH:[PATH_OF_FLUTTER_GIT_DIRECTORY]/bin"' >> ~/.bashrc
# Если директория в другом меcте, настройка
flutter config --android-studio-dir <directory> Установка ключей для разработчиков
sudo apt-get install -y debian-keyring
sudo apt-get install -y ubuntu-keyring
sudo apt-get install -y --allow-unauthenticated linuxmint-keyring
sudo gpg --no-default-keyring --keyring /home/hightemp/.gnupg/trustedkeys.gpg --import ./usr/share/keyrings/ubuntu-archive-keyring.gpg
sudo gpg --no-default-keyring --keyring /home/hightemp/.gnupg/trustedkeys.gpg --import ./usr/share/keyrings/debian-keyring.gpg
sudo gpg --no-default-keyring --keyring /home/hightemp/.gnupg/trustedkeys.gpg --import /usr/share/keyrings/linuxmint-keyring.gpg
Демон-скрипт
#!/bin/bash
S1_PID=""
S2_PID=""
S3_PID=""
trap -- 'for i in `pgrep -P $$`; do kill -9 $i;done;exit;' SIGINT
trap -- 'for i in `pgrep -P $$`; do kill -9 $i;done;exit;' SIGKILL
trap -- 'for i in `pgrep -P $$`; do kill -9 $i;done;exit;' SIGTERM
echo "0" > /tmp/dps1.pid
echo "0" > /tmp/dps2.pid
echo "0" > /tmp/dps3.pid
while true; do
S1_PID=$(cat /tmp/dps1.pid)
if [ ! -d "/proc/$S1_PID" ]; then
echo start 1
debmirror -p -v --method=http --dist=vanessa --root=/linuxmint-packages/ -a=amd64 --nosource --host=mirror.yandex.ru --section=main,upstream,import /mnt/disk01/mint/repo &
echo $! > /tmp/dps1.pid
fi
S2_PID=$(cat /tmp/dps2.pid)
if [ ! -d "/proc/$S2_PID" ]; then
echo start 2
debmirror -p -v --method=http --dist=focal --root=/ubuntu/ -a=amd64 --nosource --host=mirror.yandex.ru --section=main,upstream,import /mnt/disk01/ubuntu/repo &
echo $! > /tmp/dps2.pid
fi
S3_PID=$(cat /tmp/dps3.pid)
if [ ! -d "/proc/$S3_PID" ]; then
echo start 3
debmirror -p -v --method=http --dist=jammy --root=/ubuntu/ -a=amd64 --nosource --host=mirror.yandex.ru --section=main,upstream,import /mnt/disk01/ubuntu/repo &
echo $! > /tmp/dps3.pid
fi
sleep 30s
done
debmirror -p -v --method=http --dist=vanessa --root=. -a=amd64 --nosource --host=packages.linuxmint.com --section=main,upstream,import /mnt/disk01/mint/repodebmirror \
--keyring=/mnt/disk01/mint/repo/hightempRepo.gpg \
-a amd64 --no-source \
-s main,restricted,universe,multiverse \
-h mirror.yandex.ru \
-r /linuxmint-packages/ \
--progress \
--method=rsync \
--rsync-options="-az --delete --bwlimit=1000" \
/mnt/disk01/mint/repo# https://mirror.yandex.ru/ubuntu/
debmirror -p -v --method=http --dist=focal --root=/ubuntu/ -a=amd64 --nosource --host=mirror.yandex.ru --section=main,upstream,import /mnt/disk01/ubuntu/repo
debmirror -p -v --method=http --dist=jammy --root=/ubuntu/ -a=amd64 --nosource --host=mirror.yandex.ru --section=main,upstream,import /mnt/disk01/ubuntu/repo[Unit]
Description=http servers
[Service]
Type=simple
User=1000
Group=1000
WorkingDirectory=/srv/apps/
ExecStart=/srv/apps/http_servers.sh
[Install]
WantedBy=multi-user.target


