CentOS 4.1

Come avevo detto in altri post, ritengo la distribuzione CentOS molto valida, i cui punti a favore sono:
– una qualita’ “intrinseca” del prodotto, che ricordo essere una riscrittura partendo dai sorgenti della Red Hat Enterprise Linux,
– il suo ciclo di vita ampio, ben piu’ dei miseri 6/8 mesi della sua controparte free (Fedora) o di altre distribuzioni;
– la disponibilita’ di numerosi manuali (quelli liberamente scaricabili, anche in Italiano) e una ampia gamma di tips;
– un numero elevato di software compatibile, che la rende adatta ad ogni uso;
– ma sopratutto, cosa che ritengo FONDAMENTALE per ogni distribuzione GNU/Linux, per la comunita’ che ci gravita attorno. La mailing list e’ frequentata da gente del mestiere, il rapporto Segnale/Rumore della stessa e’ molto prossimo all’1;il canale #centos sul server FreeNode e’ sempre popolatissimo e c’e’ sempre qualcuno pronto ad aiutare nonche’ i 4/5 leader del progetto; ed infine il forum abbastanza attivo, pur se non valido come le prime due risorse.

Finita la premessa passiamo a cose un pelo piu’ tecniche.

La CentOS segue passo passo gli sviluppi della RHEL, attualmente giunta alla versione 4, update 1, e quindi siamo alla release 4.1. Avendo in precedenza scaricato il dvd della versione 4 mi chiedevo se dovessi effettuare un nuovo download, ebbene la risposta e’ stata NO [ che bello ! ], e’ bastato dare un bel

rpm –import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4

[o, in mancanza di un collegamento internet, dalla root directory di ciascun supporto ottico]

yum update yum

seguito da un:

yum upgrade

per vedere la distribuzione aggiornarsi all’ultima versione.
Per velocizzare il download da parte di yum dei vari pacchetti si puo’ modificare il file yum.conf in maniera conguente all’elenco dei mirror visibile a questo indirizzo:

http://www.centos.org/modules/tinycontent/index.PHP?id=13

ovviamente scegliendo quello a noi piu’ vicino. Per la cronaca io ho lasciato quello di default e con la mia ADSL di Libero da 4megabit sono andato ragionevolmente veloce.La CentOS, come tutte le distribuzioni RH-derivate, sta dando molto rilievo all’utilizzo di yum, piuttosto che ad up2date (che si puo’
anche sopportare SE ben configurato) piuttosto che ad apt-4-rpm, che pare diventare di giorno in giorno sempre piu’ obsoleto pur avendo una GUI (synaptic) per per semplicita’ e potenza d’uso mi pare ancora imbattuta.
Piuttosto che avere un file yum.conf chilometrico e’ d’uso popolare la directory /etc/yum.repos.d di tanti file Nome_Repository.repo ciascuno configurato indipendentemente. Attualmente questo e’ lo scoglio piu’ grosso da affrontare quando si usano le distribuzioni RH-derivate, poiche’ tali repository/fonti non sono guidate da un team ufficiale, ma gestite ciascuno da un proprio mantainer che si “poggia” a sua discrezione ad altre fonti.

Per la mia CentOS ho raggiunto, con un po’ di aiuto da parte di Karanbir e letture varie la seguente configurazione [in linea di massima tutte le sorgenti software per RHEL 4.* sono valide]:

CentOS-Base.repo
DAG.repo
dries.repo
kbsingh-CentOS-Extras.repo
kbsingh-CentOS-Misc.repo
kde-redhat.repo
rpmforge.repo
sangrah.repo

volendo si potrebbe aggiungere anche il flash.repo, ma per il momento ho lasciato stare, per ciascuno ho provveduto ad importare, dove essa fosse disponibile la chiave privata e ad imporre un controllo su di essa al momento dell’installazione dei pacchetti.CentOS-Base.repo e’ quello contenuto di default sin dalla fase di installazione, si trattera’ soltando di
abilitare (o meno) le sezioni addons [packages used/produced in the build but not released], extras [additional packages that may be useful], centosplus [additional packages that extend functionality of existing packages], contrib [contrib – packages by Centos Users] e testing [packages in testing].

Qui di sotto invece vado ad elencare il contenuto degli altri files *.repo:

[dag]
name=Dag
RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1

[dries]
name=Extra
Fedora rpms dries – $releasever – $basearch

baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el4/en/i386/dries/RPMS
gpgcheck=1
enabled=1

[kbs-CentOS-Extras]
name=CentOS.Karan.Org-EL$releasever- Stable
gpgcheck=1
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/stable/$basearch/RPMS/

# Need a ftp mirror ? uncomment the line below, & disable the one above
# baseurl=ftp://rpm.karan.org/pub/kbsingh/el$releasever/extras/stable/$basearch/RPMS/

[kbs-CentOS-Misc]
name=CentOS.Karan.Org-EL$releasever- Stable
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
gpgcheck=1
enabled=1
baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/

