LinuxForum.Fans
Тема

Настройка Debian 13. Инструменты разработки (Опционально)

Автор: survordie 1 сообщений 354 просмотров
14.08.2026 14:53 · отредактировано #440262

Предыдущая часть находится тут.

В этой части будет рассмотрена установка различных инструментов разработчика. Я придерживаюсь феншуя Debian, согласно которому размещение приложений (за некоторым исключением) в домашнем каталоге пользователя - моветон. Если приложение распространяется в виде тарбола и не требует сборки из исходников, то ему самое место в каталоге /opt.
К сожалению абсолютно все инструменты разработки я не смогу привести по причине того, что я не все знаю. Если что отсутствует - пишите. Постараюсь добавить.

  • Установка git
    text
    sudo aptitude install git

  • Установка SDKMan

    Скачиваем и устанавливаем:
    text
    curl -fL "https://get.sdkman.io" | bash

    Обновляем переменные среды:

    text
    source "$HOME/.sdkman/bin/sdkman-init.sh"

    Проверяем, что sdkman установился (должна вывестись версия):

    text
    sdk version

    sdkman может обновлять сам себя. Команда для обновления:

    text
    sdk selfupdate

  • Установка Java

    Обычно разные версии Java нужны для разработки. И среда разработки настраивается на нужную версию Java. Для Java, как среды выполнения Debian, достаточно просто установить Java из репозитория:
    text
    sudo aptitude install default-jdk

    Для сред разработки же установим разные версии Java. Для начала создадим общий каталог для размещения Java:

    text
    sudo mkdir /opt/java
    Java 8

    Последнюю версию смотреть тут.
    Создаём каталог jdk8 в директории /opt и скачиваем туда 8 версию Явы
    text
    sudo mkdir /opt/java/jdk8 && curl -fL https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u422-b05/OpenJDK8U-jdk_x64_linux_hotspot_8u422b05.tar.gz | sudo tar xzvf - -C /opt/java/jdk8 --strip-components 1

    Java 11

    Последнюю версию смотреть тут.
    Создаём каталог jdk11 в директории /opt и скачиваем туда 11 версию Явы
    text
    sudo mkdir /opt/java/jdk11 && curl -fL https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.24%2B8/OpenJDK11U-jdk_x64_linux_hotspot_11.0.24_8.tar.gz | sudo tar xzvf - -C /opt/java/jdk11 --strip-components 1

    Java 17

    Последнюю версию смотреть тут.
    Создаём каталог jdk17 в директории /opt и скачиваем туда 17 версию Явы
    text
    sudo mkdir /opt/java/jdk17 && curl -fL https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.17%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz | sudo tar xzvf - -C /opt/java/jdk17 --strip-components 1

    Java 21

    Последнюю версию смотреть тут.
    Создаём каталог jdk21 в директории /opt и скачиваем туда 21 версию Явы
    text
    sudo mkdir /opt/java/jdk21 && curl -fL https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.9%2B10/OpenJDK21U-jdk_x64_linux_hotspot_21.0.9_10.tar.gz | sudo tar xzvf - -C /opt/java/jdk21 --strip-components 1

    Java 25

    Последнюю версию смотреть тут.
    Создаём каталог jdk21 в директории /opt и скачиваем туда 21 версию Явы
    text
    sudo mkdir /opt/java/jdk25 && curl -fL https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz | sudo tar xzvf - -C /opt/java/jdk25 --strip-components 1

  • Установка Maven

    По аналогии с Java создаём верхнеуровневый каталог для установки разных версий Мавен:
    text
    sudo mkdir /opt/maven
    maven 3.6.3
    text
    curl -fL https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz | sudo tar xzvf - -C /opt/maven

    Добавляем мавен в sdkman

    text
    sdk install maven maven-3.6.3 /opt/maven/apache-maven-3.6.3

    Устанавливаем эту версию по-умолчанию:

    text
    sdk default maven maven-3.6.3

    Обновляем переменные sdk:

    text
    source "$HOME/.sdkman/bin/sdkman-init.sh"

    Проверяем версию Maven:

    text
    mvn --version

    Проверяем какую переменную sdkman создал для Мавена:

    text
    env | grep MAVEN

    Просмотр локально установленных версий мавена

    text
    sdk list maven | grep +

  • Установка Gradle

    По аналогии с Java создаём верхнеуровневый каталог для установки разных версий gradle:
    text
    sudo mkdir /opt/gradle

    Версии смотреть тут.

    Gradle 8.10.2

    Скачиваем и распаковываем в /opt/gradle:
    text
    curl -fL -o /tmp/gradle.zip https://services.gradle.org/distributions/gradle-8.10.2-bin.zip && sudo unzip -d /opt/gradle /tmp/gradle.zip

    Добавляем gradle в sdkman:

    text
    sdk install gradle gradle-8.10.2 /opt/gradle/gradle-8.10.2

    Устанавливаем эту версию по-умолчанию:

    text
    sdk default gradle gradle-8.10.2

    Обновляем переменные sdk:

    text
    source "$HOME/.sdkman/bin/sdkman-init.sh"

    Просмотр текущей версии:

    text
    sdk current gradle

    Просмотр переменных, которые создал sdkman для gradle:

    text
    env | grep GRADLE

  • Установка protobuf

    Установка:
    text
    sudo aptitude install protobuf-compiler

    Проверка:

    text
    protoc --version

  • Установка NodeJS

    Устанавливаем менеджер nvm:
    text
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash

    Обновляем переменные окружения:

    text
    source ~/.bashrc

    Просмотр доступных для установки версий:

    text
    nvm ls-remote

    Установим последнюю 22 версию(Jod):

    text
    nvm install lts/jod

  • Установка VS Code

    Ключ:
    text
    curl -fL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /etc/apt/keyrings/microsoft.gpg 

    Репозиторий:

    text
    echo -e "Types: deb\nURIs: https://packages.microsoft.com/repos/code\nSuites: stable\nComponents: main\nArchitectures: amd64\nSigned-By: /etc/apt/keyrings/microsoft.gpg" | sudo tee /etc/apt/sources.list.d/vscode.sources

    Обновление кеша:

    text
    sudo aptitude update

    Установка:

    text
    sudo aptitude install code

    Подключение языковых моделей LLM для автодополнения, эмбединга и чата/редактирования кода. Для этого в Расширениях (Extensions) VS Code нужно скачать Continue, которое предоставляет интерфейс для работы с платформами запуска языковых моделей. Далее по руководству представлена установка такой платформы Ollama и скачивание необходимых моделей. Для их подключения к VS Code нужно на левой панели перейти к вкладке скачанного расширения Continue. В правом верхнем углу открывшейся панели нажать на Open Settings (шестерёнка). В появившейся слева подпанели найти иконку листа с загнутым углом (Configs) и нажать. В правой подпанели появится Main Config с шестерёнкой настроек (Open configuration) на которую нужно нажать. В основном окне откроется файл настроек Continue config.yaml. Нужно его дополнить/отредактировать введя следующий код:

    text
    
    name: Main Config
    version: 1.0.0
    schema: v1
    models:
      - name: Qwen 2.5 Coder 7B
        provider: ollama
        model: qwen2.5-coder:7b
        roles:
          - chat
          - edit
          - apply
      - name: Qwen2.5-Coder 1.5B
        provider: ollama
        model: qwen2.5-coder:1.5b
        roles:
          - autocomplete
      - name: Nomic Embed
        provider: ollama
        model: nomic-embed-text:latest
        roles:
          - embed  
    

  • Установка Idea

    На данный момент дистрибутив един и для Community версии и для Ultimate.
    Скачиваем и устанавливаем:
    text
    curl -L https://github.com/JetBrains/intellij-community/releases/download/idea%2F2026.1.2/idea-2026.1.2.tar.gz | sudo tar xzvf - -C /opt

    Создаём симлинк на скрипт запуска:

    text
    sudo ln -s /opt/idea-IC-261.24374.151/bin/idea.sh /usr/local/bin/idea

  • Установка DBeaver
    text
    wget -O /tmp/dbeaver.deb https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb && sudo apt-get install /tmp/dbeaver.deb

  • Установка Postman

    Скачиваем и устанавливаем Postman:
    text
    sudo mkdir /opt/postman && wget -O- https://dl.pstmn.io/download/latest/linux64 | sudo tar xzvf - -C /opt/postman --strip-components 1

    Создаём симлинк для запуска:

    text
    sudo ln -s /opt/postman/Postman /usr/local/bin/postman

  • Установка Bruno. Аналог Postman

    Скачиваем и устанавливаем
    text
    wget -O /tmp/bruno.deb https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_amd64_linux.deb && sudo apt-get install /tmp/bruno.deb

  • Установка Docker

    Ключ:
    text
    sudo curl -fL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc 

    Репозиторий:

    text
    echo -e "Types: deb\nURIs: https://download.docker.com/linux/debian\nSuites: trixie\nComponents: stable\nSigned-By: /etc/apt/keyrings/docker.asc" | sudo tee /etc/apt/sources.list.d/docker.sources

    Обновление кеша репозитория:

    text
    sudo aptitude update

    Установка:

    text
    sudo aptitude install docker-ce

    Докер стартует автоматически. Проверяем:

    text
    
    sudo systemctl status docker.service
    sudo systemctl status containerd.service
    

    Такое поведение нам не нужно. Нужно, чтобы он запускался при необходмости, а не постоянно висел и отжирал ресурсы. Отключаем автоматическую загрузку Докера при старте системы (Docker Desktop сам включит нужные сервисы при запуске):

    text
    
    sudo systemctl disable --now docker.service
    sudo systemctl disable --now containerd.service
    

    Чтобы не вызывать каждый раз sudo(например для просмотра процессов docker ps) нужно добавить текущего пользователя в группу docker:

    text
    sudo adduser $USER docker

    Ставим Docker-Desktop:

    text
    wget -O /tmp/docker-desktop.deb https://desktop.docker.com/linux/main/amd64/docker-desktop-amd64.deb && sudo apt-get install /tmp/docker-desktop.deb 

    Примечание. docker-compose теперь является плагином для docker. Его запуск осуществляется по аналогии с docker-compose ... только без дефиса - docker compose...

    И не забудьте включить виртуализацию в BIOS!

  • Установка PostgreSQL

    Запуск через Докер
    Версия PostgreSQL на обычном образе:
    text
    docker run --rm --name docker-postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 -v ~/docker-data/postgres13/pgData:/var/lib/postgresql/data  postgres:13

    Версия PostgreSQL на легковесном alpine:

    text
    docker run --rm --name docker-postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 -v ~/docker-data/postgres13-alpine/pgData:/var/lib/postgresql/data  postgres:13-alpine

  • Установка YandexDB

    Примерно то же самое, что и для PostgreSQL
    Создаём каталоги в домашней директории где YDB будет хранить свои данные:
    text
    mkdir ~/ydbd && cd ~/ydbd && mkdir ydb_data && mkdir ydb_certs

    Запускаем образ через Докер из КОРНЯ домашнего каталога:

    text
    
    docker run -d --rm --name ydb-local -h localhost \
      --platform linux/amd64 \
      -p 2135:2135 -p 2136:2136 -p 8765:8765 -p 9092:9092 \
      -v $(pwd)/ydbd/ydb_certs:/ydb_certs -v $(pwd)/ydbd/ydb_data:/ydb_data \
      -e GRPC_TLS_PORT=2135 -e GRPC_PORT=2136 -e MON_PORT=8765 \
      -e YDB_KAFKA_PROXY_PORT=9092 \
      ydbplatform/local-ydb:25.2.1
      

  • Установка Go

    Установка указана для версии 1.25.4. Актуальную версию смотреть тут.
    Установка:
    text
    sudo mkdir /opt/go && curl -fL https://go.dev/dl/go1.25.4.linux-amd64.tar.gz | sudo tar xzvf - -C /opt/go --strip-components 1

    Симлинк для запуска:

    text
    sudo ln -s /opt/go/bin/go /usr/local/bin/go

  • Создание соединения типа Мост

    Подключение через Мост хоть и не сильно, но увеличивает накладные расходы(процессор, пропускная способность). Поэтому если нет нужды в использовании эмулятора Qemu, создавать не нужно. А в Qemu он нужен исключительно если необходимо видеть виртуальную машину в локальной сети как отдельный компьютер.
    Посмотрим какие типы соединений имеются:
    text
    nmcli conn show

    Обычно результатом будет что-то типа такого:
    Wired connection 1 561f5eb9-c660-46ef-9a50-dba40ebc2646 ethernet enp1s0
    где Wired connection 1 это имя соединения, ethernet тип соединения, а enp1s0 название устройства, которое и обеспечивает физическую передачу данных (на реальных устройствах обычно называется eno1)
    Аналог просмотра ПКМ иконе сетевого соединения в системном трее -> Параметры соединения

    Удалим это соединение:

    text
    nmcli con delete 'Wired connection 1'

    Удалить также можно вручную через ту же иконку соединения

    Создаем подключение типа «мост» с именем bridge0 используя интерфейс, который назовём br0:

    text
    nmcli con add type bridge con-name bridge0 ifname br0

    Аналог этой команды, будет ПКМ на соединении и выбор Параметры соединений...
    Далее, Добавить новое соединение, Виртуальное типа Мост.

    Добавляем физический интерфейс (в данном случае enp1s0) в качестве
    подчиненного устройства к нашему только что созданному мосту br0:

    text
    nmcli con add type bridge-slave ifname enp1s0 master br0 

    В итоге появится новое Ethernet соединение типа bridge-slave-enp1s0 с которым будет работать мост bridge0
    Аналог этой команды - в сетевых соединения провалиться в Мост bridge0, на вкладке Мост жмём кнопку Добавить и в раскрывающемся списке выбираем Ethernet и заполняем имя соединения и из выпадающего списка выбираем Устройство

    Отключаем STP на мосту bridge0:

    text
    nmcli con modify bridge0 bridge.stp no

    Ну, либо вручную снимаем галку Включить STP в соединении типа Мост на вкладке Мост

    Посмотреть присвоенные IP адреса

    text
    ip addr show 

    Если всё сделано правильно, то у моста br0 должны быть присвоены ipшники, а у устройства enp1s0 их быть не должно.

  • Установка Qemu

    В Линуксе традиционно используется эмулятор Qemu вместо неимоверно отжирающего ресурсы VirtualBox, который ещё и требует выгрузки модулей KVM для своего запуска. Однако VirtualBox умеет сам создавать соединения типа Мост, в то время как Qemu требует создания соединения типа Мост на хосте вручную (предыдущий пункт по установке софта) если его нужно видеть в той же сети, что и хост машина.
    Сам Qemu уже установлен, однако ГУИ к нему требует отдельно установки:
    text
    sudo aptitude install virt-manager

    Для того, чтобы система не требовала пароля при запуске Менеджера, нужно добавить своего пользователя в группу libvirt:

    text
    sudo adduser $USER libvirt

  • Установка PhP

    Ключ:
    text
    curl -fL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/sury-php.gpg 

    Репозиторий:

    text
    echo "deb [signed-by=/etc/apt/keyrings/sury-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list

    Обновление кеша:

    text
    sudo aptitude update 

    Установка нужной версии. Например 8.1 и 8.2:

    text
    sudo aptitude install php8.1
    text
    sudo aptitude install php8.2

    Если нужно включить нужную версию для системы, то это делается командой:

    text
    sudo update-alternatives --config php 

    где можно выбрать версию по-умолчанию

  • Установка Unity Hub

    Ключ:
    text
    curl -fL https://hub.unity3d.com/linux/keys/public | sudo gpg --dearmor -o /etc/apt/keyrings/unityhub.gpg

    Репозиторий:

    text
    echo -e "Types: deb\nURIs: https://hub.unity3d.com/linux/repos/deb\nSuites: stable\nComponents: main\nSigned-By: /etc/apt/keyrings/unityhub.gpg" | sudo tee /etc/apt/sources.list.d/unityhub.sources

    Обновление кеша:

    text
    sudo aptitude update 

    Установка:

    text
    sudo aptitude install unityhub

  • Установка Sublime

    Ключ:
    text
    curl -fL https://download.sublimetext.com/sublimehq-pub.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/sublimehq-pub.gpg 

    Репозиторий:

    text
    echo -e "Types: deb\nURIs: https://download.sublimetext.com/\nSuites: apt/stable/\nComponents: \nArchitectures: amd64\nSigned-By: /etc/apt/keyrings/sublimehq-pub.gpg" | sudo tee /etc/apt/sources.list.d/sublime.sources

    Обновление кеша:

    text
    sudo aptitude update 

    Установка:

    text
    sudo aptitude install sublime-text 

Войдите или зарегистрируйтесь, чтобы ответить.