Установите oracle-java7-installer через apt-cacher-ng

Я добавил oracle-java7-installer ppa к своему apt-cacher-ng серверу и моим клиентам. Я не могу заставить это устанавливать.

Какие-либо идеи о том, как я могу сделать это? Я думаю, что это перестало работать, когда это пытается загрузить установку с Oracle. Это - то, что происходит, когда я пытаюсь установить его:

admin@vgjs001:~$ sudo apt-get install oracle-java7-installer
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 x11-common xfonts-encodings xfonts-utils
Suggested packages:
  default-jre equivs binfmt-support visualvm ttf-baekmuk ttf-unfonts ttf-unfonts-core ttf-kochi-gothic
  ttf-sazanami-gothic ttf-kochi-mincho ttf-sazanami-mincho ttf-arphic-uming firefox firefox-2 iceweasel
  mozilla-firefox iceape-browser mozilla-browser epiphany-gecko epiphany-webkit epiphany-browser galeon midbrowser
  moblin-web-browser xulrunner xulrunner-1.9 konqueror chromium-browser midori google-chrome
The following NEW packages will be installed:
  gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 oracle-java7-installer x11-common xfonts-encodings
  xfonts-utils
0 upgraded, 9 newly installed, 0 to remove and 10 not upgraded.
Need to get 4 269 kB/4 347 kB of archives.
After this operation, 7 548 kB of additional disk space will be used.
Do you want to continue [Y/n]? 
Get:1 "hyperlink-1" "repo-1" gsfonts all 1:8.11+urwcyr1.0.7~pre44-4.2ubuntu1 [3 374 kB]
Get:2 "hyperlink-2" "repo-2"  libfontenc1 amd64 1:1.1.0-1 [15,4 kB]                         
Get:3 "hyperlink-3" "repo-3"  libxfont1 amd64 1:1.4.4-1 [133 kB]                            
Get:4 "hyperlink-4" "repo-4"  x11-common all 1:7.6+12ubuntu1 [57,7 kB]                      
Get:5 "hyperlink-5" "repo-5"  xfonts-encodings all 1:1.0.4-1ubuntu1 [583 kB]                
Get:6 "hyperlink-6" "repo-6"  xfonts-utils amd64 1:7.6+1 [96,4 kB]                          
Get:7 "hyperlink-7" "repo-7"  gsfonts-x11 all 0.22 [9 108 B]                                
Fetched 3 232 kB in 33s (95,1 kB/s)                                                                                   
Preconfiguring packages ...
Selecting previously unselected package java-common.
download failed
Oracle JDK 7 is NOT installed.
dpkg: error processing oracle-java7-installer (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up gsfonts (1:8.11+urwcyr1.0.7~pre44-4.2ubuntu1) ...
Setting up libfontenc1 (1:1.1.0-1) ...
Setting up libxfont1 (1:1.4.4-1) ...
Setting up x11-common (1:7.6+12ubuntu1) ...
Setting up xfonts-encodings (1:1.0.4-1ubuntu1) ...
Setting up xfonts-utils (1:7.6+1) ...
Setting up gsfonts-x11 (0.22) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
 oracle-java7-installer
E: Sub-process /usr/bin/dpkg returned an error code (1)
7
задан 4 October 2012 в 00:01

5 ответов

Я просто боролся с этим, вот мои результаты для Тара Надежного человека Ubuntu 14.04.

Использование установщика apt-config определить который прокси использовать. Конкретно, если Acquire::http::Proxy::download.oracle.com возвраты DIRECT определить, использовать ли прокси по умолчанию загрузить непосредственно.

Конкретно выполнения установки

# use apt proxy
APT_PROXIES=$(apt-config shell \
http_proxy Acquire::http::Proxy \
https_proxy Acquire::https::Proxy \
ftp_proxy Acquire::ftp::Proxy \
dl_direct Acquire::http::Proxy::download.oracle.com \
)

И позже

if [ "$dl_direct" = "DIRECT" ]; then
    unset http_proxy
    unset https_proxy
    unset ftp_proxy
fi

Если Вы используете следующую способную конфигурацию затем установщик с загрузкой непосредственно:

Acquire::http::Proxy "http://my.proxy.com:3142";
Acquire::http::Proxy {
        download.oracle.com DIRECT;
};

В то время как это работает, это является несколько раздражающим, поскольку загрузка берет навсегда, и это несколько побеждает цель прокси.

Я нашел, что установщик проверяет a debconf переменная, чтобы проверить, использовать ли локальный файл. Проверенное свойство oracle-java8-installer/local и это - a string.

Конкретно выполнения установщика:

db_get oracle-java8-installer/local
if [ -d "$RET" -a -f "$RET"/$FILENAME ]; then

    echo "Installing from local file $RET/$FILENAME"
    cp -f -p "$RET"/$FILENAME ${FILENAME}_TEMP
    mv -f ${FILENAME}_TEMP $FILENAME
else # no local file

Таким образом, если Вам загрузили JDK и в каталоге /jdk/dir затем необходимо выполнить следующую команду прежде, чем запустить установщик:

sudo debconf-set-selections <<< 'debconf oracle-java8-installer/local string /jdk/dir/'

Отметьте запаздывание / на каталоге - это требуется.

6
ответ дан 4 October 2012 в 00:01

apt-cacher-ng имеет очень ограниченное регулярное выражение URL, которое позволяет загружать только некоторые типы пакетов. Пакет Java от Oracle не соответствует ему. Решением является изменение конфигурации, в которой определено регулярное выражение.

В частности, URL-адрес пакета похож на yada-yada.tar.gz?AuthParam=abcdacbd_123123123123, поэтому мы должны изменить его.

В основном:

  1. В /etc/apt-cacher-ng/acng.conf раскомментируйте строку, начинающуюся с PfilePattern
  2. Измените ее, чтобы заменить \.tar\.gz на \.tar\.gz(\?AuthParam=.*)?

Для справки, вся строка в моем файле конфигурации:

PfilePattern = .*(\.deb|\.rpm|\.dsc|\.tar\.gz\.gpg|\.tar\.gz(\?AuthParam=.*)?|\.diff\.gz|\.diff\.bz2|\.jigdo|\.template|changelog|copyright|\.udeb|\.diff/.*\.gz|vmlinuz|initrd\.gz|(Devel)?ReleaseAnnouncement(\\?.*)?)$
0
ответ дан 4 October 2012 в 00:01

Вы можете использовать опцию DIRECT в настройках apt, чтобы избежать прохождения через прокси-сервер для пакетов Java из Oracle. Это не идеальное решение, но оно должно позволить вашим пользователям устанавливать пакеты за счет дополнительного трафика.

Фрагмент конфигурации (для клиентских компьютеров, а не для сервера apt-cacher-ng):

Acquire::http::Proxy {
    *.oracle.com DIRECT;
};

Вы можете поместить это в файл /etc/apt/apt.conf.d/99proxy, чтобы убедиться, что он перекрывает любой предыдущий apt конфигурация прокси.

0
ответ дан 4 October 2012 в 00:01

Сначала вам нужно удалить openjdk для этого, запустите следующую команду из вашего терминала:

sudo apt-get purge openjdk *

Если вы установили Java 7 из любого другого PPA и вы Если у вас проблемы с Java, то перед установкой упомянутого здесь PPA необходимо выполнить следующие шаги:

sudo rm /var/lib/dpkg/info/oracle-java7-installer*
sudo apt-get purge oracle-java7-installer*
sudo rm /etc/apt/sources.list.d/*java*
sudo apt-get update

Установить oracle java 7 в Ubuntu 13.04 / 12.10 / 12.04 Откройте терминал и выполните следующие команды:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Вы можете проверить версию Java, выполнив поиск по Java на панели инструментов.

0
ответ дан 4 October 2012 в 00:01

Я столкнулся с той же проблемой, но мне удалось найти обходной путь. Основная проблема заключается в том, что apt-cacher-ng не не пересылает какие-либо пользовательские заголовки HTTP, используемые установщиком Oracle (wget) для принятия лицензии Oracle.

Я внес следующие изменения в мой файл acng.conf. Я включил и расширил предложение PfilePattern в соответствии с предложением GomoX:

PfilePattern = .*(\.d?deb|\.rpm|\.drpm|\.dsc|\.tar(\.gz|\.bz2|\.lzma|\.xz)(\.gpg|\?AuthParam=.*)?|\.diff(\.gz|\.bz2|\.lzma|\.xz)|\.jigdo|\.template|changelog|copyright|\.udeb|\.debdelta|\.diff/.*\.gz|(Devel)?ReleaseAnnouncement(\?.*)?|[a-f0-9]+-(susedata|updateinfo|primary|deltainfo).xml.gz|fonts/(final/)?[a-z]+32.exe(\?download.*)?|/dists/.*/installer-[^/]+/[0-9][^/]+/images/.*)$

и добавил (это важная часть):

RequestAppendix: Cookie: oraclelicense=a

Это приведет к отправке acng файл cookie HTTP с каждым запросом, но, по крайней мере, он позволяет двоичным файлам оракула пройти и успешно завершить установку. Протестировал это с некоторыми локальными образами Docker, и они загрузили и установили Java почти мгновенно!

FWIW: Я создал отчет об ошибке для acng (# 314773, к сожалению, не публичный), так что, надеюсь, он будет исправлен в Предстоящий релиз ...

edit 1 : Дальнейшее тестирование показало, что оно работает на Debian Jessie , но не (пока) на Ubuntu Utopic (14:10) ...

edit 2 : теперь он также работает в Ubuntu Utopic (проблема заключалась в том, что я использовал образ Docker без установленного пакета ca-certificates).

0
ответ дан 4 October 2012 в 00:01

Другие вопросы по тегам:

Похожие вопросы: