Подробный гайд: Установка Java 21 в Astra Linux через терминал

Подробная инструкция по установке Java 21 в Astra Linux через терминал: apt, ручной способ, JAVA_HOME и проверка версии JDK.

2026.08.08                  


Подробный гайд: Установка Java 21 в Astra Linux через терминалПодробный гайд: Установка Java 21 в Astra Linux через терминал

Рассмотрены два рабочих варианта:

  1. Через apt, если пакет OpenJDK 21 доступен в ваших репозиториях Astra Linux.
  2. Вручную через архив Eclipse Temurin JDK 21, если в репозиториях Java 21 нет.

0. Подготовка

Откройте терминал. В Astra Linux это обычно можно сделать через меню или сочетанием клавиш, например Alt + T, если оно настроено.

Проверьте версию системы

cat /etc/os-release

Обновите список пакетов

sudo apt update

Если sudo не настроен, войдите как root:



su -

и далее выполняйте команды без sudo.


Проверьте, установлена ли Java уже

java -version

Если Java установлена, вывод будет примерно таким:

openjdk version "21.x.x" ...

или:

openjdk version "17.x.x" ...

Также можно проверить, какие варианты Java зарегистрированы в системе:

sudo update-alternatives --list java

Способ 1. Установка Java 21 через apt

Этот способ подходит, если в подключенных репозиториях Astra Linux есть пакет OpenJDK 21.

1. Проверьте доступность пакета

apt-cache policy openjdk-21-jdk

Если пакет доступен, вы увидите кандидата на установку, например:

openjdk-21-jdk:
  Installed: (none)
  Candidate: 21.x.x-...

Если видите:

N: Unable to locate package openjdk-21-jdk

значит в текущих репозиториях пакета нет. В этом случае переходите к способу 2.


2. Установите OpenJDK 21

sudo apt install -y openjdk-21-jdk

Для сервера без графических зависимостей можно использовать минимальный вариант:

sudo apt install -y openjdk-21-jdk-headless

Обычно для разработки лучше ставить полный JDK:

sudo apt install -y openjdk-21-jdk

3. Проверьте установку

java -version

Ожидаемый вывод должен содержать Java 21, например:

openjdk version "21.0.x" 202x-xx-xx

Проверьте компилятор:

javac -version

Ожидаемый вывод:

javac 21.0.x

4. Выберите Java 21 по умолчанию, если установлено несколько версий

Если в системе есть другие версии Java, например Java 17 или Java 11, выполните:

sudo update-alternatives --config java

Появится список установленных версий. Выберите номер, соответствующий Java 21.


То же самое рекомендуется сделать для компилятора:

sudo update-alternatives --config javac

Способ 2. Установка Java 21 вручную из Eclipse Temurin JDK

Этот способ подходит, если в репозиториях Astra Linux нет пакета openjdk-21-jdk. Eclipse Temurin — это бесплатная сборка OpenJDK, распространяемая проектом Adoptium.

1. Установите необходимые утилиты

sudo apt update
sudo apt install -y wget ca-certificates tar gzip curl

2. Определите архитектуру системы

dpkg --print-architecture

Возможные варианты:

amd64
arm64
i386

Для большинства обычных компьютеров и серверов будет:

amd64

3. Скачайте Eclipse Temurin JDK 21

Выполните команды ниже. Они автоматически определят архитектуру и скачают нужный архив.

ARCH=$(dpkg --print-architecture)

case "$ARCH" in
  amd64)
    API_ARCH="x64"
    ;;
  arm64)
    API_ARCH="aarch64"
    ;;
  *)
    echo "Архитектура $ARCH не поддерживается этим гайдом"
    exit 1
    ;;
esac

wget -O /tmp/temurin21.tar.gz "https://api.adoptium.net/v3/binary/latest/21/ga/linux/${API_ARCH}/jdk/hotspot/normal/eclipse"

Если вместо wget хотите использовать curl, можно так:

curl -fL -o /tmp/temurin21.tar.gz "https://api.adoptium.net/v3/binary/latest/21/ga/linux/${API_ARCH}/jdk/hotspot/normal/eclipse"



Проверьте, что файл скачался:

ls -lh /tmp/temurin21.tar.gz

4. Создайте каталог для Java

В Debian-подобных системах JDK принято размещать в:

/usr/lib/jvm

Создайте каталог, если его нет:

sudo mkdir -p /usr/lib/jvm

5. Распакуйте архив

sudo tar -xzf /tmp/temurin21.tar.gz -C /usr/lib/jvm

Посмотрите, какой каталог появился:

ls -l /usr/lib/jvm

Там должен быть каталог вида:

jdk-21.0.x+y

