Rootmanual:Snabbmanual för Gentoo Linux: Skillnad mellan sidversioner

Från Lysators datorhandbok, den ultimata referensen.
Hoppa till navigering Hoppa till sök
(Lista på folk som kan saker.)
 
(9 mellanliggande sidversioner av 5 användare visas inte)
Rad 1: Rad 1:
[[Kategori:Rootmanual|Snabbmanual, Gentoo Linux]]
== Rötter som redan kan Gentoo Linux ==
== Rötter som redan kan Gentoo Linux ==
* Karl-Johan Karlsson, [[User:Creideiki|Creideiki]].
* Karl-Johan Karlsson, [[User:Creideiki|Creideiki]].
* Simon Elén, [[User:Simon|Simon]].
* Simon Elén, [[User:Simon|Simon]].
* Thomas Bellman, [[User:Bellman|Bellman]].
* Thomas Bellman, [[User:Bellman|Bellman]].
* Per Cederqvist, [[User:Ceder|ceder]].
* Karl Mikaelsson, [[User:Derfian|derfian]].
* Patrik Nilsson, [[User:Blambi|blambi]].
* Joakim Tosteberg, [[User:joakim_tosteberg|joakim_tosteberg]].


== Mer information ==
== Mer information ==
Rad 11: Rad 16:


== Program ur distributionen ==
== Program ur distributionen ==
Se även [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1 Gentoo Handbook - A Portage Introduction].
Se även [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1 Gentoo Handbook - A Portage Introduction] och <tt>man portage</tt>.

Paketsystemet i Gentoo heter Portage, och det verktyg som främst används för det heter <tt>emerge</tt>. Program namnges som <tt>[&lt;versionsoperator&gt;][&lt;kategori&gt;/]&lt;paketnamn&gt;[-&lt;version&gt;]</tt>. Anges ingen version används den nyaste som finns tillgänglig. Exempel:

; <tt>emacs</tt> : Högsta versionen av Emacs, just nu <tt>=app-editors/emacs-22.1-r3</tt>.
; <tt>app-emacs/lyskom-elisp-client</tt> : Högsta versionen av elispklienten för LysKOM, just nu <tt>=app-emacs/lyskom-elisp-client-0.48</tt>.
; <tt>&lt;x11-base/xorg-x11-7</tt> : Högsta versionen av X.org som är lägre än 7, just nu <tt>=x11-base/xorg-x11-6.9.0</tt>.
; <tt>&gt;=x11-libs/gtk+-2</tt> : Senaste GTK+ 2.x, just nu <tt>=x11-libs/gtk+-2.8.13</tt>.

Vill man titta närmare på hur kompilering och installation går till finns filerna som specificerar detta, vilka är vanliga Bash-script, under <tt>/usr/portage/&lt;kategori&gt;/&lt;paketnamn&gt;/&lt;paketnamn&gt;-&lt;version&gt;.ebuild</tt>.

Paketträdet uppdateras en gång om dygnet med rsync.

=== Hitta ===

Alla Gentoo-maskiner bör köra <tt>eix</tt>, en indexbaserad sökmotor till skillnad från Portages inbyggda, <tt>emerge -s</tt>, som söker direkt på disk och därför är riktigt långsam. Indexet uppdateras en gång om dygnet, precis efter att paketträdet har uppdaterats.

Substrängssökningar i paketnamn görs med:

eix <namn>

<tt>eix</tt> kan även söka i paketbeskrivningar, med reguljära uttryck, per kategori, mm. mm.. Se man-sidan.


=== Installera ===
=== Installera ===

emerge -av &lt;paket1&gt; [&lt;paket2&gt; ...]

<tt>-a</tt> eller <tt>--ask</tt> gör att man först får upp en lista på vad som kommer att installeras och sedan en fråga om att fortsätta. Utan flaggan får man ingen lista, utan Portage börjar arbeta direkt. Med flaggan <tt>-p</tt> eller <tt>--pretend</tt> får man bara listan.

