# Минимизация Gentoo

## ZmiyGorinich

У меня есть старенький винт на 240Mbю И вот подумал поставить туда Gentoo и Freevo, так сказать для мультимидийной системы...

На основном винте тоже стоит Gentoo.

Чего можно повыкидывать из stage3 чтобы места жрал поменьше? Буду ставить Gentto, XOrg, ati-drivers, Freeevo.

Можно ли совместно использовать portage из основного Gentoo? 

Может кто-то делал подобное или ткните где пожно почитать.

----------

## viy

Можно.

Я на работе держу 1 машину, которая делает emerge sync и на ней же настроен http-replicator, типа proxy для закачек. /usr/portage шарю через NFS и монтирую удаленно. Если потерпишь до завтра, я накидаю и ссылок, и свои настройки.

----------

## ZmiyGorinich

Спасибо большое...

Конечно потерплю...  :Smile: 

----------

## viy

Итак:

- системы ставил по этому howto;

- на основном серваке настроил вот этот кэш c локальным зеркалом, а также заширил дерево через NFS.

Почему и зеркало и шара? Потому что сначала настроил зеркало, потом перевел пару старых сервачков с махонькими дисками на Gentoo, там держать копию дерева стало тяжело --- сделал NFS-шару, а зеркало остановить руки не доходят.

Еще имеет смысл глянуть на distcc для распределенной компиляции. К сожалению, это не панацея, т.к. на удаленных машинах идет только компиляция, препроцессинг делается на основной. И если поставить MAKEOPTS=j5, то твоя старушка будет все время надрывно препроцессить, а монстры удаленно и без напрягу компилить. Может помочь в случае сборки C++ и где-то 3-мя параллельными потоками.

Что касается stage3 --- не думаю, что это хорошая идея. Хорошенько кастрировать Gentoo у меня не получилось, у portage имеются всякие левые кэши до кучи --- вообщем из stage3 + postgresql (да маленькая самописная прикладушка) у меня заняли ~513Mb. Тебе надо пользовать хотя бы stage2.

Я бы, на самом деле, либо использовал свои, модифицированные ebuild'ы для всех пакетов в системе, чтобы не ставить всякую лабуду, типа man-pages и *.po файлов. Но это геморройно. После установки, можно чистить все ненужное руками. Вот объемы, что у меня  после установки из stage3:

```
/ # du -sk * #самый root ;)

4800    bin

2744    boot

0       dev

1440    etc

126692  home

4652    lib

16      lost+found

12      mnt

4       opt

131265  proc

168     root

4784    sbin

0       sys

68      tmp

343816  usr

19632   var

/usr # du -sk *

28      X11R6

23404   bin

0       doc

2588    i386-pc-linux-gnu

14452   include

0       info

159536  lib

88      libexec

48      local

0       man

4       portage

2832    sbin

140828  share

4       src

0       tmp

/usr/lib # find . -type d -maxdepth 1 -exec du -sk '{}' ';'

159536  .

16      ./awk

12      ./glib

172     ./misc

4304    ./gconv

8       ./groff

35476   ./perl5

8       ./autoconf

12      ./automake

20      ./pkgconfig

8       ./ccache

16968   ./gcc-lib

8       ./distcc

96      ./gettext

39136   ./locale

12      ./gcc-config

32292   ./python2.3

1936    ./portage

972     ./grub

12      ./nfs

4160    ./postgresql

56      ./gentoolkit

/usr/share # du -sk *

...

30460   doc

...

20208   locale

...

26540   man
```

Для /usr/share оставил 3 наиболее существенных каталога.

Вот такая вот картинка...

----------

## ZmiyGorinich

спасибо.

А что можно снести в свежеустановленном Gentoo? я имею ввиду какие папки и файлы

----------

## viy

/usr/share/doc

/usr/share/man

Очень круто так  :Wink: :

```
rm -rf /
```

Можно также сделать:

```
quickpkg gcc

quickpkg linux-headers
```

и их тоже снести. В том случае, если система "готова" и ты не будешь ставить (читай, собирать) туда новые пакеты. В принципе, все, что относиться к разработке (flex, bison, auto{conf,make} и пр.), можно грохать. А на реальных серверах --- даже нужно, нас тут сейчас аудит за всякие gcc на www-серверах трясет   :Cool: 

----------

## ZmiyGorinich

А можно каким либо образом собрать какой нибудь пакет, например mplayer на одной машине а потом просто скопировать на обрезанную Gentoo но так чтобы все работало?

----------

## viy

1. quickpkg mplayer на машине, где mplayer уже стоит

или emerge -B mplayer, если mplayer не стоит;

2. берешь из ${PKGDIR}/All одной машины (где собирал) mplayer-....tbz2, кладешь туда же, но на другую машину и ставишь: emerge -k mplayer.

Только проверь, чтобы CFLAGS были "хорошими", т.к. если собирал с -march=pentium4, то на pentium2 или pentium могут быть проблемы. Также надо подумать о зависимостях, вроде GTK. Если бинарники/библиотеки будут на что-то ругаться, то нужно доставлять соотв. пакеты.

Почитай man emerge, man make.conf и этот пост

----------

## ZmiyGorinich

и еще раз спасибо...

А где вообще можно почитать о создании мини дистрибутивов Linux?

----------

## viy

Где-то я встречал доки по созданию дистрибутивов на основе Gentoo, ссылок найти не могу.

Можешь посмотреть app-admin/livecd-ng пакет, используется для подготовки LiveCD.

На самом деле, мини-дист. зависит от потребностей. В принципе, это:

* ядро кастрированное: драйверы сети и носителя для загрузки (типа floppy);

* root-партиция на носителе;

* init (типа bash-скрипта), который поднимает систему.

Ну и по мере надобности все это наворачивается: нужен диск, прикручиваешь ide/scsi дрова в целом и для твоего девайса в частности.

----------

## ZmiyGorinich

еще раз спасибо... буду разбираться

----------

