TIPP Portage áthelyezése

A Gentoo Linux Wiki wikiből

Tartalomjegyzék

[szerkesztés] Portage áthelyezése

Gyakran előfordulhat az a szituáció, hogy a rendszerünk telepítésekor meglehetősen szőrösszívűen állítgattuk be a partíciók méretét és kezd a root ( / ) partíciónk mérete lecsökkenni, egyre gyakrabban kapunk "No space left on device" hibaüzetnet fordítás közben, és még folytathatnám. Ez a hogyan arról szól, hogyan helyezhetjük át az egész Portage-t és a hozzá tartozó funkciók könyvtárait mindenestül másik partícióra, átláthatóbb könyvtárszerkezettel, ezáltal elérhetjük, hogy...

  • felszabadítjuk a Portage által használt helyet a root partíción, amely akár 2.5-3.0GB is lehet! (distfiles és packages nélkül kb 170-200MB)
  • nagyobb tmp terület, bár ezt külön is állíthatjuk
  • külön merevlemezre pakolva az emerge folyamatok felgyorsulhatnak
  • könyebb adminisztrálhatóság az átláthatóbb könyvtárszerkezetetnek köszönhetően

[szerkesztés] Célok

Egy főkönyvtárba, azon belül pedig külön könyvtárakba rakjuk a portage-t, az emerge folyamatok naplófájljait, a distfiles-t, a packages-t, az overlay-eket és a ccache-t.

[szerkesztés] Új hely felkészítése

Első feladatunk, hogy előkészítsük az új helyet ahova az egész kerülni fog. Célszerű bár nem muszály ezt a területet egy külön merevlemezen kijelölni. A példában használt partíciónk a /mnt/gentoo_portage csatolási pontba lesz becsatolva. Hozzuk létre a kívánt könyvtárszerkezetet.

Parancs: Könyvtárak létrehozása

#könyvtárstruktúra létrehozása
mkdir -p /mnt/gentoo_portage/ccache /mnt/gentoo/distfiles \ 
/mnt/gentoo/packages  /mnt/gentoo/portage  /mnt/gentoo/overlay  /mnt/gentoo/log

Hozzuk létre a szimbolikus linkeket a distfiles és a packages számára:

Parancs: Szimlinkek létrehozása

cd /mnt/gentoo_portage
ln -s portage/distfiles distfiles
ln -s portage/packages packages

Ha elkészültünk akkor a következő struktúrát kell, hogy kapjuk.

Példa:

könyvtár struktúra

mnt/gentoo_portage/
 -- ccache
 -- distfiles -> portage/distfiles/
 -- log
 -- overlay
 -- packages -> portage/packages/
 -- portage
 -- tmp

TIPP: A fenti kimenetet például a következő paranccsal kaphatjuk.

Parancs: Könyvtárstruktúra listázása a tree paranccsal

tree -dF -L 1 mnt/gentoo_portage

[szerkesztés] Költöztetés

Mostanra megvan a kívánt könyvtárstruktúra, már csak bekell népesíteni.

Figyelmeztetés:

Fontos, hogy a következő műveletek végzése közben egyetlen portage műveletet se hajtsunk végre. Ne fusson se emerge, se semmi!

[szerkesztés] Környezeti változók beállítása

Ehhez a make.conf fájlt kell szerkesztenünk az alábbiaknak megfelelően.

File: /etc/make.conf
 
  PORTDIR="/mnt/gentoo_portage/portage"
  PKGDIR="${PORTDIR}/packages"
  PORTDIR_OVERLAY="/mnt/gentoo_portage/overlay"
  DISTDIR="${PORTDIR}/distfiles"
  PORTAGE_TMPDIR="/mnt/gentoo_portage/tmp"
  CCACHE_DIR="/mnt/gentoo_portage/ccache"
  PORTAGE_ELOG_CLASSES="warn error log"
  PORTAGE_ELOG_SYSTEM="save"
  PORT_LOGDIR="/mnt/gentoo_portage/log"
  

A fenti konfignál én megtartottam azt, hogy a PKDIR és a DISTDIR megmaradjon a portage könyvtáron belül, de a példából mostanra már látható, hogy ezeket akár külön is lehet rakni. Ez esetben természetesen a fent említett szimlinkek létrehozása nem szükséges. Továbbá fontos megjegyezni, hogy ez a konfig feltételezi, hogy a FEATURES változóban benne van a ccache és telepítve is van.

[szerkesztés] Fájlok áthelyezése

Jöhet az utolsó előtti lépés. :) Másoljuk át a fájlokat az új helyükre. Javaslom, hogy ne áthelyezéssel próbálkozzunk elsőre, hanem másolással és utána az eredeti törlésével.

Parancs: Fájlok átmásolása

cp -vR /usr/portage /mnt/gentoo/portage
cp -vR /usr/local/portage /mnt/gentoo/overlay
cp -vR /var/log/portage /mnt/gentoo/log

Amennyiben van ccache-ünk is úgy értelemszerűen azokat is másoljuk át az új helyre. A /var/tmp/portage tartalmát akár törölhetjük is ha van, felesleges az átmásolásával törődni. Ha mindennel megvagyunk akkor még ellenőrizzük, hogy a vaktában létrehozott szimbolikus linkek is a megfelelő helyre mutatnak.

[szerkesztés] Profil frissítése

Mostmár majdnem készek vagyunk. Egy fontos dolgot hagytunk még ki, ez pedig a profil frissítése. Én a példámban a 32bites, mezei x86 profilt használom, de értelemszerűen mindenki alkalmazza az általa használt profilra.

Parancs: Profil beállítása

cd /etc
rm make.profile
ln -s /mnt/gentoo_portage/portage/profiles/default-linux/x86/2007.0/ make.profile

[szerkesztés] Utolsó simítások

Apró megjegyzés. Ha futtatunk screen-t, akkor előbb lépjünk ki belőle és úgy futtassuk az env-update-t!

Parancs: Környezet frissítése

env-update && source /etc/profile

Készen vagyunk! :)

Személyes eszközök