<tt>-v</tt> eller <tt>--verbose</tt> gör att listan även innehåller vilka USE-flaggor som påverkar varje paket. USE-flaggor slår oftast av eller på olika delar av koden, vilket kan användas för att undvika att dra in extra beroenden. Tjänsteservrar kan t.ex. använda <tt>USE="-X"</tt> för att inte få något X-stöd. USE-flaggor sätts på tre ställen:

* <tt>/etc/make.conf</tt> för systemglobala flaggor (t.ex. <tt>-X</tt> för att stänga av allt valfritt X-stöd).
* <tt>/etc/portage/package.use</tt> för paketlokala flaggor (t.ex. <tt>userlocales</tt> för <tt>sys-libs/glibc</tt> så man slipper bygga alla locales som finns i hela världen)
* Miljövariabeln <tt>USE</tt>, som inte rekommenderas eftersom flaggorna inte kommer att sparas till nästa gång paketet uppgraderas.

Vill man se beroendeträdet lite bättre, t.ex. för att hitta vilket paket det är som kräver X trots att man inte vill ha det, kan man även använda flaggan <tt>-t</tt> eller <tt>--tree</tt>.

Om du redan har byggt binärer av ett paket, t.ex. i [[StarCraft]]-klustret, använd flaggorna <tt>--usepkgonly</tt>, för att bara installera från binärpaket och ge felmeddelanden om binärpaket saknas, eller <tt>--usepkg</tt>, för att använda binärpaket om de finns och annars bygga från källkod.

=== Uppgradera ===
=== Uppgradera ===

emerge -auv [-O|-D] &lt;paket1&gt; [&lt;paket2&gt; ...]

<tt>-u</tt> eller <tt>--update</tt> uppgraderar de angivna paketen och alla deras direkta beroenden till senaste tillgängliga version. <tt>-O</tt> eller <tt>--nodeps</tt> uppgraderar bara de angivna paketen utan några beroenden, medan <tt>-D</tt> eller <tt>--deep</tt> uppgraderar hela trädet rotat i de angivna paketen.

Om några konfigurationsfiler uppdaterats (det kommer en varning om det) kör man <tt>dispatch-conf</tt> för att göra diff, merge, ersätta helt eller behålla den gamla.

Om någon dynamisk länkning gått sönder av någon uppdatering finns programmet <tt>revdep-rebuild</tt> för att kontrollera och åtgärda detta. Kör

revdep-rebuild -p

Studera utdata, ser det rätt ut så kör

revdep-rebuild

annars är den kommandorad till <tt>emerge</tt> som <tt>revdep-rebuild -p</tt> spottar ur sig ofta ett bra ställe att börja på.

=== Avinstallera ===

emerge -cav &lt;paket1&gt; [&lt;paket2&gt; ...]

<tt>-c</tt> eller <tt>--clean</tt> tar bort ett paket, men inte dess beroenden. Om man vill ta bort paket som blivit onödiga eftersom ingenting beror på dem längre kör man

emerge -av --depclean

och studerar utdata väldigt noggrant innan man fortsätter.

=== Automatiska säkerhetsuppdateringar ===
=== Automatiska säkerhetsuppdateringar ===

Kommer från distributionen vilken jul som helst. Tills dess finns följande Bash-snutt:

<pre>( glsa-check -nl affected 2>/dev/null ; glsa-check -p affected ) \
| mail -e -s "Icke-applicerade uppdateringar: `hostname`" root@lysator.liu.se</pre>

Det körs lämpligtvis från <tt>cron</tt> efter att paketträdet har uppdaterats, eftersom information om säkerhetsuppdateringar kommer med paketträdet.


== Tjänster ==
== Tjänster ==
Rad 21: Rad 96:


=== Starta och stoppa ===
=== Starta och stoppa ===