6. Сохраните путь к распакованному JDK в переменную

JDK_DIR=$(find /usr/lib/jvm -maxdepth 1 -type d -name 'jdk-21*' | sort | tail -n 1)
echo "$JDK_DIR"

Вывод должен быть похож на:

/usr/lib/jvm/jdk-21.0.5+11

7. Зарегистрируйте Java 21 через update-alternatives

Выполните:

sudo update-alternatives --install /usr/bin/java java "$JDK_DIR/bin/java" 2100
sudo update-alternatives --install /usr/bin/javac javac "$JDK_DIR/bin/javac" 2100
sudo update-alternatives --install /usr/bin/jar jar "$JDK_DIR/bin/jar" 2100

Если нужно, можно также зарегистрировать дополнительные инструменты:

sudo update-alternatives --install /usr/bin/jshell jshell "$JDK_DIR/bin/jshell" 2100
sudo update-alternatives --install /usr/bin/javadoc javadoc "$JDK_DIR/bin/javadoc" 2100
sudo update-alternatives --install /usr/bin/keytool keytool "$JDK_DIR/bin/keytool" 2100

8. Выберите Java 21 по умолчанию

sudo update-alternatives --config java

Выберите вариант, который указывает на:

/usr/lib/jvm/jdk-21.../bin/java

Затем:

sudo update-alternatives --config javac

9. Проверьте установку

java -version

Ожидаемый вывод примерно такой:

openjdk version "21.0.x" ...
OpenJDK Runtime Environment Temurin-...
OpenJDK 64-Bit Server VM Temurin-...

Проверьте компилятор:

javac -version

Ожидаемый вывод:

javac 21.0.x

Настройка JAVA_HOME

Некоторым программам нужна переменная окружения JAVA_HOME.

Вариант 1. Автоматический для Java, выбранной по умолчанию

Создайте файл:

sudo tee /etc/profile.d/java-home.sh > /dev/null <<'EOF'
if command -v java >/dev/null 2>&1; then
  JAVA_BIN="$(readlink -f "$(command -v java)")"
  export JAVA_HOME="$(dirname "$(dirname "$JAVA_BIN")")"

  case ":$PATH:" in
    *":$JAVA_HOME/bin:"*) ;;
    *) export PATH="$JAVA_HOME/bin:$PATH" ;;
  esac
fi
EOF

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

source /etc/profile.d/java-home.sh

Проверьте:

echo $JAVA_HOME

Вывод должен быть похож на:

/usr/lib/jvm/java-21-openjdk-amd64

или:

/usr/lib/jvm/jdk-21.0.5+11

Вариант 2. Явно указать JAVA_HOME для Temurin JDK

Если вы устанавливали Temurin вручную, выполните:

JDK_DIR=$(find /usr/lib/jvm -maxdepth 1 -type d -name 'jdk-21*' | sort | tail -n 1)

sudo tee /etc/profile.d/java21.sh > /dev/null <<EOF
export JAVA_HOME="$JDK_DIR"
export PATH="\$JAVA_HOME/bin:\$PATH"
EOF

Примените:

source /etc/profile.d/java21.sh

Проверьте:

echo $JAVA_HOME
java -version

Проверка работы Java 21

Создайте временный тестовый файл.

mkdir -p ~/java-test
cd ~/java-test

Создайте файл Main.java:

cat > Main.java <<'EOF'
public class Main {
    public static void main(String[] args) {
        System.out.println("Java version: " + System.getProperty("java.version"));
    }
}
EOF



Скомпилируйте:

javac Main.java

Запустите:

java Main

Ожидаемый вывод:

Java version: 21.0.x

Удалите тестовые файлы:

cd ~
rm -rf ~/java-test

Если пакет openjdk-21-jdk не найден в apt

Сначала проверьте список доступных OpenJDK-пакетов:

apt-cache search openjdk

Или:

apt-cache search openjdk | grep -i jdk

Можно посмотреть, какие версии доступны:

apt-cache policy openjdk-17-jdk
apt-cache policy openjdk-21-jdk

Если openjdk-21-jdk отсутствует, не рекомендуется принудительно смешивать репозитории Debian с Astra Linux без понимания последствий, особенно в Astra Linux Special Edition. Безопаснее использовать ручной способ установки Temurin JDK.


Особенности Astra Linux Special Edition

Если у вас Astra Linux Special Edition, особенно с включенными механизмами защиты, учитывайте следующее:

  1. Могут действовать политики замкнутой программной среды.
  2. Установка стороннего ПО может быть ограничена.
  3. Запуск неподписанных или неразрешенных бинарных файлов может блокироваться.
  4. Для установки может потребоваться администратор системы или администратор безопасности.
  5. В защищенном контуре лучше использовать только разрешенные репозитории и сертифицированные пакеты.

