[Guida] Installiamo Gentoo: Parte 2

Sistemi operativi Linux e software open source
Avatar utente
Zievatron
Messaggi: 1657
Iscritto il: mercoledì 21 dicembre 2011, 23:49

[Guida] Installiamo Gentoo: Parte 2

Messaggio da Zievatron »

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?

Codice: Seleziona tutto

ping -c 3 www.google.it
Si? Allora è giunto il momento della fatidica...

. :6 EMERSIONEEE!!! :6

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.

Codice: Seleziona tutto

emerge syslog-ng  
rc-update add syslog-ng default
Poi il manuale suggerisce di emergere anche un demone cron. Scegliamo vixie-cron.

Codice: Seleziona tutto

emerge vixie-cron  
rc-update add vixie-cron default
Per poter indicizzare i file del sistema, in modo da poterli localizzare rapidamente usando locate, ci occorre anche mlocate.

Codice: Seleziona tutto

emerge mlocate

Per la rete installiamo dhcpcd e ppp

Codice: Seleziona tutto

emerge dhcpcd 
emerge 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.
Spoiler: mostra
* 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. :asd: :oO:
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!!! xx( ) 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 ]

Codice: Seleziona tutto

nano /etc/portage/make.conf
e riproviamo. Nessun progresso.
Allora proviamo ad emergere i pacchetti in dipendenza circolare uno per volta.

Codice: Seleziona tutto

emerge icedtea
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:

Codice: Seleziona tutto

dev-java/icedtea
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"?

Codice: Seleziona tutto

emerge jpeg
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. :oO:
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. :s

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

Codice: Seleziona tutto

etc-update
(alla richiesta di selezione: -5)
così aggiorna:

Codice: Seleziona tutto

/etc/locale.gen with /etc/._cfg0000_locale.gen
Ora vediamo come sbloccare il problema con Openldap.
Proviamo a dare il comando:

Codice: Seleziona tutto

USE=sasl emerge openldap
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:

Codice: Seleziona tutto

nano /etc/portage/package.mask
ed inseriamo:

Codice: Seleziona tutto

net-nds/openldap
Riproviamo l'aggiornamento. Questa volta lo completa. Quindi ridiamo:

Codice: Seleziona tutto

etc-update
(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:

Codice: Seleziona tutto

emerge --depclean && revdep-rebuild 
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:

Codice: Seleziona tutto

gcc-config -l
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:

Codice: Seleziona tutto

gcc-config x86_64-pc-linux-gnu-4.6.3
Oppure, diamo :

Codice: Seleziona tutto

gcc-config 1
Il risultato dovrebbe essere lo stesso.
Poi diamo:

Codice: Seleziona tutto

 . /etc/profile
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.

Codice: Seleziona tutto

emerge lilo
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.

Codice: Seleziona tutto

eselect news read
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.
Ultima modifica di Zievatron il martedì 7 maggio 2013, 23:02, modificato 21 volte in totale.
Zievatron

Avatar utente
conoscenza
Messaggi: 3821
Iscritto il: venerdì 2 dicembre 2011, 23:27
Località: Parma

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da conoscenza »

sta venendo un bel lavoro, bravo!
Continua a postare il tempo di compilazione... ;)
(usa "qlop", trovi in fondo a questa pagina un po' di info: http://www.gentoo.org/doc/it/portage-utils.xml )
Sono allergico a mele morsicate e a finestre con tende.

Segnalate qui le vostre offerte di smartphone e tablet!!!

Avatar utente
Zievatron
Messaggi: 1657
Iscritto il: mercoledì 21 dicembre 2011, 23:49

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da Zievatron »

ma qlop -c mi dà il tempo di compilazione del singolo pacchetto o di tutto quello che sto emergendo nella sessione corrente di emersione?
E come faccio ad utilizzarlo durante l'emersione?
L'esempio di stima preventiva che fa quella pagina, dà una risposta "for 4 merge".
E' il tempo impiegato per 4 emersioni? O dice che è una stima fatta come media di 4 emersioni?
Anche così, mi sembra strano. 4 emersioni si possono fare con una marea di macchine diverse, da saette superpompate a catorci d'anteguerra. Ci vorrebbe piuttosto una indicazione del tipo di hardware impiegato come elemento di paragone.
Zievatron

Avatar utente
conoscenza
Messaggi: 3821
Iscritto il: venerdì 2 dicembre 2011, 23:27
Località: Parma

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da conoscenza »

Non so come calcoli la stima, ma penso faccio stima del tuo hardware.
Quindi per sapere quanto tempo impiega un pacchetto:
qlop -tH _nomepacchetto_

qlop -c
ti fa vedere, sostanzialmente, da quanto tempo sta emergendo ciò che sta "attualmente" emergendo...

qlop -l
ti fa vedere la lista dei pacchetti emersi!

;)
Sono allergico a mele morsicate e a finestre con tende.

Segnalate qui le vostre offerte di smartphone e tablet!!!

Avatar utente
Zievatron
Messaggi: 1657
Iscritto il: mercoledì 21 dicembre 2011, 23:49

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da Zievatron »

E non c'è un comando per vedere il tempo della sessione di emersione comprensiva di tutti i pacchetti emersi in una sessione di emersione?

Comunque, qlop -c come glielo dò se sto emergendo?
Suppongo vada integrato nel comando di emersione, ma come?
Zievatron

Avatar utente
conoscenza
Messaggi: 3821
Iscritto il: venerdì 2 dicembre 2011, 23:27
Località: Parma

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da conoscenza »

qlop -c lo da in un altro terminale... ;)

prova a vedere:
man qlop
info qlop
magari trovi info per plottare info su sessioni intere... ma non credo!
Sono allergico a mele morsicate e a finestre con tende.

Segnalate qui le vostre offerte di smartphone e tablet!!!

Avatar utente
Zievatron
Messaggi: 1657
Iscritto il: mercoledì 21 dicembre 2011, 23:49

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da Zievatron »

Codice: Seleziona tutto

darkstar / # man qlop
Non c'� una voce per qlop
Info qlop produce una montagna di linee di testo, ma non mi sembra che indichi le opzioni disponibili.
Zievatron

Avatar utente
conoscenza
Messaggi: 3821
Iscritto il: venerdì 2 dicembre 2011, 23:27
Località: Parma

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da conoscenza »

pensavo ci fosse il man di qlop.

vabbè vai con:
info qlop| less
Sono allergico a mele morsicate e a finestre con tende.

Segnalate qui le vostre offerte di smartphone e tablet!!!

Avatar utente
Zievatron
Messaggi: 1657
Iscritto il: mercoledì 21 dicembre 2011, 23:49

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da Zievatron »

conoscenza ha scritto:vabbè vai con:
info qlop| less
Mi risponde:

Codice: Seleziona tutto

info: No menu item `qlop' in node `(dir)Top'.
lines ?-?/? (END)
Zievatron

Avatar utente
Zievatron
Messaggi: 1657
Iscritto il: mercoledì 21 dicembre 2011, 23:49

Re: [Guida] Installiamo Gentoo: Parte 2

Messaggio da Zievatron »

conoscenza ha scritto:... per sapere quanto tempo impiega un pacchetto:
qlop -tH _nomepacchetto_
Non mi funziona. Cioè, non mi ha dato nessun output. Mi ha solo restituito la linea di comando. :cry:
E se non posso restare davanti al PC a vedere quanto ci mette ad emergere, come faccio?
Al ritorno trovo che ha finito, ma come faccio a sapere a che ora ha finito? :hmm:
Zievatron

Rispondi