# gentoo/linux abspecken

## mci_nano

Hi

Vielleicht schon von vielen unternommen, will ich nun doch eine ordentliche Lösung und mein eigenes Vorgehen verstehen  :Wink: 

Ich habe einen Rechner(i586), der mit Hilfe einer CF Karte und 64MB RAM läuft. Soweit so gut, nun soll Linux drauf, damit ich ihn als Router verwenden kann. Dass ich das ganze hinterher so weit modifiziere, dass das System oft geschrieben Dateien auf einer RAMFS liegen hat, lass ich hier erstmal dahingestellt.

Fakt ist, wenn ich ein Gentoo System baue ist es erstmal viel zu groß für die CF Karte(256MB). Bauen kann ich es ja auf meinem Desktop als chroot oder in einer VM, egal. Nun dachte ich mir, lasse ich verschiedene Verzeichnisse weg (wer braucht schon einen C compiler oder man pages?!  :Very Happy: ).

Ok, aber das ist eine unheimliche frikel Arbeit bis man auf der gewünschten Größe ist. Ausserdem hat diese Speziallösung keine Gültigkeit für andere Systeme oder Anwender des "skripts". Noch schlimmer wird es, wenn ich sage welche Dateien/Verzeichnisse hinzugehören. Woher soll ich schon wissen welche Dateien das Programm XY jemals benötigt?!

Klar, die Lösungen funktionieren: Durch weglassen sinkt irgendwann die Distribution auf die gewünschte Größe ab, Zugehörigkeit von Dateien zum Programm kann ich über die portage tools und ldd ermitteln(zumidnest die meisten).

Ich frage mich jetzt: Gibt es einfacherer Möglichkeiten?

Einige Artikel hab ich zum Thema schon durch. Diese zielten allerdings meist auf Speziallösungen ab. Ein par Experimente hab ich auch schon durch. Ich wills meist nur etwas anders machen als diverse Howtos.

Andere Ideen?

Welche Suchworte für g**gle ratet ihr mir?

Ich suche quasie sowas wie downstrip linux  :Very Happy:  Oder wie bringe ich mein linux auf ein verdammt kleines/schwaches System...

----------

## Knieper

Nunja, ich denke Gentoo ist in diesem Fall nicht die beste Wahl. Vlt. solltest Du Dich an Linux From Scratch und Damn Small Linux orientieren und nur die Software installieren, die Du wirklich benoetigst. Versuche auch im Netz Alternativen zu Programmen zu finden. Also zB. ein fgetty statt agetty, uclibc/dietlibc statt glibc, minit statt sysvinit, ash statt bash...

----------

## hoschi

Den GCC weg zu lassen ist keine gute Idee, da bei Gentoo der GCC immer vorhanden ist beinhaltet er auch die LIBSTDC++. Die LIBSTDC++ ist noch Teil des GCC (im Gegensatz zur GLIBC), da C++ sozusagen noch "jung" ist und vor 2010 noch ein neuer Standard verabschiedet werden soll. Debian fuehrt die LIBSTC++ dagegen seperat.

Fuer deinen Zweck ist Gentoo-Linux an sich aber einfach die falsche Distribution, ein nacktes Gentoo umfasst lediglich mit ein paar Shell-Programmen immer noch 500 MB  :Wink: 

Nimm lieber DSL - Damn Small Linux (der Name sagt glaube ich alles...)

----------

## pablo_supertux

Ich habe schon Gentoo auf 150 MB, höchstens 200 MB mit vim und compiler suites.

Der Router an sich braucht kein GCC, das kann man schon weglassen.

Was ich machen, um mein gentoo so klein zu halten:

In FEATURES nodoc, noman, noinfo eintragen.

/usr/share/man, /usr/share/info /usr/share/doc komplett löschen.

/etc/localtime kein Symlink auf /usr/share/zoneinfo/... sondern die entsprechende Datei, somit kann ich sogar /usr/share/zoneinfo/ löschen