Если при установке или запуске Java возникают ошибки безопасности, проверьте:

dmesg | tail -n 50
journalctl -xe

Также можно посмотреть статус механизмов безопасности Astra, если они используются в вашей конфигурации.


Если нет интернета на машине с Astra Linux

Если целевая машина не имеет доступа к интернету:

1. Скачайте архив Temurin JDK 21 на другом компьютере.

Страница загрузки Adoptium:

   https://adoptium.net/temurin/releases/

Выберите:

   Operating System: Linux
   Architecture: x64 или aarch64
   Package Type: JDK
   Version: 21 - LTS

2. Перенесите файл, например:

   OpenJDK21U-jdk_x64_linux_hotspot_21.x.x_x.tar.gz

3. Распакуйте его в /usr/lib/jvm:

   sudo mkdir -p /usr/lib/jvm
   sudo tar -xzf OpenJDK21U-jdk_x64_linux_hotspot_21.x.x_x.tar.gz -C /usr/lib/jvm

4. Затем выполните настройку update-alternatives и JAVA_HOME, как в способе 2.


Как удалить Java 21

Если устанавливали через apt

sudo apt remove --purge openjdk-21-jdk
sudo apt autoremove

Если ставили headless-версию:

sudo apt remove --purge openjdk-21-jdk-headless

Если устанавливали вручную Temurin JDK

Найдите каталог:

ls -l /usr/lib/jvm

Удалите его, например:

sudo rm -rf /usr/lib/jvm/jdk-21.0.5+11

Замените имя каталога на ваше.


Удалите альтернативы:

sudo update-alternatives --remove-all java
sudo update-alternatives --remove-all javac
sudo update-alternatives --remove-all jar

Будьте осторожны: --remove-all удалит все зарегистрированные варианты конкретной команды.


Если у вас установлены другие версии Java, лучше использовать точечное удаление:

sudo update-alternatives --remove java /usr/lib/jvm/jdk-21.0.5+11/bin/java
sudo update-alternatives --remove javac /usr/lib/jvm/jdk-21.0.5+11/bin/javac
sudo update-alternatives --remove jar /usr/lib/jvm/jdk-21.0.5+11/bin/jar

Также удалите файлы окружения, если создавали их:

sudo rm -f /etc/profile.d/java21.sh
sudo rm -f /etc/profile.d/java-home.sh

Краткая шпаргалка

Установка через apt

sudo apt update
sudo apt install -y openjdk-21-jdk
java -version
sudo update-alternatives --config java

Установка вручную Temurin JDK 21

sudo apt update
sudo apt install -y wget ca-certificates tar gzip curl

ARCH=$(dpkg --print-architecture)

case "$ARCH" in
  amd64) API_ARCH="x64" ;;
  arm64) API_ARCH="aarch64" ;;
  *) echo "Неподдерживаемая архитектура"; exit 1 ;;
esac

wget -O /tmp/temurin21.tar.gz "https://api.adoptium.net/v3/binary/latest/21/ga/linux/${API_ARCH}/jdk/hotspot/normal/eclipse"

sudo mkdir -p /usr/lib/jvm
sudo tar -xzf /tmp/temurin21.tar.gz -C /usr/lib/jvm

JDK_DIR=$(find /usr/lib/jvm -maxdepth 1 -type d -name 'jdk-21*' | sort | tail -n 1)

sudo update-alternatives --install /usr/bin/java java "$JDK_DIR/bin/java" 2100
sudo update-alternatives --install /usr/bin/javac javac "$JDK_DIR/bin/javac" 2100
sudo update-alternatives --install /usr/bin/jar jar "$JDK_DIR/bin/jar" 2100

sudo update-alternatives --config java
sudo update-alternatives --config javac

java -version

Настройка JAVA_HOME для Temurin

JDK_DIR=$(find /usr/lib/jvm -maxdepth 1 -type d -name 'jdk-21*' | sort | tail -n 1)

sudo tee /etc/profile.d/java21.sh > /dev/null <<EOF
export JAVA_HOME="$JDK_DIR"
export PATH="\$JAVA_HOME/bin:\$PATH"
EOF

source /etc/profile.d/java21.sh
echo $JAVA_HOME

Важно:

Если в репозиториях вашей версии Astra Linux есть openjdk-21-jdk, лучше установить его через apt. Если пакета нет, самый надежный вариант — скачать и распаковать Eclipse Temurin JDK 21 в /usr/lib/jvm, затем настроить update-alternatives и JAVA_HOME.


Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (5)(· · · — — — · · ·)(30)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта