Подробный гайд: Установка Java 21 в Astra Linux через терминал
Рассмотрены два рабочих варианта:
- Через
apt, если пакет OpenJDK 21 доступен в ваших репозиториях Astra Linux. - Вручную через архив 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, особенно с включенными механизмами защиты, учитывайте следующее:
- Могут действовать политики замкнутой программной среды.
- Установка стороннего ПО может быть ограничена.
- Запуск неподписанных или неразрешенных бинарных файлов может блокироваться.
- Для установки может потребоваться администратор системы или администратор безопасности.
- В защищенном контуре лучше использовать только разрешенные репозитории и сертифицированные пакеты.
Если при установке или запуске 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.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.