# Gentoo auf vServer installieren

## Kev111

Hallo,

ich habe etwas ungewöhnlicheres vor, denn ich will mein vSuse runter schmeißen und auf dem vServer (von 1Blu) ein Gentoo installieren.

Möglich muss das ganze sein, denn ich hab folgendes Howto für ein Debian gefunden:

http://www.serversupportforum.de/forum/faqs-anleitungen/6544-howto-debian-auf-vserver-installieren.html

Nun scheitert das ganze aber schon beim Bootstrappen nach dem chroot, denn die Kompillierung des Gcc bricht mit der folgenden Meldung ab:

```

bin/sh /var/tmp/portage/gcc-4.1.1/work/gcc-4.1.1/gcc/../move-if-change tmp-attrtab.c insn-attrtab.c

echo timestamp > s-attrtab

gcc   -O -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Wmissing-format-attribute    -DHAVE_CONFIG_H -I. -I. -I/var/tmp/portage/gcc-4.1.1/work/gcc-4.1.1/gcc -I/var/tmp/portage/gcc-4.1.1/work/gcc-4.1.1/gcc/. -I/var/tmp/portage/gcc-4.1.1/work/gcc-4.1.1/gcc/../include -I/var/tmp/portage/gcc-4.1.1/work/gcc-4.1.1/gcc/../libcpp/include     -c insn-attrtab.c \

  -o insn-attrtab.o

virtual memory exhausted: Cannot allocate memory

make[2]: *** [insn-attrtab.o] Error 1

make[2]: Leaving directory `/var/tmp/portage/gcc-4.1.1/work/build/gcc'

make[1]: *** [stage1_build] Error 2

make[1]: Leaving directory `/var/tmp/portage/gcc-4.1.1/work/build/gcc'

make: *** [profiledbootstrap] Error 2

!!! ERROR: sys-devel/gcc-4.1.1 failed.

Call stack:

  ebuild.sh, line 1546:   Called dyn_compile

  ebuild.sh, line 937:   Called src_compile

  ebuild.sh, line 1255:   Called toolchain_src_compile

  toolchain.eclass, line 24:   Called gcc_src_compile

  toolchain.eclass, line 1535:   Called gcc_do_make

  toolchain.eclass, line 1409:   Called die

```

Problematisch ist auch noch, dass der vServer einen 2.4.20er, also ziemlich alten, Kernel hat.

Genommen habe ich das aktuelle Stage 1 Archiv für x86, als Profil no-nptl/2.4/

Weiß jemand, woher diese Kompilierfehler kommen?

Bin für jede Hilfe dankbar!

Kevin

----------

## SinoTech

 *Kev111 wrote:*   

> 
> 
> [...]
> 
> ```
> ...

 

Du hast wohl nicht genügend RAM  :Sad: .

Cheers,

Sino

----------

## slick

 *SinoTech wrote:*   

> Du hast wohl nicht genügend RAM 

 

Hast Du eine Swappartition zur Verfügung? Wenn nein könntest Du temporär eine Datei als Swap benutzen.

```
dd if=/dev/null of=/swapfile bs=1M seek=499 count=1

mkswap -c /swapfile

swapon /swapfile
```

(ungetestet, sollte aber klappen)

----------

## Kev111

Ja, sowas in der Art dachte ich mir auch, allerdings hat das Teil mehr als nur genug Ram/Swap...

```
free -m

             total       used       free     shared    buffers     cached

Mem:          7906       7764        142          0       1295       2762

-/+ buffers/cache:       3706       4200

Swap:        16386       4033      12353

```

Allerdings sind laut Hompage nur "200 MB garantiert!".. Kann es sein, dass die einfach bei einer bestimmten Überschreitung sowas wie nen Riegel vorschieben und dem entsprechenden vServer nicht mehr Speicher geben?

Dann müsste man wohl dem gcc sagen, dass er nicht mehr Ram verbrauchen darf und das ganze dann in irgendne extra Swap auslagern muss, geht so etwas überhaupt oder denke ich jetzt total verkehr?

Einfach eine Datei als Swap hinzufügen, geht leider nicht:

```
# swapon /swapfile

