Ca:HOWTO: The Complete Portage Guide

From Sabayon Wiki
Jump to: navigation, search
i18n: ca de en es fr

Notes prèvies

Q.Què és una terminal (shell) ?

A. Una terminal és una interfície de línia d'ordres, coneguda pels usuaris de MS Windows com a The Command Prompt. (La terminal de MS Windows' és terrible).

Per accedir a una terminal premeu Alt-F2 (La drecera de la línia d'execució d'ordres) i escriviu konsole, gnome-terminal o xterm segons les vostres preferències.

Per accedir a una terminal com a usuari root podeu usar su (ordre de canviar d'usuari) escrivint su - (el símbol - significa canviar les característiques d'usuari i el directori home) o premeu Alt-f2 i escriviu kdesu nomdelprograma o gnomesu nomdelprograma on nomdelprograma és konsole, gnome-terminal, xterm o qualsevol altre. Tècnicament la terminal és l'entorn de la línia d'ordres, i no simplement el seu frontal. La terminal més comuna per Linux és BASH (Bourne Again Shell)


Q. Què és tot això de fer Alt-F2 ?

A. És l'eina més útil coneguda pels usuaris novells de Sabayon Linux. Us permet executar tot tipus de programes i ordres simplement escrivint el nom de l'ordre i prement enter. A més, Alt-F2 és la drecera global (Funciona en KDE, Gnome, XFCE, etc) i també és accessible fent clic amb el botó dret de la rata i seleccionant executa ordre des del menú.


Q. Perquè useu && en les vostres instruccions ?

A. Per què és la manera més senzilla d'executar múltiples ordres en una línia.


Q. Què necessito per seguir aquesta guia ?

A. Necessiteu una instal•lació de Sabayon Linux o de Gentoo Linux, un cervell que funcioni (no li funciona a tothom :), vista i l'habilitat de llegir, pensar i aprendre.


La guia comença aquí

Q. Com puc instal•lar programari a Sabayon ?

Resposta curta: En una terminal escriviu emerge <nomdelpaquet> on nomdelpaquet és el nom del paquet que voleu instal•lar.

Resposta llarga: Això depèn del mètode que useu o del programari que voleu instal•lar. NORMALMENT US ESTIMAREU MÉS OBLIDAR AQUESTS DOS MÈTODES!!!

Programari de Windows

