У меня есть сервер, на котором работает Debian Squeeze, и обновление до Wheezy невозможно. Мне нужно установить версию 7 JRE, так как там есть некоторые исправления ошибок, которые мне требуются. Мои варианты:
Мы бы предпочли установить openjdk, но мне это очень сложно. Я попытался установить с помощью apt-get openjdk-7-jre и получил следующий ответ:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
openjdk-7-jre : Depends: openjdk-7-jre-headless (= 7u3-2.1.3-1) but it is not going to be installed
Depends: libfontconfig1 (>= 2.9.0) but 2.8.0-2.1 is to be installed
Depends: libgdk-pixbuf2.0-0 (>= 2.22.0) but it is not going to be installed
Depends: libjpeg8 (>= 8c) but 8b-1 is to be installed
Depends: libpulse0 (>= 0.99.1) but 0.9.21-3+squeeze1 is to be installed
Depends: libatk-wrapper-java-jni (>= 0.30.4-0ubuntu2) but it is not going to be installed
E: Broken packages
Затем я попробовал aptitude и получил такой ответ:
0 packages upgraded, 76 newly installed, 0 to remove and 0 not upgraded.
Need to get 56.9 MB of archives. After unpacking 171 MB will be used.
The following packages have unmet dependencies:
libnss3: Conflicts: libnss3-1d (< 2:3.13.4-2) but 3.12.8-1+squeeze6 is installed.
openjdk-7-jre: Depends: libfontconfig1 (>= 2.9.0) but 2.8.0-2.1 is installed.
Depends: libjpeg8 (>= 8c) but it is not going to be installed.
Depends: libpulse0 (>= 0.99.1) but it is not going to be installed.
libgdk-pixbuf2.0-0: Depends: libglib2.0-0 (>= 2.31.18) but 2.24.2-1 is installed.
Depends: libjpeg8 (>= 8c) but it is not going to be installed.
Depends: libtiff4 (>= 3.9.5-2) but 3.9.4-5+squeeze8 is installed.
Breaks: libgtk2.0-0 (< 2.21.3) but 2.20.1-2 is installed.
Breaks: libgtk2.0-bin (< 2.21.3) but 2.20.1-2 is installed.
icedtea-7-jre-cacao: Depends: libstdc++6 (>= 4.6) but 4.4.5-8 is installed.
libatk-wrapper-java-jni: Depends: libglib2.0-0 (>= 2.31.8) but 2.24.2-1 is installed.
openjdk-7-jre-headless: Depends: libjpeg8 (>= 8c) but it is not going to be installed.
Depends: libfontconfig1 (>= 2.9.0) but 2.8.0-2.1 is installed.
Depends: libglib2.0-0 (>= 2.26.0) but 2.24.2-1 is installed.
The following actions will resolve these dependencies:
Keep the following packages at their current version:
1) icedtea-7-jre-cacao [Not Installed]
2) icedtea-7-jre-jamvm [Not Installed]
3) libatk-wrapper-java-jni [Not Installed]
4) libgdk-pixbuf2.0-0 [Not Installed]
5) libnss3 [Not Installed]
6) openjdk-7-jre [Not Installed]
7) openjdk-7-jre-headless [Not Installed]
8) openjdk-7-jre-lib [Not Installed]
Leave the following dependencies unresolved:
9) libatk-wrapper-java recommends libatk-wrapper-java-jni
Accept this solution? [Y/n/q/?]
Принятие решения заканчивается так:
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
Извините за подробный вывод, я в этом новичок.
В любом случае, из того, что я читал, довольно сложно установить openjdk-7 на squeeze - я думаю, я ищу серебряную пулю! Кто-нибудь это делал? Должен ли я сдаться и получить оракул?
Привет,
Джеймс
Я не знаю конкретной причины, по которой ваша попытка не удалась (это может быть связано с APT conf и т. Д.), Но мне удалось довольно легко установить openjdk7 на сжатие без каких-либо заметных побочных эффектов.
Здесь следует сделать предупреждение: смешивание пакетов из разных выпусков (например, стабильного и тестового) рискованно. Пакет, установленный из другого выпуска, может быть несовместим с другими и может даже нарушить работу других пакетов. Особенно рискованно обновлять критически важные пакеты, такие как libc, которые в этом случае будут обновлены.
Во-первых, вам нужно настроить приоритеты пакетов, чтобы APT не начинал извлекать все из тестирования. Для получения дополнительной информации вы можете обратиться к странице руководства apt_preferences (5) и Справочник администратора Debian.
Включите wheezy в sources.list (я полагаю, вы уже это сделали)
Установить приоритеты
Установить сжатие в качестве выпуска по умолчанию
$ cat /etc/apt/apt.conf.d/local
APT::Default-Release "squeeze";
Это эффективно устанавливает приоритет 990 для сжатых пакетов.
Выполнив имитацию обновления, я заметил, что APT пытается обновить некоторые пакеты из тестирования. apt-cache policy
объяснил, что это происходит для пакетов, которые устанавливаются из backports (установленный приоритет пакета 100 против 500 для пакетов, доступных в тестировании). Не уверен, что это лучший вариант, но для решения этой проблемы (избегайте обновления пакетов из резервных копий версиями из тестирования) я минимизировал приоритет тестирования (вам не нужно этого делать, если вы не используете обратные порты)
$ cat /etc/apt/preferences.d/wheezy
Package: *
Pin: release n=wheezy
Pin-Priority: 10
«10» - это просто произвольное число, которое я выбрал, которое меньше 100. Я предполагаю, что с этим контактом обновления безопасности не будут загружаться для пакетов, установленных после тестирования (еще не проверенных), было бы интересно решить эту проблему. .
Установите openjdk7, выбрав wheezy в качестве целевого выпуска
# apt-get install -t wheezy openjdk-7-jdk
Поскольку основные библиотеки будут обновлены в процессе, будьте готовы перезапустить некоторые службы (будут перезапущены автоматически с вашего согласия). И я бы не рекомендовал делать это в графическом сеансе - мне было сказано остановить диспетчер отображения перед обновлением libc.