Schlagwort-Archive: deb

Oracle Java Package erstellen unter Debian

Problem:
Oracles Java wird benötigt, ist aber in keinem Repo verfügbar.

Lösung:
Ich habe hier schon einen anderen Beitrag zur manuellen Installation von Java verfasst, dieser ist hiermit ungültig und sollte NICHT MEHR VERWENDET WERDEN!!

Um die Dinge der Installation rückgängig zu machen, empfiehlt sich die Ausführung folgender Befehle als root

Achtung, hier wird die 64bit Version genutzt! Für 32bit müssen die Pfade (amd64 –> i386) entsprechend angepasst werden!


update-alternatives --remove java /usr/lib/jvm/java-7-oracle/bin/java
update-alternatives --remove javac /usr/lib/jvm/java-7-oracle/bin/javac
update-alternatives --remove javaws /usr/lib/jvm/java-7-oracle/bin/javaws
update-alternatives --remove javadoc /usr/lib/jvm/java-7-oracle/bin/javadoc
update-alternatives --remove javah /usr/lib/jvm/java-7-oracle/bin/javah
update-alternatives --remove javap /usr/lib/jvm/java-7-oracle/bin/javap
update-alternatives --remove java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm
update-alternatives --remove jvisualvm /usr/lib/jvm/java-7-oracle/bin/jvisualvm
update-alternatives --remove policytool /usr/lib/jvm/java-7-oracle/jre/bin/policytool
update-alternatives --remove ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel
update-alternatives --remove iceweasel-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove firefox-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove mozilla-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove midbrowser-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove iceape-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-addons-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so

Im Anschluss sollte das aktuellste, verfügbare Paket java-package installiert werden

apt-get install java-package

Ich habe die Debian Backports eingebunden (Howto) und habe daher zusätzlich folgenden apt-get Schalter genutzt.
-t wheezy-backport
Nun ist das Tool make-jpkg bereitgestellt, mit welchem künftig das Installationspaket / Update generiert werden wird! =)

Zuerst lädt mal auf der Java-Webseite das aktuelle Paket für die verwendete Architekture (i386/amd64) herunter. Dann führt man als User (!! Wichtig, als root wirds mit Fehler enden !!)

make-jpkg jdk-7u51-linux-x64.tar.gz

aus.

Am Ende erhält man daraus ein Paket, in meinem Fall oracle-java7-jdk_7u51_amd64.deb
Dieses kann als root wie gewohnt installiert werden!

dpkg -i oracle-java7-jdk_7u51_amd64.deb

Im Anschluss sollte man sich vergewissern, welche Applikationen denn für die Bereitstellung von „java“ noch installiert sind. Diese kann man eigentlich alle Deinstallieren sofern keine Abhängkeit zu anderen Paketen besteht.
update-alternatives --list java zeigt die installiert-/registrierten Binaries. Welchem zu deinstallierendem Debian Paket die jeweilige Binary gehört, kann mit „dpkg -S“ rausgefunden werden.

Hier ein Beispiel:

user@host:~$ update-alternatives --list java
/usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
user@host:~$ dpkg -S /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
oracle-java7-jdk: /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java

Ergebnis: oracle-java7-jdk wäre nun ein Ergebnis – aber das ist in diesem Fall auch gut so! 😉

Repository für Debianpakete

Problem.
Ich habe Debianpakete und möchte diese Debiankonform auf einem Server hosten

Lösung:
Für diesen Zweck hat Debian das Pakete „reprepro“, der Debian Repository Manager

apt-get install reprepro

reprepro Projektseite

Hier das kurze Manual des Befehls „reprepro“

reprepro - Produce and Manage a Debian package repository

options:
-h, --help: Show this help
-i --ignore : Ignore errors of type .
--keepunreferencedfiles: Do not delete files no longer needed.
--delete: Delete included files if reasonable.
-b, --basedir

: Base directory
--outdir
: Set pool and dists base directory
--distdir
: Override dists directory.
--dbdir
: Directory to place the database in.
--listdir
: Directory to place downloaded lists in.
--confdir
: Directory to search configuration in.
--logdir
: Directory to put requeted log files in.
--methodir
: Use instead of /usr/lib/apt/methods/
-S, --section
: Force include* to set section.
-P, --priority : Force include* to set priority.
-C, --component : Add,list or delete only in component.
-A, --architecture : Add,list or delete only to architecture.
-T, --type : Add,list or delete only type (dsc,deb,udeb).

actions (selection, for more see manpage):
dumpreferences: Print all saved references
dumpunreferenced: Print registered files without reference
deleteunreferenced: Delete and forget all unreferenced files
checkpool: Check if all files in the pool are still in proper shape.
check []
Check for all needed files to be registered properly.
export []
Force (re)generation of Packages.gz/Packages/Sources.gz/Release
update []
Update the given distributions from the configured sources.
remove Remove the given package from the specified distribution.
include <.changes-file>
Include the given upload.
includedeb <.deb-file>
Include the given binary package.
includeudeb <.udeb-file>
Include the given installer binary package.
includedsc <.dsc-file>
Include the given source package.
list List all packages by the given name occurring in the given distribution.
listfilter
List all packages in the given distribution matching the condition.
clearvanished
Remove everything no longer referenced in the distributions config file.

Damit kann man so gut wie alles erledigen. Changes werden später mit „changestool“ verwaltet.

Dann erstellen wir mal ein Repository in /srv/repos

cd /srv/repos
mkdir -p debian/{conf,dists,incoming,indices,logs,pool,project,tmp}

Dann erstell ich meine Beschreibung in conf/distributions

Origin: Your Name
Label: Your repository name
Codename: wheezy
Architectures: i386 amd64 source
Components: main
Description: Description of repository you are creating
SignWith: YOUR-KEY-ID

und die Options conf/options

ask-passphrase
basedir .

Und mein example.deb bekomme ich nun so in das Repository rein

reprepro includedeb wheezy /pfad/zum/example.deb

Nun muss der Pfad nur noch erreichbar sein, via Apache zum Beispiel