swapon: /swapfile: Operation not permitted

```

----------

## SinoTech

 *Kev111 wrote:*   

> 
> 
> [...]
> 
> Allerdings sind laut Hompage nur "200 MB garantiert!".. Kann es sein, dass die einfach bei einer bestimmten Überschreitung sowas wie nen Riegel vorschieben und dem entsprechenden vServer nicht mehr Speicher geben?
> ...

 

Jep. Ein vServer ist ein virtueller Sever, der zusammen mit anderen auf einem Rechner läuft. Der rechner muss natürlich genügend RAM haben um die unterschiedlichen vServer zu versorgen, deshalb wirsd du nie den gesamten RAM nutzen dürfen. Auf der Homepage sollte dabei stehen wieviel RAM deinem vServer zur verfügung steht.

 *Kev111 wrote:*   

> 
> 
> [...]
> 
> Dann müsste man wohl dem gcc sagen, dass er nicht mehr Ram verbrauchen darf und das ganze dann in irgendne extra Swap auslagern muss, geht so etwas überhaupt oder denke ich jetzt total verkehr?
> ...

 

das macht das Betriebssystem schon für dich (vorausgesetzt du hast eine Swappartition/-Datei angelegt und ihm auch gesagt das er diese benutzen soll).

Einfach eine Datei als Swap hinzufügen, geht leider nicht:

 *Kev111 wrote:*   

> 
> 
> [...]
> 
> ```
> ...

 

Habe zwar noch nie probiert in eine Datei zu swappen, aber folgendes sollte funktionieren:

1. Datei anlegen (In diesem Fall eine Datei mit 500 MB)

```

$ /usr/bin/dd if=/dev/zero of=/swapfile bs=1M count=500

```

2. mkswap /swapfile

3. swapon /swapfile

(Beides natürlich als root)

Cheers,

Sino

----------

## Kev111

Danke für deine Hilfe!

Wie gesagt, laut Homepage hat mein vServer 200 MB ram zugesichert.

Ich habe natürlich nicht einfach eine Datei als swap hinzugefügt, sondern, wie von slick (und jetzt auch dir) angegeben, erst eine swap-Datei angelegt und die dann hinzugefügt, entschuldige, dass ich die vorigen Befehle der Einfachheit wegen im Code Abschnitt weggelassen habe.

Es kommt ja auch keine Fehlermeldung, dass man die Datei nicht als swap hinzufügen kann, sondern, dass ich keine Rechte (not permitted) dazu habe, die Datei als Swap hinzuzufügen. Ist vermutlich eine Beschränkung von den vServern, da ich ja keinen eigenen Kernel habe und mit dem des Hostsystems wohl nichts anstellen darf.

Gibts sonst noch Ideen?

Gruß,

Kevin

----------

## SinoTech

 *Kev111 wrote:*   

> Danke für deine Hilfe!
> 
> Wie gesagt, laut Homepage hat mein vServer 200 MB ram zugesichert.
> 
> Ich habe natürlich nicht einfach eine Datei als swap hinzugefügt, sondern, wie von slick (und jetzt auch dir) angegeben, erst eine swap-Datei angelegt und die dann hinzugefügt, entschuldige, dass ich die vorigen Befehle der Einfachheit wegen im Code Abschnitt weggelassen habe.
> ...

 

Ups .. mein Fehler. Hatte den Post irgendwie übersehen  :Sad: 

 *Kev111 wrote:*   

> 
> 
> [...]
> 
> Es kommt ja auch keine Fehlermeldung, dass man die Datei nicht als swap hinzufügen kann, sondern, dass ich keine Rechte (not permitted) dazu habe, die Datei als Swap hinzuzufügen. Ist vermutlich eine Beschränkung von den vServern, da ich ja keinen eigenen Kernel habe und mit dem des Hostsystems wohl nichts anstellen darf.
> ...

 