Abans que res, si voleu instal•lar programari de Windows usant WINE escriviu wine /camí/to/setuporinstallerexe.exe en una terminal (on camí correspon al camí de l'instal•lador o fitxer que voleu, noteu que la terminal no discrimina els espais, i que es representen com a "\ ")


Instal•lació des de fonts

Noteu que les instruccions que trobareu a sota són genèriques. Si voleu exemples específics o exemples d'ordres de la terminal amb totes les opcions correctes useu el buscador Google :), o el vostre cervell...

  1. Podeu descarregar un paquet font usant wget des de la terminal, amb firefox o d'altre maneres.
  2. Podeu extreure el paquet font, que acostuma a estar en format tar.bz2 o tar.gz usant tar en una terminal o usant Ark o File-roller
  3. Podeu moure el directori que heu extret a /usr/local/src using cp -R en una terminal root o usant Konqueror o Nautilus com a root
  4. Llegiu el fitxer README i/o INSTALL en el directori del paquet extret a /usr/local/src
  5. Podeu canviar el directori escrivint cd /usr/local/src/nomdelpaquet (on nomdelpaquet és el nom del paquet)
  6. A menys que s'indiqui en els fitxers README i/o INSTALL si existeix un script de configuració, escriviu ./configure' en cas contrari, creeu-ne un (normalment és requerit per instal•lacions de svn o cvs) escrivint autoconf (si autoconf us dona errors, escriviu libtoolize && autoreconf, i

llavors rm configure && autoconf)

  1. A menys que s'indiquin el contrari en els fitxers README i/o INSTALL, si existeix un makefile escriviu make && make install
  2. Fet

Per acabar, la millor manera i més senzilla per Sabayon és a partir de Entropy/equo i per Gentoo/Sabayon és Portage/emerge.


Portage

Portage és un sistema de gestió de fitxers que usen tant Gentoo com Sabayon per instal•lar, desinstal•lar i mantenir programari en el vostre sistema. El sistema Portage consisteix en l'arbre de portage que és una col•lecció de ebuilds, l'ordre emerge instal•la ebuilds, les fitxers de configuració i les eines third party de portage / emerge.

L'arbre de Portage és una còpia local (ubicada a /usr/portage) del repositori central de programari. Quan executeu l'ordre emerge per instal•lar paquets, aquests es cerquen en l'arbre de portage. Si hi ha algun nom coincident, es calculen les dependències, i el codi font del paquet i les dependències es descarreguen, es compilen i s'instal•len en el vostre sistema.


Ebuild

Un ebuild es un script de bash en un format específic, utilitzat per Gentoo & Sabayon, que dóna una sèrie d'instruccions per aparèixer, a través de emerge, com una interfície de paquets de programari. Un ebuild és un sistema automàtic per optimitzar el procés de compilació i instal•lació de programari.

Cada versió de cada aplicació o paquet en l'arbre del repositori té un script ebuild específic.

Emerge usa aquest script ebuild per executar les seves tasques: calcular les dependències del programari desitjat per instal•lar, descarregar els fitxers requerits (i apedaçar-los, si cal), configurar el paquet (basat en les preferències de USE flag), compilar, i fer una instal•lació en un sandbox (a /var/tmp/portage/[nom de l'ebuild]/image/ per defecte). Si els passos anteriors s'acaben satisfactòriament, els fitxers d'instal•lació es combinen en el sistema en viu, fora del sandbox.

Tot i que molts ebuilds que es troben en el repositori de Gentoo Portage compilen programes des del codi font, també hi ha altres ebuilds que instal•len paquets binaris, ebuilds que instal•len només documentació o dades com tipus de lletres, i ebuilds bàsics anomenats "metabuilds" que només activen la instal•lació d'altres ebuilds (com passa amb els metabuils de GNOME o KDE).

Per instruccions sobre com construir ebuilds, podeu veure [http://devmanual.gentoo.org/quickstart/index.html Gentoo Development Guide: Quickstart Ebuild Guide] i Gentoo Development Guide.


Emerge

L'eina de la línia d'ordres emerge és el cor de Portage. L'ordre és complexa amb moltes opcions i modificadors. Està escrita en Python. La utilitat més important per accedir a les característiques de Portage des de la línia d'ordres és l'eina emerge.

El programa calcula i manega dependències, executa ebuilds i manté l'arbre de Portage local i la base de dades dels paquets instal•lats. Els paràmetres de compilació que usen els ebuilds poden canviar-se a partir de la variable d'entorn CFLAGS, basada en les especificacions de l'ordinador individual i els desitjos d'optimització de l'usuari. La utilitat emerge executa ebuilds en un entorn sandbox. D'aquesta manera el sistema està protegit del programari que executa l'ebuild i els binaris resultants només es combinen quan ha tingut èxit la instal•lació del build i la sandbox.

El que emerge instal•la com a dependències queda afectat pels paràmetres dels USE Flags. Els Use Flags decideixen característiques opcionals que s'inclouran quan s'instal•li o s'actualitzi una aplicació. L'ordre emerge també es pot utilitzar per descarregar i instal•lar paquets binaris, tot i que hi ha qui creu que l'ús de paquets binaris no permet tots els avantatges del poder de Portage, ja que suposa disminuir el temps de compilació a costa d'acceptar les opcions normalment disponibles.

Executant tasques amb emerge

Podeu barrejar i trobar la majoria dels flags o commutadors a baix. Emerge funciona com a root. Podeu trobar més informació en les pàgines man.


Sinconitzant portage / Actualitzant l'arbre de Portage

emerge --sync

Aquesta ordre actualitza i reconstrueix l'arbre local de portage a partir de la sincronització amb els servidors en línia. Heu d'executar aquesta ordre abans d'instal•lar o actualitzar paquets, ja que això us assegura que feu servir la informació més recent. Sovint també voldreu executar

layman -S

per actualitzar tots els overlays. (Podeu llegir més sobre overlays a #Overlays & layman)

Instal•lar paquets

# emerge <nom_del_paquet> 
o 
# emerge =categoria_del_paquet/nom_del_paquet-versió

(=categoria_del_paquet/nom_del_paquet-versió es coneix com a un àtom de paquet vàlid)

Això instal•la o actualitza / degrada un paquet.

# emerge -u <nom_del_paquet>
o 
# emerge -u =categoria_del_paquet/nom_del_paquet-versió

Això actualitza a la millor versió del paquet, no necessariament la última.

Hi ha més de 11000 paquets a Portage, a baix hi ha uns pocs àtoms de paquets vàlids que poden ser instal•lats.

  • www-client/mozilla-firefox-2.0.0.1-r2
  • net-fs/samba-3.0.24
  • media-video/mplayer-1.0_rc1-r2
  • app-emulation/wine-0.9.30
  • media-gfx/inkscape-0.44.1

Podeu consultar els paquets a

http://packages.gentoo.org/ (oficial)

o

http://gentoo-portage.com/

També podeu només especificar el nom del paquet (per exemple: mozilla-firefox, samba, mplayer, wine o inkscape)

Esborrar paquets

# emerge -C <nom_del_paquet> 
o
# emerge -C =categoria_del_paquet/nom_del_paquet-versió

Això esborra un paquet.

# emerge -c <nom_del_paquet>
o  
# emerge -c =categoria_del_paquet/nom_del_paquet-versió

Això neteja / esborra un paquet i les dependències innecessàries.

# emerge --depclean

Això esborra tots els paquets que no estan llistats en els fitxers de sistema o en els fitxers world.

Canviant a xerraire el portage

# emerge -v <nom_del_paquet>

Això fa portage xerraire.

# emerge -q <nom_del_paquet>

Això fa que portage no mostri text.

Cercant

# emerge -s <nom_del_paquet>

Això cerca el paquet de nom nom_del_paquet.

# emerge -S <nom_del_paquet>

Això cerca un paquet de nom nom_del_paquet o el terme de cerca en les descripcions del paquet.

Preguntant i pretenent

# emerge -a <nom_del_paquet>

Això fa que emerge demani confirmació de cada pas a l'usuari.

# emerge -p <nom_del_paquet>

Això fa que emerge pretengui fer l'acció següent, però no la fa. És útil combinat amb el flag -v. La clau de la informació que ens dona es mostra a continuació. N = nou (no instal•lat) S = nova instal•lació SLOT (versió side-by-side) U = actualitzant (a una altra versió) D = degradant (la versió anterior sembla millor) R = reinstal•lant (fent emerge de la mateixa versió) F = restricció de descàrrega (s'ha de descarregar manualment) f = restricció de descàrrega (ja s'ha descarregat) B = bloquejat per un paquet ja instal•lat

Altres opcions interessants

# emerge -1 <nom_del_paquet> 

no afegeix el/s paquet/s en el fitxer world (llista de paquets que voleu tenir instal•lats) en instal•lar-los.

# emerge -o <nom_del_paquet>

no fa emerge del/s paquet/s, sinó només de les seves dependències

# emerge -f <nom_del_paquet>

no instal•la o desempaqueta el/s paquet/s que voleu. Només descarrega la font o el paquet binari.

# emerge --resume

segueix amb l'última operació, que és útil si l'heu aturat a mitja operació mitjançant ctrl -c o heu matat el procés.

Grans actualitzacions i recompilacions

# emerge world
o
# emerge -e world

Això reinstal•la / actualitza tot el que hi ha en el fitxer world / llista de paquets que voleu instal•lats. Això és PERILLÓS si es fa sense una planificació adequada, emmascarat de paquets (veieu és avall) i els flags / commutadors correctes. La millor manera de fer un emerge a world, és mirar els Com Es Fa en els fòrums de Gentoo o el Wiki de Gentoo, i bona sort.

# emerge system
o
# emerge -e system

Això reinstal•la / actualitza tot el sistema de paquets cor. Això no és tan perillós com un emerge world, però ta,bé requereix una planificació correcta.

Overlays i layman

Els overlays de Portage són arbres de portage personalitzats que contenen paquets que no es troben o que són diferents dels que hi ha en l'arbre principal.

Els overlays es poden afegir manualment canviant PORTDIR_OVERLAY="" a /etc/make.conf, però a Sabayon preferim usar layman (gestor de overlays).

# layman -l

Llista tots els overlays.

# layman -S

Això sincronitza tots els overlays instal•lats. (com emerge --sync)

# layman -s <nom_de_overlay>

Això sincronitza l'overlay amb el nom_de_overlay.

# layman -a <overlayname>

Això afegeix / instal•la un overlay. Pot ser que hagueu d'editar /etc/make.conf per acabar.

# layman -d <overlayname>

Això esborra / desinstal•la un overlay. Pot ser que hagueu d'editar /etc/make.conf per acabar.

Per sincronitzar l'overlay de Sabayon feu:

# layman -s sabayon

Si voleu cercar paquets en TOTS els overlays, feu:

# emerge eix && update-eix && update-eix-remote update

Ara podeu usar eix <paraula_clau> per buscar paraula_clau a tots els overlays (podeu usar l'opció -e per una búsqueda exacta). Llavors podeu usar layman per afegir l'overlay necessari. Recordeu executar update-eix && update-eix-remote update de tant en tant.

Per més paquets 3rd party i overlays veieu http://gentoo-wiki.com/HOWTO_Installing_3rd_Party_Ebuilds .

GUI per Portage

La interfície gràfica per portage per defecte que porta Sabayon és Portato, perquè és la que té un desenvolupament més actiu. No obstant, també existeixen altres interfícies com Kuroo i Porthole en KDE i Gnome respectivament.

Paquets amb emmascarat fort, /etc/portage/package.mask i /etc/portage/package.unmask

Paquets emmascarats / emmascarats fortament són paquets a portage que tenen instal•lació bloquejada per varies raons.

(=categoria_del_paquet/nom_del_paquet-versió) Això és el que es coneix com a "àtom" de paquet vàlid. Sempre que rebeu un error en els àtoms de paquets de Portage pot existir alguna d'aquestes possibilitats:

  1. Heu escrit un àtom de paquets incorrecte. Comproveu el que heu escrit i torneu a fer emerge.
  2. L'àtom només existeix en l'overlay de SabayonLinux i heu de fer #layman -S per actualitzar l'overlay i tornar a fer emerge del paquet
  3. L'àtom del paquet que intenteu instal•lar no existeix.

Exemples d'àtoms de paquets vàlids que heu de tenir emmascarats o desemmascarats

  • =x11-drivers/xf86-video-i128-1.2.1
  • =sys-apps/dbus-1.0.2
  • <=dev-libs/dbus-glib-0.73

Per emmascarar un paquet, afegiu una línia pel paquet que contingui =àtom_de_paquet_vàlid o >àtom_de_paquet_vàlid o <àtom_de_paquet_vàlid o >=àtom_de_paquet_vàlid o <=àtom_de_paquet_vàlid depenent de quina versió d'aquest paquet voleu emmascarar, a /etc/portage/package.mask


Per desemmascarar un paquet, afegiu una línia pel paquet que contingui =àtom_de_paquet_vàlid o >àtom_de_paquet_vàlid o <àtom_de_paquet_vàlid o >=àtom_de_paquet_vàlid o <=àtom_de_paquet_vàlid depenent de quina versió d'aquest paquet voleu emmascarar, a /etc/portage/package.unmask

Els paquets s'emmascaren per diverses raons. Aquestes raons pot ser que s'expliquin en el propi portage, o pot altres usuaris us diran el perquè. Aneu en compte emmascarant i desemmascarant paquets.

Més informació a: http://gentoo-wiki.com/Masked

Missing keyword

Si portage us dona un error: "masked by: missing keyword" mentre fent emerge significa que el paquet encara no està disponible per la vostra arquitectura, com per exemple si esteu executant un x86_64 i el paquet només està disponible per "x86". Si realment necessiteu aquest paquet podeu provar: echo "category/package x86 ~x86" >> /etc/portage/package.keywords per sobrepassar el paquet en una categoria. (Nota: He usat l'inestable "~x86" ja que la resta de Sabayon funciona amb keywords inestable). Com que Gentoo està basat en codi font, hi ha una bona manera de compilar i treballar sense modificacions.

Per més informació: http://gentoo-wiki.com/Masked

/etc/portage/package.keywords

Aquest fitxer s'úsa per executar paquets inestables en sistemes estables o ebuilds que no s'han comprovat en la vostra plataforma. Aquest fitxer no és dels més importants pels usuaris de Sabayon, però el wiki de Gentoo té més informació si hi esteu interessats.

/etc/make.conf

Veieu http://gentoo-wiki.com/MAN_make.conf_5

etc-update i dispatch-conf

Aquestes eines actualitzen els fitxers de configuració després d'haver fet emerge de paquets. man etc-update i man dispatch-conf , us donarà la informació que necessiteu sobre aquests fitxers. Si teniu dubtes feu una còpia de seguretat dels vostres fitxers de configuració antics i llavors actualitzeu. Si passa alguna cosa dolenta sempre podreu restaurar les còpies dels fitxers.

revdep-rebuild, equery, eix, i més

revdep-rebuild reconstrueix paquets trencats causats per dependències inverses i llibreries trencades.

És una bona idea provar revdep-rebuild -Xp abans de revdep-rebuild -X. -X fa que s'ignori la versió específica del paquet, -p fa que es pretengui, similar al que passa amb emerge -p

revdep-rebuild porta estona i normalment implica emerges grans, però el vostre sistema hauria de funcionar correctament quan acabi.

equery i eix són eines exteses de cerca de portage, man equery i man eix us facilitaran la seva sintaxi i per més informació podeu anar al wiki de Gentoo o als fòrums de Gentoo.

Gràcies a

--Appleman1234 23:48, 15 February 2007 (PST)