jdk1.5 + volles /usr

nihonto

Well-Known Member
Hallo Forum,

hab' gestern Abend mal versucht, das jdk1.5 zu kompilieren. Offenbar ist das /usr-Verzeichnis dafür aber zu klein.

/usr ist 3,4G groß. Nach Installation von ports und source waren davon noch etwa 680M übrig. Tja und wenn ich das jdk nun kompilieren möchte, bricht das mit einem zu 105% gefüllten /usr ab.

"make clean" hab' ich schon über die Ports laufen lassen und die nicht mehr benötigten distfiles hab' ich auch gelöscht.

Was könnte ich noch löschen? Brauche ich für's Kompilieren noch die /usr/src? Oder könnte ich das Verzeichnis vorerst löschen? Würde es helfen, die Sprachen-Verzeichnisse in /usr/ports löschen? Könnte das genug Platz schaffen?
 
Moin,

warum willst du es überhaupt kompilieren?
Lade doch einfach das Paket von der Freebsdfoundation
herunter und installiere es mit pkg_add. Oder spricht etwas dagegen?

Viel Grüße

[EDIT]Ups, hab grade erst gesehen dass es hier um OpenBSD geht. Naja vielleicht geht es ja unter OpenBSD auch.[/EDIT]
 
Zuletzt bearbeitet:
Na ja, das ist für FreeBSD! Ich hab' keine Ahnung, ob das unter OpenBSD funktioniert. Hat das schon mal jemand ausprobiert? Mit Erfolg?
 
Wenn OpenBSD keine FreeBSD Kompatibilität hat, dann tendieren die Chancen wohl eher gegen Null. Ich denke mal BrainPain hat einfach nicht gelesen, dass es um OpenBSD geht.

Unter FreeBSD kann man mit WRKDIRPREFIX in der make.conf dafür sorgen, dass Ports an einem anderen Ort (vorzugsweise mit mehr Platz) gebaut werden. Zum Beispiel auch auf einer externen Platte. Ich bin mir sicher, es gibt unter OpenBSD etwas vergleichbares. Falls du etwas findest, Lösung gleich hier mitposten.
 
Unter FreeBSD kann man mit WRKDIRPREFIX in der make.conf dafür sorgen, dass Ports an einem anderen Ort (vorzugsweise mit mehr Platz) gebaut werden. Zum Beispiel auch auf einer externen Platte. Ich bin mir sicher, es gibt unter OpenBSD etwas vergleichbares.

WRKOBJDIR, und das File dafuer ist /etc/mk.conf.
 
Ich hab das ganze mal auf OpenBSD 4.0 amd64 versucht. Die Portslist ist übrigens voll mit gescheiterten Versuchen, das JDK zu bauen. Hier meine Herangehensweise, vielleicht hilft es ja um mögliche Fehlerquellen auszugrenzen.

Code:
 Settings in sysctl.conf

kern.maxfiles: 1772 -> 3000
kern.seminfo.semmni: 10 -> 256
kern.seminfo.semmns: 60 -> 2048
kern.shminfo.shmmax: 33554432 -> 50331648

Das waren die sysctl Settings

Hier die login.conf Einstellungen:
Code:
staff:\
        :datasize-cur=infinity:\
        :datasize-max=infinity:\
        :stacksize-cur=8M:\
        :openfiles-cur=1024:\
        :maxproc-max=infinity:\
        :maxproc-cur=1024:\
        :ignorenologin:\
        :requirehome@:\
        :tc=default:

Der Output vom Port

Code:
  Linking vm...