/etc/init.d/&lt;tjänst&gt; [start|stop|status]

Att köra startscriptet utan argument ger en kort hjälptext, argumentet <tt>help</tt> ger en mycket längre hjälptext.

Om initsystemet tror att en tjänst är startad, men <tt>stop</tt> inte fungerar (t.ex. om processen är död) kan man ändra initsystemets uppfattning med

/etc/init.d/&lt;tjänst&gt; zap

=== Runlevels ===
=== Runlevels ===

Runlevels har symboliska namn, inte siffror. Som standard körs först <tt>boot</tt> och sedan antingen <tt>default</tt> eller <tt>nonetwork</tt> beroende på bootargument. Nya tjänster som du inte vet var de skall vara skall vara i <tt>default</tt>.

Programmen <tt>rc-update</tt> och <tt>rc-status</tt> används för att hantera runlevels. Lägga till en tjänst:

rc-update add &lt;tjänst&gt; &lt;runlevel&gt;

Ta bort en tjänst:

rc-update del &lt;tjänst&gt; &lt;runlevel&gt;

Lista status för alla tjänster i en runlevel:

rc-status &lt;runlevel&gt;

Lista status för alla tjänster, även sådana som inte startas automatiskt:

rc-status --all

=== Miljövariabler ===
=== Miljövariabler ===

Miljövariabler och annat som behövs för att kontrollera uppstarten av en tjänst sätts i filen

/etc/conf.d/&lt;tjänst&gt;


== Konfigurera nätverk ==
== Konfigurera nätverk ==

Se även [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=4 Gentoo Handbook - Gentoo Network Configuration].

Nätverket konfigureras i filen <tt>/etc/conf.d/net</tt> och kontrolleras med scripten <tt>/etc/init.d/net.&lt;interface&gt;</tt>. En himla massa inställningar kan göras (<tt>/etc/conf.d/net.example</tt> har allihop), men en vanlig statisk IP-adress ser ut så här:

<pre>config_eth0=( "192.168.0.2/24" )
routes_eth0=( "default via 192.168.0.1" )</pre>

och för DHCP:

<pre>config_eth0=( "dhcp" )
dhcp_eth0="release nodns nontp nonis"</pre>


== Användares standardmiljö ==
== Användares standardmiljö ==
Se även [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=5 Gentoo Handbook - Environment Variables].
Se även [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=5 Gentoo Handbook - Environment Variables].

Paket kan installera filer i <tt>/etc/env.d/</tt>, vilka packas ihop till standardmiljön när man kör <tt>env-update</tt>. Vissa system, t.ex. GCC, Java och Motif, kan ha flera installerade konfigurationer mellan vilka man kan byta vilken som är standard. Detta görs för närvarande med ett

&lt;system&gt;-config

script per paket, men kommer i framtiden att ersättas med det centraliserade

eselect &lt;system&gt;


