Riprendo dal precedente thread
[Guida] Installiamo Gentoo: Parte 1 alla fine della quale avevamo editato fstab, dato un nome al nostro PC e rimandato un po' di operazioni previste dal manuale che non ci occorrono ora, perchè stiamo operando via chroot da un'altra installazione.
La rete è OK?
Si? Allora è giunto il momento della fatidica...
.
EMERSIONEEE!!!
Per prima cosa, ci serve un logger di sistema. Abbiamo diverse alternative tra cui scegliere. Come l'ho capita io, syslog-ng è, al momento, il più evoluto, perciò la mia scelta è syslog-ng.
Per installare il logger di sistema scelto, si deve emergerlo e aggiungerlo al runlevel di default con rc-update.
Poi il manuale suggerisce di emergere anche un demone cron. Scegliamo vixie-cron.
Per poter indicizzare i file del sistema, in modo da poterli localizzare rapidamente usando locate, ci occorre anche mlocate.
Per la rete installiamo dhcpcd e ppp
Tutti questi comandi li possiamo anche sintetizzare così:
Codice: Seleziona tutto
emerge syslog-ng vixie-cron mlocate dhcpcd ppp
rc-update add syslog-ng default && rc-update add vixie-cron default
Io ho provato e non ha funzionato. Poi, provando i comandi singolarmente, ho scoperto che le difficoltà le dava solo l'emersione di ppp. Quindi, omettendo ppp, la sintesi quì sopra avrebbe funzionato.
Il tempo occorso al PC per scaricare ed installare syslog-ng vixie-cron mlocate dhcpcd è stato complessivamente di circa 5 minuti.
Tempo operazione: 00:05 Tempo Totale: 00:27
Il tentativo di emergere ppp mi ha dato l'output seguente. Cogliamo l'occasione per leggerlo insieme e vedere come rimediare all'intoppo.
* Last emerge --sync was Sat Nov 3 22:35:01 2012.
Calculating dependencies... done!
[ebuild N ] net-dialup/ppp-2.4.5-r1 USE="gtk ipv6 pam -activefilter -atm -dhcp -eap-tls -radius" 709 kB
[nomerge ] dev-java/java-config-2.1.11-r3
[nomerge ] virtual/jre-1.6.0
[nomerge ] virtual/jdk-1.6.0-r1
[nomerge ] dev-java/icedtea-bin-6.1.11.5 USE="X alsa cups -cjk -doc -examples -nsplugin -source"
[nomerge ] net-print/cups-1.5.2-r4 USE="X acl filters java jpeg ldap pam png ssl threads tiff usb -avahi -dbus -debug -gnutls -kerberos -perl -python (-selinux) -slp -static-libs -xinetd" LINGUAS="-da -de -es -eu -fi -fr -id -it -ja -ko -nl -no -pl -pt -pt_BR -ru -sv -zh -zh_TW"
[nomerge ] media-libs/tiff-4.0.2-r1 USE="cxx jpeg zlib -jbig -lzma -static-libs"
[nomerge ] virtual/jpeg-0 USE="-static-libs"
[ebuild N ] media-libs/libjpeg-turbo-1.2.1 USE="java -static-libs" 1,728 kB
[ebuild N ] virtual/jre-1.6.0 0 kB
[ebuild N ] virtual/jdk-1.6.0-r1 0 kB
[ebuild N ] dev-java/icedtea-bin-6.1.11.5 USE="X alsa cups -cjk -doc -examples -nsplugin -source" 32,208 kB
[ebuild N ] net-print/foomatic-filters-4.0.16 USE="cups -dbus" 261 kB
[ebuild N ] app-text/ghostscript-gpl-9.05-r1 USE="X cups gtk -bindist -dbus -djvu -idn -jpeg2k -static-libs" LINGUAS="-ja -ko -zh_CN -zh_TW" 27,622 kB
[ebuild N ] x11-libs/gtk+-2.24.12 USE="cups introspection (-aqua) -debug -examples -test -vim-syntax -xinerama" 12,946 kB
[ebuild N ] net-print/cups-1.5.2-r4 USE="X acl filters java jpeg ldap pam png ssl threads tiff usb -avahi -dbus -debug -gnutls -kerberos -perl -python (-selinux) -slp -static-libs -xinetd" LINGUAS="-da -de -es -eu -fi -fr -id -it -ja -ko -nl -no -pl -pt -pt_BR -ru -sv -zh -zh_TW" 9,407 kB
[ebuild N ] app-text/poppler-0.20.4 USE="cairo cxx introspection jpeg lcms png tiff utils -cjk -curl -debug -doc -jpeg2k -qt4" 2,104 kB
[ebuild N ] x11-libs/gdk-pixbuf-2.26.4 USE="X introspection jpeg tiff -debug -doc -jpeg2k -test" 1,154 kB
[ebuild N ] media-libs/lcms-2.3 USE="jpeg tiff zlib -doc -static-libs -test" 4,358 kB
[ebuild N ] media-libs/tiff-4.0.2-r1 USE="cxx jpeg zlib -jbig -lzma -static-libs" 1,976 kB
[ebuild N ] virtual/jpeg-0 USE="-static-libs" 0 kB
Total: 14 packages (14 new), Size of downloads: 94,469 kB
* Error: circular dependencies:
(virtual/jpeg-0::gentoo, ebuild scheduled for merge) depends on
(media-libs/libjpeg-turbo-1.2.1::gentoo, ebuild scheduled for merge) (runtime)
(virtual/jdk-1.6.0-r1::gentoo, ebuild scheduled for merge) (buildtime)
(dev-java/icedtea-bin-6.1.11.5::gentoo, ebuild scheduled for merge) (runtime)
(virtual/jpeg-0::gentoo, ebuild scheduled for merge) (runtime)
* Note that circular dependencies can often be avoided by temporarily
* disabling USE flags that trigger optional dependencies.
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
dev-libs/glib:2
(dev-libs/glib-2.32.4-r1::gentoo, ebuild scheduled for merge) pulled in by
>=dev-libs/glib-2.31.22:2 required by (dev-libs/gobject-introspection-1.32.1::gentoo, ebuild scheduled for merge)
(and 3 more with the same problem)
(dev-libs/glib-2.30.3::gentoo, installed) pulled in by
(no parents that aren't satisfied by other packages in this slot)
dev-libs/libxml2:2
(dev-libs/libxml2-2.8.0-r2::gentoo, installed) pulled in by
(no parents that aren't satisfied by other packages in this slot)
(dev-libs/libxml2-2.8.0-r2::gentoo, ebuild scheduled for merge) pulled in by
dev-libs/libxml2[python] required by (media-libs/mesa-8.0.4-r1::gentoo, ebuild scheduled for merge)
It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously. If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously.
For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.
Le righe che incominciano con le parentesi quadre con dentro scritto [ebuild N] descrivono i singoli pacchetti di cui abbiamo richiesto l'emersione con il comando emerge ppp.
Sono 14 pacchetti, per un totale di 94MB.
Ma... Ecco che ci viene indicato un problema di dipendenze circolari tra 4 di questi pacchetti:
Codice: Seleziona tutto
* Error: circular dependencies:
(virtual/jpeg-0::gentoo, ebuild scheduled for merge) depends on
(media-libs/libjpeg-turbo-1.2.1::gentoo, ebuild scheduled for merge) (runtime)
(virtual/jdk-1.6.0-r1::gentoo, ebuild scheduled for merge) (buildtime)
(dev-java/icedtea-bin-6.1.11.5::gentoo, ebuild scheduled for merge) (runtime)
(virtual/jpeg-0::gentoo, ebuild scheduled for merge) (runtime)
Significa che il primo dipende dal secondo che dipende dal terzo che dipende dal quarto che dipende... Indovinate da chi? Dal primo.
Dopo viene descritto qualche altro problema, o possibile problema che non mi è chiaro, ma che riguarda due pacchetti di librerie: glib e libxml2.
Infine, viene dato il suggerimento di ricorrere a package.mask come possibile soluzione.
Ho fatto qualche prova con package.mask, ma non le riporto perchè non sono servite a niente.
Ho emerso individualmente e con successo glib e poi libxml2.
Tempo operazione: 00:16:20 Tempo Totale: 00:43:20
Considerata la pausa di 6 mesi, possono esserci aggiornamenti importanti di pacchetti già installati. Proviamo ad eseguire un aggiornamento completo del sistema. Prima di eseguirlo, aggiorniamo il solo portage e poi emergiamo Gentoolkit, il quale va emerso prima di un aggiornamento completo del sistema perchè, dopo questo, è bene fare una pulizia che richiede appunto di avere già installato gentoolkit.
Non riporto i tempi di aggiornamento. Gentoolkit mi ha richiesto solo un minuto e mezzo.
Tempo operazione: 00:01:30 Tempo Totale: 00:44:50
Proviamo un aggiornamento completo del sistema.
Codice: Seleziona tutto
emerge --update --deep --with-bdeps=y --newuse world
L'output segnala che il nostro profilo è vecchio e deprecato (che schifooo!!!
) e suggerisce di cambiarlo:
Codice: Seleziona tutto
eselect profile set default/linux/amd64/13.0/desktop
eseguito il suggerimento, riproviamo. Ancora problemi di dipendenze circolari. Visto così, rimandiamo l'aggiornamento completo e riproviamo ad emergere ppp. Il problema delle dipendenze circolari è sempre lo stesso. Proviamo ad inserire in make.conf tutte le USE riportate nelle righe dei pacchetti che iniziano con [ebuild N ]
e riproviamo. Nessun progresso.
Allora proviamo ad emergere i pacchetti in dipendenza circolare uno per volta.
scopriamo che questo pacchetto è mascherato perchè per AMD è disponibile solo in versione testing.
Codice: Seleziona tutto
!!! All ebuilds that could satisfy "icedtea" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-java/icedtea-7.2.3.8::gentoo (masked by: ~amd64 keyword)
- dev-java/icedtea-6.1.12.4::gentoo (masked by: ~amd64 keyword)
Per abilitare portage ad impiegare questo pacchetto anche se in versione testing, aggiungiamo la categoria ed il nome del pacchetto:
nel file /etc/portage/package.accept_keywords.
Anche così ci sono problemi. Proviamo con un altro pacchetto. Perchè non proprio il primo "virtual/jpeg-0"?
Questo viene emerso in 1 minuto.
Tempo operazione: 00:01:00 Tempo Totale: 00:45:50
Riproviamo ad emergere ppp e parte l'emersione di ben 72 pacchetti.
Tempo operazione: 02:00:00 Tempo Totale: 02:45:50
Ora riproviamo con l'aggiornamento completo. Questa volta è partito e, con la pausa di 6 mesi fatta, ha trovato parecchio da aggiornare, 201 pacchetti. Il tempo di questa operazione non lo includo, perchè è stata resa necessaria dalla lunga interruzione. Diversamente, l'avremmo fatta comunque, però alla fine e trovando molto meno da aggiornare. Perciò questa situazione falserà comunque il calcolo del tempo macchina per l'installazione di Gentoo. Mi spiace.
L'aggiornamento non è riuscito fino in fondo. Si è interrotto al pacchetto 154:
Codice: Seleziona tutto
>>> Emerging (154 of 201) net-nds/openldap-2.4.30
* openldap-2.4.30.tgz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ]
* rfc2307bis.schema-20100722 SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ]
* ERROR: net-nds/openldap-2.4.30 failed (setup phase):
* To build the ldapc++ library you must emerge openldap with sasl support
Inoltre, ci suggerisce ed eseguiamo:
Codice: Seleziona tutto
chmod +x /etc/portage/postsync.d/q-reinitialize
rc-update add dbus default
revdep-rebuild --library '/usr/lib64/libmpc.so.2' && rm '/usr/lib64/libmpc.so.2'
Dall'output traiamo il suggerimento di ridare revdep-rebuild per sicurezza.
Eseguiamo. Tutto a posto.
Proviamo a ripetere l'aggiornamento completo.
Questa volta compare subito e solo il problema con openldap.
Siccome prima ha prodotto anche l'indicazione:
Codice: Seleziona tutto
IMPORTANT: config file '/etc/locale.gen' needs updating.
Diamo il comando
(alla richiesta di selezione: -5)
così aggiorna:
Ora vediamo come sbloccare il problema con Openldap.
Proviamo a dare il comando:
Emerge 2 pacchetti in 8m
Tempo operazione: 00:08:00 Tempo Totale: 02:53:50
Riprovando l'aggiornamento completo, nonostante openldap sia stato già emerso, tenta nuovamente di emergerlo per aggiornarlo alla stessa versione. Questo è certamente un bug.
Non ci resta che aggirare il problema mascherando openldap. Apriamo:
ed inseriamo:
Riproviamo l'aggiornamento. Questa volta lo completa. Quindi ridiamo:
(alla richiesta di selezione: -5)
Dopo questa mole notevole di aggiornamento, è meglio ripulire il sistema di eventuali dipendenze orfane e verificare che sia tutto a posto.
Quindi diamo:
Sembra che sia andato tutto bene.
Tempo operazione: 00:03:10 Tempo Totale: 02:57:00
Ora possiamo riprendere il percorso principale da dove eravamo arrivati, prima di questo aggiornamento generale. Avevamo installato ppp, come suggerito al punto 9.f.6.2 del manuale.
Ci serve un bootloader. Per la piattaforma AMD64, Gentoo Linux fornisce GRUB e LILO.
A questo punto, nelle mie prove è sorto un problema: Non sono riuscito ad emergere nè Grub, nè lilo.
La causa sembra essere che il profilo attivo del compilatore gcc è invalido.
Quindi, ho indagato su come si fa per rimediare. Sembra facile. Basta chiedere al sistema:
Per avere la lista dei profili disponibili. La risposta è stata:
Codice: Seleziona tutto
darkstar / # gcc-config -l
* gcc-config: Active gcc profile is invalid!
[1] x86_64-pc-linux-gnu-4.6.3
Quello elencato, dovrebbe essere l'unica alternativa a quello attualmente attivo, che è invalido.
Per cambiarlo diamo:
Oppure, diamo :
Il risultato dovrebbe essere lo stesso.
Poi diamo:
per renderlo attivo già nella shell che stiamo usando.
Torniamo alla questione del bootloader. Avendo già Lilo in Salix, scegliamo di usarlo anche per Gentoo.
Tempo operazione: 00:01:30 Tempo Totale: 02:58:30
In fondo agli output espressi dal nostro terminale, dovremmo aver già notato più volte che ci sono delle notizie in attesa di essere lette. Facciamo una pausa per vedere queste notizie.
Quelle più vecchie del 2012 non dovrebbero riguardarci.
Poi veniamo invitati a compiere una migrazione:
Codice: Seleziona tutto
emerge --deselect media-libs/jpeg
emerge --oneshot media-libs/libjpeg-turbo
Tempo operazione: 00:05:30 Tempo Totale: 03:04:00
Ci sono varie altre news, ma non mi sembra che suggeriscano qualcosa di rilevante per questa installazione.
Work in progres:
Osservazioni, suggerimenti, critiche, per migliorare questa piccola guida e renderla meglio utilizzabile sono molto graditi.