collect2: ld terminated with signal 9 [Killed]
gmake[3]: *** [libjvm_g.so] Error 1
gmake[3]: Leaving directory
`/home/ports/devel/jdk/1.5/w-jdk-1.5.0p19-no_web/control/build/bsd-amd64/hotspot-amd64/tmp/bsd_amd64_compiler2/jvmg'
gmake[2]: *** [the_vm] Error 2
gmake[2]: Leaving directory
`/home/ports/devel/jdk/1.5/w-jdk-1.5.0p19-no_web/control/build/bsd-amd64/hotspot-amd64/tmp/bsd_amd64_compiler2/jvmg'
gmake[1]: *** [jvmg] Error 2
gmake[1]: Leaving directory
`/home/ports/devel/jdk/1.5/w-jdk-1.5.0p19-no_web/control/build/bsd-amd64/hotspot-amd64/tmp'
gmake: *** [jvmg] Error 2
*** Error code 2

Stop in /home/ports/devel/jdk/1.5 (line 1942
of /usr/ports/infrastructure/mk/bsd.port.mk).

Der Output von dbd

Code:
 ddb> trace
Debugger() at Debugger+0x5
panic() at panic+0x12a
pmap_get_ptp() at pmap_get_ptp+0x111
pmap_enter() at pmap_enter+0xd6
uvm_fault() at uvm_fault+0xd6a
trap() at trap+0x2e2
--- trap (number 6) ---
end of kernel
end trace frame: 0x1, count: -6
0x447b025a:



ddb> ps
   PID   PPID   PGRP    UID  S       FLAGS  WAIT       COMMAND
*27693  28420  23444     25  7    0x400104             sendmail
 28420  23444  23444     25  2    0x404104             sendmail
  2054  17501  17501      0  3    0x404084  nanosleep  newsyslog
 23444  10241  23444      0  3    0x404084  pause      sh
 17501   8658  17501      0  3    0x404084  pause      sh
 10241  29366  29366      0  3    0x400084  piperd     cron
  8658  29366  29366      0  3    0x400084  piperd     cron
 18841   5589  18841     25  3     0x40184  pause      sendmail
  5589   5271   5271     25  3     0x44184  pause      sendmail
  1019  13950  13950      0  3      0x4084  nanosleep  newsyslog
  5271  25509   5271      0  3      0x4084  pause      sh
 13950  26343  13950      0  3      0x4084  pause      sh
 25509  19601  19601      0  3        0x84  piperd     cron
 26343  19601  19601      0  3        0x84  piperd     cron
  6926   8445   6926      0  3      0x4086  ttyin      ksh
 26241  17446  26241      0  3      0x4086  poll       top
  8445   1495   8445   1000  3      0x4086  pause      ksh
  1495  26664  26664   1000  3       0x184  select     sshd
 26664   1374  26664      0  3      0x4084  netio      sshd
 24775  21905  24775   1000  3      0x4086  ttyin      top
 21905   3800  21905   1000  3      0x4086  pause      ksh
  3800   8124   8124   1000  3       0x184  select     sshd
  8124   1374   8124      0  3      0x4084  netio      sshd
 29366      1  29366      0  3    0x400084  select     cron
  3265  20362  20362     67  3    0x400184  netcon     httpd
 32488  20362  20362     67  3    0x400184  netcon     httpd
 21983  20362  20362     67  3    0x400184  netcon     httpd
  5358  20362  20362     67  3    0x400184  netcon     httpd
 17608  20362  20362     67  3    0x400184  netcon     httpd
 20362      1  20362     67  3    0x400184  select     httpd
 17446      1  17446      0  3      0x4086  pause      ksh
  5797      1   5797      0  3      0x4086  ttyin      getty
 21595      1  21595      0  3      0x4086  ttyin      getty
 17029      1  17029      0  3      0x4086  ttyin      getty
 10453      1  10453      0  3      0x4086  ttyin      getty
 29026      1  29026      0  3      0x4086  ttyin      getty
 19601      1  19601      0  3        0x84  select     cron
   328      1  20532      0  3      0x4086  poll       sysjail
  1374      1   1374      0  3        0x84  select     sshd
 12754   4424   4424     67  3       0x184  netcon     httpd
 28250   4424   4424     67  3       0x184  netcon     httpd
 15764   4424   4424     67  3       0x184  netcon     httpd
  1904   4424   4424     67  3       0x184  netcon     httpd
 27873   4424   4424     67  3       0x184  netcon     httpd
 23416   4424   4424     67  3       0x184  select     httpd
 13401      1  13401      0  3       0x184  select     inetd
  4424      1   4424     67  3       0x184  select     httpd
 25642      1  25642      0  3     0x40184  select     sendmail
 18043  24644  24644     83  3       0x184  poll       ntpd
 24644      1  24644      0  3        0x84  poll       ntpd
    14      0      0      0  3    0x100204  crypto_wa  crypto
    13      0      0      0  3    0x100204  aiodoned   aiodoned
    12      0      0      0  3    0x100204  syncer     update
    11      0      0      0  3    0x100204  cleaner    cleaner
     9      0      0      0  3    0x100204  reaper     reaper
     8      0      0      0  3    0x100204  pgdaemon   pagedaemon
    10      0      0      0  3    0x100204  rfwcond    raid0
     7      0      0      0  3    0x100204  pftm       pfpurge
     6      0      0      0  3    0x100204  wait       wskbd_hotkey
     5      0      0      0  3    0x100204  usbevt     usb1
     4      0      0      0  3    0x100204  usbtsk     usbtask
     3      0      0      0  3    0x100204  usbevt     usb0
     2      0      0      0  3    0x100204  timeout    sensors
     1      0      1      0  3      0x4084  wait       init
     0     -1      0      0  3     0x80204  scheduler  swapper
  9480    328  20532      0  5      0x6002             sh

Bis jetzt konnte ich keine Lösung finden. Ich habe die Weisheit sicher nicht mit Löffeln gefressen, aber nach meinen letzten Erfahrungen ist das bauen von einem JDK auf Open BSD eine echte Herausforderung. BTW mit 3.4 GB kommst Du nicht weit. Unter 10 solltest Du es nicht versuchen, es sei denn du biegst mit einem Symlink das ganze um wo Du mehr Platz hast.
 
Zehn Gigs:eek: !!!

Ich hab' der kompletten OpenBSD-Partition 10 GB gegönnt, weil ich erstmal ausprobieren wollte, wie OBSD so kommt. Ehrlich gestanden kann ich mir auch nicht vorstellen, dass eine umfangreiche aber letztlich ja auch weit verbreitete Anwendung wie Java 10 GB zum Kompilieren benötigt. Ich find's schon schräg, wenn dafür ein paar hundert MB drauf gehen.
Zumal in diesem Artikel noch davon die Rede ist, dass maximal 1 GB benötigt wird.

Aber mal so gefragt: Kann ich es dann eh knicken, jdk1.5 zu installieren (brauche eh eigentlich nur das jre-Plugin für den Firefox, sonst nix davon)? Denn wenn ich sowieso nicht genug Platz dafür habe, dann brauch' ich jetzt auch nicht groß anfangen zu basteln.
 
Zuletzt bearbeitet:
Zehn Gigs:eek: !!!

Ich hab' der kompletten OpenBSD-Partition 10 GB gegönnt, weil ich erstmal ausprobieren wollte, wie OBSD so kommt. Ehrlich gestanden kann ich mir auch nicht vorstellen, dass eine umfangreiche aber letztlich ja auch weit verbreitete Anwendung wie Java 10 GB zum Kompilieren benötigt. Ich find's schon schräg, wenn dafür ein paar hundert MB drauf gehen.
Zumal in diesem Artikel noch davon die Rede ist, dass maximal 1 GB benötigt wird.

Aber mal so gefragt: Kann ich es dann eh knicken, jdk1.5 zu installieren (brauche eh eigentlich nur das jre-Plugin für den Firefox, sonst nix davon)? Denn wenn ich sowieso nicht genug Platz dafür habe, dann brauch' ich jetzt auch nicht groß anfangen zu basteln.

Also mit einem GIG das ist meiner Meinung nach sehr sehr knapp kalkuliert. Das beste wird sowieso sein JDK auf einem separaten Buildsystem zu bauen. Für mich war das ein Unding. Gut vielleicht liegts auch am eigenen Unvermögen. ;)

Knicken würd ich nicht sagen, gut vielleicht lags auch an der amd64 Plattform und evtl. ist es auch auf i386 stressfreier, aber ich habe bis jetzt keine befriedigende Lösung gefunden.
 
Ich habe den jdk1.5-Port letztens out-of-the-box und ohne Probleme gebaut. Nachdem kaffe dem tomcat auf meinem Testsystem (K6-2 300, 256MB) nicht in endlicher Zeit zum Leben erwecken konnte, habe ich es einfach mal probiert. Meine /usr-Partition hat aber auch 6.3 GB.
Nach dem build von jdk1.5 war ich auch sehr verwundert ueber den belegten Speicherplatz (77% wenn ich mich recht erinnere). Nach dem Aufraeumen waren es dann nur noch 44%.
Und tomcat startet in jetzt immerhin in ca. 70 sec.

Aber mal zu nihontos Problem:
UNIX-Dateisysteme sind doch soooo flexibel, man kann quasi von ueberall her irgendetwas an fast beliebiger Stelle einhaengen (mounten), von externen USB-Platten, temporaer eingebaute zusaetzliche Festplatte, oder ueber Netz per NFS, u.v.a.m!
Aber was es auch sei, ich empfehle mal so 2GB, besser 3!
 
Na ja, das Problem liegt ja weniger bei den Unizes, sondern bei Sun:mad: ! Wieso machen die es so schwer, den Krempel zu installieren - zumindest für Leute, die keine Java-Anwendungen erstellen wollen, sondern nur das runtime environment installieren wollen, damit nicht jede zweite Seite im Netz möppert und der Feuerfuchs ob des fehlenden Plugins heult.

Und was lonestar schreibt:
UNIX-Dateisysteme sind doch soooo flexibel, man kann quasi von ueberall her irgendetwas an fast beliebiger Stelle einhaengen (mounten), von externen USB-Platten, temporaer eingebaute zusaetzliche Festplatte, oder ueber Netz per NFS, u.v.a.m!

Na ja, bevor ich den Aufwand treibe, lass ich lieber die Finger von Java. Mal gucken, wenn OBSD4.1 in ein paar Wochen rauskommt, schnibbel ich vielleicht der WinXP-Partition noch ein paar Gigs ab ...:rolleyes:

Falls noch jemand eine Idee hat, würde ich mich über ein Posting freuen, aber wenn ich das JRE jetzt nicht installieren kann, bricht auch nicht die Welt zusammen;) .
 
Ich habe den jdk1.5-Port letztens out-of-the-box und ohne Probleme gebaut.

bei mir gings auch ohne probleme... openbsd 4.1-current, ohne anpassung irgendwelcher login.conf oder sysctl werte.

naja, bei mir liegt das ports verzeichnis auf der home-partition, daher wär da eh genug platz gewesen. ich glaub zum bauen hat der 1GB gebraucht, bin mir aber nicht sicher, da ich das ganze per 'make update clean' gebaut hab und nicht rechtzeitig nachgemessen hab.

auf bald
oenone
 
Platzbedarf fuer i386 (nach make fake): 1.7G im WRKDIR. Dazu kommen dann noch die Distfiles, die erzeugten Packages, die benoetigten Abhaengigkeiten (z.B. kaffe) und natuerlich das installierte JDK (ca. 220M).

Solange man mit den Defaultpfaden arbeitet, wuerde ich daher irgendwas zwischen 2.5 und 3G an freiem Platz auf /usr empfehlen, um das JDK zu bauen.

Wenn auf einem anderen Dateisystem (notfalls per NFS gemountet) noch genug Platz frei ist, dann kann das per WRKOBJDIR konfiguriert werden. Ich habe z.B. WRKOBJDIR=/var/obj in /etc/mk.conf, weil /var bei mir deutlich groesser als /usr ist.

Details: bsd.port.mk(5), mk.conf(5).
 
Man kompiliert nicht nur das JDK für seine Maschine sondern auch für die Architekturen i386, i386_64, ia64 und sparc, Desweiteren werden auch für die verschiedenen Bertiebssysteme, wie Windows, *BSD, Linux und Solaris Compiler gebaut.


Das bauen hat auf meinem IBM T23 Notebook 13 Stunden gedauert und auch circa 1,7 GB an Platz verschwendet.

Es bleibt offen ob SUN für OpenBSD fertige Pakete anbietet. Da die Sun Lizenz stark von der OpenBSD Lizenz abweicht.

OpenBSD unterstützt Binäremulation von Paketen unter Linux, FreeBSD usw. Hat vielleicht jemand die Emulation des JRE bzw JDK benutzt?
 
Zurück
Oben