in USE -nls aufnehmen und bis auf die lokale Settings /usr/share/locale/ komplett weg.

Damit haben wir schon man gut 150 MB oder so gesparrt (wenn man von einem Standard Stage3 ausgeht)

/usr/src, /usr/portage, /var/tmp/portage/, /var/lib/portage/, /var/db/, /var/cache, /usr/lib/gcc nur zur Compilezeit zur Verfügung stellen (mit mount -o bind), weil sie sich in einer externe Festplatte befinden. Die werden nur beim Bauen vom System benötigt, das laufende System braucht sie nicht, sprich der Router braucht all diese Sachen gar nicht zu haben.

Es spricht auch nichts dagegen immer mit -minimal als USE Flag zu kompilieren. Damit hast du ein System, welches auf 256 MB passt und wenn du noch kleiner haben willst, könntest du ein uclibc stage nehmen und uclibc statt glibc nehmen, dann wird das System noch kleiner.

----------

## ocin

evtl noch anstatt glibc uclibc und die distfiles immer löschen

----------

## mci_nano

Danke, ich denke ich werd mir doch mal anschauen, wie man ein LFS baut. Mehr als dazulernen kann ich ja nicht  :Wink: 

Auch wenn ichs mit Gentoo schon irgendwie hinkriegen würde, reizt mich jetzt doch der Gedanke an ein selbstgebautes System auf dem wirklich nur das draif ist, was drauf soll  :Smile: 

----------

## doedel

Das geht mit Gentoo aber auch  :Wink: 

```

mkdir /mnt/mini

ROOT="/mnt/mini" emerge $wasduhabenwillst (ash, mc....)

```

Denk aber daran, uclibc ist sehr buggy und z.B. der MC lässt sich nicht damit compilieren.

Was auf jeden Fall nach /mnt/mini dann muss ist die Xlibc.

----------

## TheSmallOne

Wie kommt es eigentlich dazu, dass Gentoo so viel größer ist, als zum Beispiel Linux from Scratch?

Der grundsätzliche Ansatz ist doch eigentlich der gleiche, nämlich ein relativ kleines Basissystem komplett aus den Sourcen zu bauen.

----------

## doedel

Wieso denn? Die entpackte Stage3 hat doch auch nicht mehr wie 300mb. gcc, glibc und sowas sind Speichermonster, aber sonst is ja alles relativ schmal gehalten.

----------

## Knieper

 *TheSmallOne wrote:*   

> Wie kommt es eigentlich dazu, dass Gentoo so viel größer ist, als zum Beispiel Linux from Scratch?

 

Bash und Python sollte man nicht deinstallieren, viele Compilerflags sind ueber die ebuilds nicht verfuegbar, kleine Alternativen fehlen in Portage... Wenn man das alles umgeht, hat man eigentl. kein Gentoo mehr und kann gleich auf LFS umsteigen.

----------

## ichbinsisyphos

es gibt von gentoo auch embedded installs mit ulibc und so. also wenn es wirklich sein muss, dann bekomm man gentoo auch auf minimalem platz zum laufen. dazu gibts offizielle dokus und wiki-einträge

----------

## Jocmoc

btw: http://de.gentoo-wiki.com/Mini-Gentoo

hier ist beschrieben wie man ein Gentoo-System auf minimal 8MB reduzieren kann, ist natürlich nach wünschen und anforderungen aufzustocken.

(nur für den Fall das du da noch nicht nachgeschaut hast...)

----------

## STiGMaTa_ch

 *mci_nano wrote:*   

> Ich habe einen Rechner(i586), der mit Hilfe einer CF Karte und 64MB RAM läuft. Soweit so gut, nun soll Linux drauf, damit ich ihn als Router verwenden kann.

 

Gibt es doch schon alles irgendwie...

http://openisp.net/gnap/

http://k240.humlak.cz/

Kannst ja diese Distris nehmen und als Basis verwenden.

Lieber Gruss

STiGMaTa

----------

