Я хотел бы обновить свою основную систему до 16.04, но я работаю над проектами, которые требуют OpenJDK 7.
Видимо это не доступно из тривиального apt-get install openjdk-7-jdk
. Только версии 8 и 9 перечислены в хранилище.
Может кто-нибудь указать мне инструкции о том, как его установить?
Ответы:
ОБНОВЛЕНИЕ: ХОТЯ ЭТО НАИБОЛЕЕ ГОЛОСОВАННЫЙ ОТВЕТ, ЕГО ВЕРОЯТНО НЕ ТО, ЧТО ВЫ ХОТИТЕ ИСПОЛЬЗОВАТЬ В 2018 ГОДУ В связи с НЕДОСТАТОКОМ ОБНОВЛЕНИЙ БЕЗОПАСНОСТИ НАСТОЯЩИМ PPA.
Я нашел следующие инструкции, которые работали для меня:
Это определяет «PPA для загрузок OpenJDK (с ограничениями)» как дополнительное хранилище пакетов, обновляет вашу информацию и устанавливает пакет с его зависимостями (из этого хранилища).
источник
sudo update-java-alternatives
так, чтобы вы могли сделать openjdk-7 по умолчанию.Изменить 22 июля 2019 : этот ответ в настоящее время не работает. Указанные ниже пакеты JDK больше не доступны в Debian Experimental. В любом случае, они отставали от пакетов Ubuntu Trusty, которые содержали более свежие обновления безопасности. Пожалуйста, обратитесь к другим ответам, пока это не может быть решено (извините, нет ETA).
Не похоже, что сопровождающий openjdk-r / ppa будет обновлять пакет openjdk-7 после версии 7u95-2.6.4-3. Описание этого пакета «Скопировано из debian экспериментальный в Первичном архиве для Debian GNU / Linux» дает нам подсказку о том, как справиться с этим самостоятельно.
Вариант 1: ручная установка
Загрузите пакеты, предназначенные для вашей архитектуры:
(для большинства пользователей это означает amd64, если установлена 64-битная версия, или i386, если установлена 32-битная версия Ubuntu)
(Попытка) установить пакеты, используя
dpkg
:Ubuntu 17.10 и более ранние версии:
Ubuntu 18.04 и позже:
Проверьте вывод из
dpkg
. Если были проблемы с зависимостями - что вполне вероятно - вы увидите следующее (вместо вашей архитектуры вместо amd64):Если проблем с зависимостями не было, отлично, все готово, перейдите к # 4. В противном случае, если вам нужно решить некоторые проблемы с зависимостями, это обрабатывается с помощью:
Обратите внимание, что нет необходимости перезапускать
dpkg
послеapt
разрешения зависимостей. Он автоматически завершит установку пакетов openjdk.Обновите альтернативы Java. Вы можете просмотреть все установленные версии Java с
update-java-alternatives --list
. Чтобы активировать OpenJDK Java 1.7, запустите:Вы можете заметить ошибку о том, что
IcedTeaPlugin.so
плагин недоступен. Это не очень важно для разработчиков, работающих с JDK.Убедитесь, что Java работает:
который должен вывести что-то похожее на:
Вариант 2: Автоматическая установка (включая обновления с
apt
)Пиннинг можно использовать для установки и обновления openjdk-7-jdk и его зависимостей из репозиториев Debian.
Создайте файл закрепления, который скажет, что
apt
нужно рассматривать только те пакеты, которые нас интересуют (мы, конечно, не хотим, чтобы весь наш дистрибутив Ubuntu «обновлялся» экспериментальными пакетами Debian).Создайте файл
/etc/apt/preferences.d/debian
со следующим содержанием. Вам нужны привилегии суперпользователя, поэтому используйте один изsudo vim
,sudo nano
,gksudo gedit
и т.д.Для Ubuntu 17.10 и более ранних версий также добавьте следующее (см. Примечание внизу):
Установите набор ключей Debian:
Примечание: хотя это самый простой способ добавления цепочки ключей Debian, он может быть устаревшим. Проверьте вывод, как показано ниже при запуске
apt update
на шаге 4:Если вы видите эту ошибку, то вручную добавьте необходимые ключи с помощью:
где
8B48AD6246925553
и7638D0442B90D010
должно совпадать с пабами, которые вы видите в предупреждающем сообщении.Добавьте необходимые репозитории:
Почему бы не использовать стабильный репозиторий Debian? Вы столкнетесь с неудовлетворительными зависимостями в стабильной версии Debian. Экспериментальные (для openjdk-7) и sid (для libjpeg62-turbo, libfontconfig1 и fontconfig-config) репозитории более снисходительны с зависимостями версий.
Обновите
apt
кеш (ожидайте, что это займет некоторое время, так как списки пакетов Debian большие):Установите openjdk-7-jdk:
Обновите альтернативы Java. Вы можете просмотреть все установленные версии Java с
update-java-alternatives --list
. Чтобы активировать OpenJDK Java 1.7, запустите:Вы можете заметить ошибку о том, что
IcedTeaPlugin.so
плагин недоступен. Это не очень важно для разработчиков, работающих с JDK.Убедитесь, что Java работает:
который должен вывести что-то похожее на:
заметки fontconfig
libfontconfig1
иfontconfig-config
должен быть обновлен до 2.12 или более поздней версии Ubuntu 17.10 и более ранних версий. Пакеты обновлений от Debian не содержат настроек Ubuntu, поэтому некоторые приложения отображают ужасные шрифты с установленными этими пакетами; например, прокси-сервер отладки Charles. В зависимости от программ, которые вы используете, эта проблема может затрагивать или не затрагивать вас.источник
Вы можете скачать OpenJDK 7 от Azul, который может соответствовать вашим потребностям. Оба имеют DEB (для системы пакетов) и ZIP-дистрибутив. Я работал только с дистрибутивом ZIP.
http://www.azul.com/downloads/zulu/zulu-linux/
источник
Установите Java 7 на Ubuntu 16.04, Ubuntu 17.04
Рекомендуется установить Oracle Java , поскольку он имеет преимущество в производительности по сравнению с OpenJDK . По этой причине я хочу опубликовать альтернативу. Если вы хотите установить Oracle Java, выполните следующие команды в терминале, чтобы установить его из PPA.
Добавьте необходимые репозитории:
Обновите
apt
кеш и установите oracle-java7 :В процессе установки вам нужно будет принять Лицензионное соглашение Oracle . После установки нам нужно установить переменные среды Java, такие как JAVA_HOME
Исправьте переменные среды Java.
Убедитесь, что Java работает:
который должен вывести что-то похожее на:
источник
apt-get
пытается получить установщик с несуществующей страницы. - Если вам нужен JDK 7, вы можете загрузить установщики с веб-сайта архива: oracle.com/technetwork/java/javase/downloads/…Альтернатива Oracle JDK:
Я хотел избежать усилий с репозиториями, потому что я переключаюсь между 7, 8 и 9, поэтому в итоге я выбрал Oracle JDK, а не OpenJDK. Скачано с официального сайта . Я не уверен в том, содержит ли последняя сборка 80 те же исправления, что и в сборке 161 OpenJDK. Но у меня она есть для разработки, так что в любом случае для меня это не имеет большого значения.
Затем вам нужно настроить
$JAVA_HOME
окружение так, чтобы различные скрипты выбирали правильный JDK (например, Maven, JBoss и т. Д.).Для полноты, версия 7 JDK была написана EOL, даже публичная поддержка JDK 8 прекращается с сентября 2017 года и не получит публичных обновлений после сентября 2018 года.
источник
Используйте контейнеры
Это универсально правильный ответ о том, как запускать
<outdated>
удаленное программное обеспечение в<current>
Ubuntu: контейнеризировать ваше приложение .Например, используйте Docker и более старый базовый образ Ubuntu, в котором искомое программное обеспечение все еще доступно / поддерживается.
Это также работает наоборот; опробуйте программное обеспечение в более новом или даже другом дистрибутиве Linux на вашей текущей стабильной Ubuntu.
Пример для Java 7 с использованием Ubuntu 14.04
Установите Docker - бесплатная версия Docker CE в порядке. Смотрите, например, https://docs.docker.com/install/linux/docker-ce/ubuntu/ или используйте
docker.io
пакет в последних поставленных версиях Ubuntu.В пустой папке создайте файл
Dockerfile
:Добавьте больше пакетов в эту команду, если вам это нужно.
В этой папке запустите:
Запустите команду внутри одноразового контейнера, используя этот образ Java 7:
Например
java -version
:Выход:
По желанию, создайте обертку для удобства.
Создайте файл
/usr/local/bin/java7-in-docker
с содержимым:Это сделает текущий рабочий каталог доступным внутри контейнера, а не всей вашей файловой системы, и будет выдавать себя за вашу локальную учетную запись пользователя в пространстве имен контейнера.
Отметьте его как исполняемый:
Запустите ваш Java 7 прозрачно, например так:
источник
Простой способ это:
Добавьте эти строки в
/etc/apt/sources.list
:Затем обновите apt и установите. Вам, вероятно, нужно понизить
tzdata
пакет.После этого я бы порекомендовал закомментировать эти строки и снова выполнить обновление, чтобы предотвратить установку или обновление пакетов из этого хранилища (что может привести к неожиданному поведению).
Одна из проблем заключается в том, что вам нужно хранить эти пакеты, чтобы они не удалялись при обновлении вашей системы (особенно
tzdata
пакета).ПРИМЕЧАНИЕ . Используйте этот метод в качестве крайней меры, предпочитайте любой другой, который позволит вам выполнить обновление без проблем.
источник