# Need a ftp mirror ? Uncomment the line below and comment the line above
# baseurl=ftp://rpm.karan.org/pub/kbsingh/el$releasever/misc/stable/$basearch/RPMS/

[kbs-CentOS-Misc-Testing]
name=CentOS.Karan.Org-EL$releasever- Testing
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
gpgcheck=1
enabled=0
baseurl=http://centos.karan.org/el$releasever/misc/testing/i386/RPMS/
# Ned a ftp mirror ? Uncomment the line below and comment the line above
# baseurl=ftp://rpm.karan.org/pub/kbsingh/el$releasever/misc/testing/$basearch/RPMS/


# kde-redhat.repo, v1.0
[kde-redhat-stable]

name=kde-redhat-stable
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/redhat/$releasever/$basearch/stable/mirrors
gpgcheck=1
#gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=1

[kde-redhat-stable-all]
name=kde-redhat-stable-all
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/all/stable/mirrors
gpgcheck=1
#gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=1

# NOTE: enable/disable *both* testing/testing-all together;
# requires/depends-on stable


[kde-redhat-testing]
name=kde-redhat-testing
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/redhat/$releasever/$basearch/testing/mirrors
gpgcheck=1
#gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=0


[kde-redhat-testing-all]
name=kde-redhat-testing-all
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/all/testing/mirrors
gpgcheck=1
#gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=0

# NOTE: enable/disable *both* unstable,unstable-all together;
# requires/depends-on testing


[kde-redhat-unstable]
name=kde-redhat-unstable
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/redhat/$releasever/$basearch/unstable/mirrors
gpgcheck=1
#gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=0


[kde-redhat-unstable-all]
name=kde-redhat-unstable-all
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/all/unstable/mirrors
gpgcheck=1
#gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=0

# Name: RPMforge RPM Repository for Red Hat Enterprise 4 – i386
# URL: http://rpmforge.net/

[rpmforge]
name = Red Hat Enterprise 4 – i386 – RPMforge.net – dag
#baseurl = http://apt.sw.be/redhat/el4/en/$basearch/dag/
mirrorlist = http://apt.sw.be/redhat/el4/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

[sangrah]
Name=sangrah
baseurl=http://sangrah.in/el4/i386/
gpgcheck=0
enabled=1

Mi riservo di inoltrare questa lista nei canali ufficiali della CentOS per avere il “placet”, quindi occhio al cut & paste, potrei modificarlo a breve !!!

Appunti Linux: compiliamo un kernel da src.rpm

Per la serie “me lo scrivo sul blog, così non va perso” mi annoto i passaggi necessari per ricompilare il kernel su piattaforma redhat-like partendo dai pacchetti src.rpm della distribuzione.

Su questo tipo di piattaforme, infatti, e’ abbastanza complesso, nonche’ scomodo e sconsgliabile, usare dei kernel “vanilla” ….. il tutto e’ stato spiegato da hughesjr sul canale IRC dedicato a CentOS.

Il modo migliore per compilare il kernel su CentOS e’ di procurarsi il corrispondente pacchetto source RPM.

Fatto cio’, assicurati di avere installati i tool di sviluppo base: gcc, rpm-devel, rpm-build, ecc. (ed il file redhat-rpm-config per CentOS-4) e quindi impartisci il comando:

rpm-i kernel-whateverversion.src.rpm

[ sostituisci il numero della versione che ti interessa 🙂 ] quindi spostati in /usr/src/redhat/SPECS

Redhat ha rilasciato il suo pacchetto SRPM in una maniera tale che tu possa compilarlo direttamente ed usarlo … e non puoi neanche
procedere in maniera convenzionale, e cioe’ usare il file kernel-2.6.version.spec per la compilazione, che applicherebbe tutte le patch.

Percio’ dovremo seguire i seguenti passi:
rpmbuild -bb kernel-2.6.spec ;
– (dovremo poi indicare un target e quindi) rpmbuild -bb –target=i686 kernel-2.6.spec ;
– dopo di che iniziera’ il lavoro ed aspetteremo l’ avviso in cui viene notificato che “bzImage” e’ pronto;
– quando bZimage e’ stato creato … mentre il processo stara’ compilando i moduli … interromperemo il processo con Ctrl-C;
– nella directory /usr/src/redhat/BUILD avremo un kernel three pienamente parchato;
– potremo quindi copiare la directory kernel-xxxx directory in /usr/src/, spostarci dentro di essa ed impartire un: make clean;
– a questo punto avremo una directory redhat-standard per la compilazione del kernel, come quella a cui siamo abituati.

I file di configurazione standard sono in kernel/configs, copia quelli di cui hai bisogno nella directory .config e poi
lancia: make oldconfig.
A questo punto sei pronto per la procedura standard make menuconfig
ecc.

Ovviamente se ci sono errori madornali me li segnalate ? così correggo e non famo danni 😀