Hmm ... doch, einen eigenen Kernel solltest du meines wissens nach haben. Du hast, auch wenn es nur ein vServer ist, ein eigenes System, nur das du nicht die ganze Hardware benutzen darfst, sondern eben nur einen Teil davon (und der Rest ist für die übrigen Systeme die dort auf dem Rechner laufen).

 *Kev111 wrote:*   

> 
> 
> [...]
> 
> Gibts sonst noch Ideen?
> ...

 

Zur Zeit leider nicht  :Sad: 

Cheers,

Sino

EDIT:

Hab selbst mal grad probiert eine Datei als swap zu benutzen und bei mir funktioniert es ohne Probleme ... liegt evtl. wirklich daran das du auf einem vServer bist ... obwohl ich eigentlich immer dachte das man da auf seinem eigenen System alles machen darf  :Sad:  (Hatte aber auch noch nie einen vServer).

EDIT 2:

Slicks Vorschlag funktioniert so aber sowieso nicht:

```

lagrange sinotech # dd if=/dev/null of=/swapfile bs=1M seek=499 count=1

     0+0 records in

     0+0 records out

     0 bytes (0 B) copied, 4.6e-05 seconds, 0.0 kB/s

lagrange sinotech # mkswap -c /swapfile

     Setting up swapspace version 1, size = 523235 kB

     no label, UUID=9ac2f4b4-d141-4d29-829d-03e9eeb99152

lagrange sinotech # swapon /swapfile

     swapon: Skipping file /swapfile - it appears to have holes.

```

Man darf also bei "dd" kein "seek=..." benutzen. Hat aber leider nichts mit dem Permission-Problem zu tun.

----------

## Kev111

Ja, stimmt, hatte mich schon gewundert, dass die Image so schnell erzeugt wurde, 

habe eben auch zur Sicherheit nochmal deinen Vorschlag ausprobiert, hat aber leider auch nicht geklappt -> selbe Fehlermeldung.

Hoffe, dass jemand noch einen Vorschlag hat, wie das ganze erfolgreich verläuft.

----------

## moe

Swapfiles zu benutzen kann bei VServern ausgeschlossen werden, und bei dir wird das der Fall sein.

Eine Arbeitsspeicherbegrenzung gibt es bei den VServer-Implementierungen die ich kenne im Grunde nicht, wohl aber eine Begrenzung der VMPages die ein VServer nutzen darf. Die Kompilierung von gcc wird da mit Sicherheit über die Grenzen gehen, und da du kein Swap nutzen kannst, kannst du es vergessen.

Du kannst dir natürlich in einem anderen Gentoo-System den gcc als binary package bauen lassen:

```
# gleiche CFlags wie auf VServer einstellen, USE evtl. anpassen

emerge -B gcc

# auf dem Vserver wirds dann installiert mit

emerge -G gcc
```

Sollte dein System schon die gleichen CFLags wie der VServer gehabt haben, kannst du auch (sofern du keine anderen USE-Flags auf dem vserver setzen wolltest) deinen schon kompilierten gcc zum binary package verwandeln:

```
quickpkg '=sys-devel/gcc-4.1.1'
```

Die Binärpakete liegen in PKGDIR, welches in der make.conf gesetzt wird, standard ist /usr/portage/packages.

Aber ich weiß nicht obs sinnvoll ist Gentoo weiter auf dem Vserver zu benutzen, vermutlich wirst du das Problem nicht nur beim gcc sondern bei allen grösseren Paketen bekommen. Sinnvoll isses dann eigentlich nur, wenn du auf einem Rechner/VServer bei dir zu Hause die Pakete generell baust, und auf dem eigentlichen VServer nur Binärpakete installierst.

HTH Maurice

----------