== Installera ett nytt system ==
== Installera ett nytt system ==
Det finns ett [http://www.gentoo.org/proj/en/releng/installer/ installationsprogram], men det är helt nytt och inte särskilt färdigt, så du behöver kunna den manuella installationen också.
Gentoo har ännu inget installationsprogram, så du får göra allt manuellt.


Om du behöver läsa det här vill du antagligen inte installera ett nytt Gentoo-system. Prata med någon root som redan kan Gentoo eller, om du känner att du har en helg över, börja läsa [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1 installationsmanualen].
Om du behöver läsa det här vill du antagligen inte installera ett nytt Gentoo-system. Prata med någon root som redan kan Gentoo eller, om du känner att du har en helg över, börja läsa [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1 installationsmanualen].

Nuvarande version från 25 april 2008 kl. 05.31

Rötter som redan kan Gentoo Linux

Mer information

  • Den officiella handboken innehåller installationsanvisningar och introduktioner till de flesta koncept i systemet.
  • Dokumentationsprojektet har mycket övrig dokumentation, mest HOWTO:s för specifika problem.
  • Den inofficiella wikin har stora mängder användarskriven information. Konstiga specialfall och "bleeding edge"-program är oftast dokumenterade här.
  • Forumen kan man alltid söka i för att se om någon annan haft samma problem tidigare.

Program ur distributionen

Se även Gentoo Handbook - A Portage Introduction och man portage.

Paketsystemet i Gentoo heter Portage, och det verktyg som främst används för det heter emerge. Program namnges som [<versionsoperator>][<kategori>/]<paketnamn>[-<version>]. Anges ingen version används den nyaste som finns tillgänglig. Exempel:

emacs
Högsta versionen av Emacs, just nu =app-editors/emacs-22.1-r3.
app-emacs/lyskom-elisp-client
Högsta versionen av elispklienten för LysKOM, just nu =app-emacs/lyskom-elisp-client-0.48.
<x11-base/xorg-x11-7
Högsta versionen av X.org som är lägre än 7, just nu =x11-base/xorg-x11-6.9.0.
>=x11-libs/gtk+-2
Senaste GTK+ 2.x, just nu =x11-libs/gtk+-2.8.13.

Vill man titta närmare på hur kompilering och installation går till finns filerna som specificerar detta, vilka är vanliga Bash-script, under /usr/portage/<kategori>/<paketnamn>/<paketnamn>-<version>.ebuild.

Paketträdet uppdateras en gång om dygnet med rsync.

Hitta

Alla Gentoo-maskiner bör köra eix, en indexbaserad sökmotor till skillnad från Portages inbyggda, emerge -s, som söker direkt på disk och därför är riktigt långsam. Indexet uppdateras en gång om dygnet, precis efter att paketträdet har uppdaterats.

Substrängssökningar i paketnamn görs med:

eix <namn>

eix kan även söka i paketbeskrivningar, med reguljära uttryck, per kategori, mm. mm.. Se man-sidan.

Installera

emerge -av <paket1> [<paket2> ...]

-a eller --ask gör att man först får upp en lista på vad som kommer att installeras och sedan en fråga om att fortsätta. Utan flaggan får man ingen lista, utan Portage börjar arbeta direkt. Med flaggan -p eller --pretend får man bara listan.

-v eller --verbose gör att listan även innehåller vilka USE-flaggor som påverkar varje paket. USE-flaggor slår oftast av eller på olika delar av koden, vilket kan användas för att undvika att dra in extra beroenden. Tjänsteservrar kan t.ex. använda USE="-X" för att inte få något X-stöd. USE-flaggor sätts på tre ställen:

  • /etc/make.conf för systemglobala flaggor (t.ex. -X för att stänga av allt valfritt X-stöd).
  • /etc/portage/package.use för paketlokala flaggor (t.ex. userlocales för sys-libs/glibc så man slipper bygga alla locales som finns i hela världen)
  • Miljövariabeln USE, som inte rekommenderas eftersom flaggorna inte kommer att sparas till nästa gång paketet uppgraderas.

Vill man se beroendeträdet lite bättre, t.ex. för att hitta vilket paket det är som kräver X trots att man inte vill ha det, kan man även använda flaggan -t eller --tree.

Om du redan har byggt binärer av ett paket, t.ex. i StarCraft-klustret, använd flaggorna --usepkgonly, för att bara installera från binärpaket och ge felmeddelanden om binärpaket saknas, eller --usepkg, för att använda binärpaket om de finns och annars bygga från källkod.

Uppgradera

emerge -auv [-O|-D] <paket1> [<paket2> ...]

-u eller --update uppgraderar de angivna paketen och alla deras direkta beroenden till senaste tillgängliga version. -O eller --nodeps uppgraderar bara de angivna paketen utan några beroenden, medan -D eller --deep uppgraderar hela trädet rotat i de angivna paketen.

Om några konfigurationsfiler uppdaterats (det kommer en varning om det) kör man dispatch-conf för att göra diff, merge, ersätta helt eller behålla den gamla.

Om någon dynamisk länkning gått sönder av någon uppdatering finns programmet revdep-rebuild för att kontrollera och åtgärda detta. Kör

revdep-rebuild -p

Studera utdata, ser det rätt ut så kör

revdep-rebuild

annars är den kommandorad till emerge som revdep-rebuild -p spottar ur sig ofta ett bra ställe att börja på.

Avinstallera

emerge -cav <paket1> [<paket2> ...]

-c eller --clean tar bort ett paket, men inte dess beroenden. Om man vill ta bort paket som blivit onödiga eftersom ingenting beror på dem längre kör man

emerge -av --depclean

och studerar utdata väldigt noggrant innan man fortsätter.

Automatiska säkerhetsuppdateringar

Kommer från distributionen vilken jul som helst. Tills dess finns följande Bash-snutt:

( glsa-check -nl affected 2>/dev/null ; glsa-check -p affected ) \
    | mail -e -s "Icke-applicerade uppdateringar: `hostname`" root@lysator.liu.se

Det körs lämpligtvis från cron efter att paketträdet har uppdaterats, eftersom information om säkerhetsuppdateringar kommer med paketträdet.

Tjänster

Se även Gentoo Handbook - Initscripts.

Starta och stoppa

/etc/init.d/<tjänst> [start|stop|status]

Att köra startscriptet utan argument ger en kort hjälptext, argumentet help ger en mycket längre hjälptext.

Om initsystemet tror att en tjänst är startad, men stop inte fungerar (t.ex. om processen är död) kan man ändra initsystemets uppfattning med

/etc/init.d/<tjänst> zap

Runlevels

Runlevels har symboliska namn, inte siffror. Som standard körs först boot och sedan antingen default eller nonetwork beroende på bootargument. Nya tjänster som du inte vet var de skall vara skall vara i default.

Programmen rc-update och rc-status används för att hantera runlevels. Lägga till en tjänst:

rc-update add <tjänst> <runlevel>

Ta bort en tjänst:

rc-update del <tjänst> <runlevel>

Lista status för alla tjänster i en runlevel:

rc-status <runlevel>

Lista status för alla tjänster, även sådana som inte startas automatiskt:

rc-status --all

Miljövariabler

Miljövariabler och annat som behövs för att kontrollera uppstarten av en tjänst sätts i filen

/etc/conf.d/<tjänst>

Konfigurera nätverk

Se även Gentoo Handbook - Gentoo Network Configuration.

Nätverket konfigureras i filen /etc/conf.d/net och kontrolleras med scripten /etc/init.d/net.<interface>. En himla massa inställningar kan göras (/etc/conf.d/net.example har allihop), men en vanlig statisk IP-adress ser ut så här:

config_eth0=( "192.168.0.2/24" )
routes_eth0=( "default via 192.168.0.1" )

och för DHCP:

config_eth0=( "dhcp" )
dhcp_eth0="release nodns nontp nonis"

Användares standardmiljö

Se även Gentoo Handbook - Environment Variables.

Paket kan installera filer i /etc/env.d/, vilka packas ihop till standardmiljön när man kör env-update. Vissa system, t.ex. GCC, Java och Motif, kan ha flera installerade konfigurationer mellan vilka man kan byta vilken som är standard. Detta görs för närvarande med ett

<system>-config

script per paket, men kommer i framtiden att ersättas med det centraliserade

eselect <system>

Installera ett nytt system

Det finns ett installationsprogram, men det är helt nytt och inte särskilt färdigt, så du behöver kunna den manuella installationen också.

Om du behöver läsa det här vill du antagligen inte installera ett nytt Gentoo-system. Prata med någon root som redan kan Gentoo eller, om du känner att du har en helg över, börja läsa installationsmanualen.