Ich habe den oracle-java7-installer ppa meinem apt-cacher-ng-Server und meinen Clients hinzugefügt. Ich kann es nicht installieren.
Irgendwelche Ideen, wie ich das machen kann? Ich denke, es schlägt fehl, wenn versucht wird, die Installation von Oracle herunterzuladen. Folgendes passiert, wenn ich versuche, es zu installieren:
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)
apt-cacher-ng
Axl Mattheus
quelle
quelle
Antworten:
Ich habe gerade damit gekämpft, hier sind meine Ergebnisse für Ubuntu 14.04 Trusty Tahr.
Das Installationsprogramm
apt-config
bestimmt, welcher Proxy verwendet werden soll. Insbesondere, wenn zurückgegeben wird,Acquire::http::Proxy::download.oracle.com
umDIRECT
zu bestimmen, ob der Standard-Proxy von zum direkten Herunterladen verwendet werden soll.Insbesondere wird die Installation ausgeführt
Und später
Wenn Sie die folgende apt-Konfiguration verwenden, muss das Installationsprogramm direkt heruntergeladen werden:
Während dies funktioniert, ist es etwas ärgerlich, da der Download ewig dauert und dies den Zweck des Proxys etwas zunichte macht.
Ich habe festgestellt, dass das Installationsprogramm eine
debconf
Variable überprüft, um zu überprüfen, ob eine lokale Datei verwendet werden soll. Die geprüfte Eigenschaft istoracle-java8-installer/local
und es ist einestring
.Insbesondere wird das Installationsprogramm ausgeführt:
Wenn Sie das JDK heruntergeladen haben und sich in einem Verzeichnis befinden
/jdk/dir
, müssen Sie den folgenden Befehl ausführen, bevor Sie das Installationsprogramm ausführen:Beachten Sie das Trailing
/
im Verzeichnis - dies ist erforderlich.quelle
Ich bin auf dasselbe Problem gestoßen, habe aber eine Problemumgehung gefunden. Das Hauptproblem ist , dass apt-cacher-ng funktioniert nicht vorwärts beliebige benutzerdefinierte HTTP - Header, wie von dem Oracle - Installationsprogramm (wget) , um die Oracle - Lizenz zu akzeptieren.
Ich habe die folgenden Änderungen an meiner
acng.conf
Datei vorgenommen. Ich habe diePfilePattern
von GomoX vorgeschlagene Klausel aktiviert und erweitert :und hinzugefügt (dies ist der wichtige Teil):
Dies führt dazu, dass acng bei jeder Anforderung ein HTTP-Cookie sendet, aber zumindest die Oracle-Binärdateien durchlaufen und die Installation erfolgreich abgeschlossen wird. Getestet mit einigen lokalen Docker-Images und sie laden Java fast sofort herunter und installieren es!
FWIW: Ich habe einen Fehlerbericht für acng erstellt (# 314773, leider nicht öffentlich), also wird er hoffentlich in einer kommenden Version behoben ...
edit 1 : Weitere Tests haben ergeben, dass es unter Debian Jessie funktioniert
, aber (noch) nicht unter Ubuntu Utopic (14:10)...edit 2 : Es funktioniert jetzt auch in Ubuntu Utopic (Problem war, dass ich ein Docker-Image ohne das
ca-certificates
installierte Paket verwendet habe).quelle
apt-cacher-ng hat eine sehr restriktive URL-Regex, die nur das Herunterladen einiger Pakettypen ermöglicht. Das Java-Paket von Oracle stimmt nicht damit überein. Die Lösung besteht darin, die Konfiguration zu ändern, in der der reguläre Ausdruck definiert ist.
Insbesondere die URL des Pakets ist so etwas wie
yada-yada.tar.gz?AuthParam=abcdacbd_123123123123
, also müssen wir in der Folge anpassen.Grundsätzlich:
/etc/apt-cacher-ng/acng.conf
Kommentar- die Zeile , die mitPfilePattern
\.tar\.gz
mit\.tar\.gz(\?AuthParam=.*)?
Als Referenz lautet die gesamte Zeile in meiner Konfigurationsdatei:
quelle
Sie können die
DIRECT
Option in denapt
Einstellungen verwenden, um zu vermeiden, dass der Proxy für die Java-Pakete von Oracle übergeben wird. Dies ist keine perfekte Lösung, sollte es Ihren Benutzern jedoch ermöglichen, die Pakete auf Kosten des zusätzlichen Datenverkehrs zu installieren.Das Konfigurations-Snippet (für die Client-Computer, nicht für den
apt-cacher-ng
Server) lautet:Sie können dies in eine
/etc/apt/apt.conf.d/99proxy
Datei einfügen, um sicherzustellen, dass alle vorherigenapt
Proxy-Konfigurationen überschrieben werden .quelle
*.java.net
, da dort das Skript zu suchen scheint, aber kein Glück. Die Anforderung wird weiterhin über den Proxy gesendet.Zuerst müssen Sie openjdk entfernen, um den folgenden Befehl von Ihrem Terminal auszuführen:
sudo apt-get purge openjdk *
Wenn Sie Java 7 von einem anderen PPA installiert haben und Probleme mit Java haben, müssen Sie die folgenden Schritte ausführen, bevor Sie das hier erwähnte PPA installieren:
Installieren Sie Oracle Java 7 in Ubuntu 13.04 / 12.10 / 12.04 Öffnen Sie das Terminal und führen Sie die folgenden Befehle aus:
Sie können die Java-Version überprüfen, indem Sie Java im Dashboard suchen.
quelle
apt-cacher-ng
, was zusätzliche Probleme aufwirft, da es als Proxy fungiert. Dies beantwortet die Frage nicht.