CentOS, problemi con yum

Piccolo post del tipo “promemoria”.

CentOS, logo Al lavoro abbiamo un piccolo numero di macchine oramai obsolete. Grossomodo appartengono tutte ad una serie di pc “da ufficio” della Fujitsu-Siemens che da Windows 2000 o XP (prima release) sono state utilizzate negli ultimi anni sino allo stremo. Vista la loro lentezza e inadeguadezza in termini di spazio disco e dotazione RAM sono state lasciate agli studenti che fanno “internato” presso il nostro Istituto permettendogli così di eseguire ricerche su web e documentarsi durante la loro presenza in vista della conclusione del tirocinio o della stesura della laurea.

Su questo tipo di macchine stiamo installando Ubuntu o CentOS per renderle un attimo più performanti (o per ovviare alla perdita dei cd col sistema operativo originario) e proprio oggi, andando ad aggiornare una CentOS con un classico yum check-update mi sono scontrato con un errore inusuale, che richiamava quanto riportato nell’esempio seguente:

Traceback (most recent call last):
File "/usr/bin/yum", line 29, in ? yummain.main(sys.argv[1:])
File "/usr/share/yum-cli/yummain.py", line 105, in main result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 289, in doCommands self._getTs()
File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 85, in _getTs
self._getTsInfo()
File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 91, in _getTsInfo
self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)

Dopo una ricerca nell’archivio (locale) della mailing list di supporto di CentOS ho scoperto che questa tipologia di errore vien fuori quando ci si trova ad operare dietro particolari configurazioni di server Proxy, oppure (con maggior frequenza) quando si utilizzano repository software aggiuntivi di terze parti in aggiunta a quelli supportati ufficialmente e questi, per un motivo o l’altro, aggiornano la versione di yum installata (e qualche altra dipendenza, o plugin) sul sistema.

Preso dal dubbio ho subito impartito un
rpm -q yum
per veficare lo stato del pacchetto sulla mia macchina e ho constatato che non era la versione base della mia CentOS e neanche dell’ultimo aggiornamento disponibile.

Ho quindi provveduto a scaricare e installare manualmente i seguesti pacchetti:

  • yum-3.2.8-9.el5.centos.2.1.noarch.rpm
  • yum-fastestmirror-1.1.10-9.el5.centos.noarch.rpm
  • yum-refresh-updatesd-1.1.10-9.el5.centos.noarch.rpm
  • yum-updatesd-0.9-2.el5.noarch.rpm

Fatto questo una rapida sequenza di yum clean all seguita dai canonici yum check-update e yum update mi ha permesso di tornare in possesso di un sistema (nuovamente) al pieno delle sue funzionalità .

Buon lavoro !

YUMEX – nuovo sito, nuovo ramo di sviluppo

Fresca fresca dal bancone del mio aggregatore di feed arriva una doppia notizia riguardante Yum Extender, il front end grafico a yum, il package manager per eccellenza di distribuzioni quali CentOS e Fedora.

Tim Lauridsen ha annunciato la nuova versione del sito ufficiale di sviluppo di yumex (curiosamente – per me – basandosi su sistema di gestione di contenuti XOOPS e abbandonando Trac).

Ed inoltre, un nuovo ramo di sviluppo è stato introdotto per lo stesso yumex, dovuta all’introduzione di alcune nuove API nel core di yum 2.9.5.

Riporto quindi alcune delle nuove caratteristiche pubblicizzate:

– works with API changes in yum 2.9.5

– Font color, type and size for Output window and package description can be changes in then Preferences

– Now using standard python logging to write to yum file log.

just evolve

Da alcuni mesi, grazie al mio far parte dell’organizzazione della comunità WordPress a Bari, sto avendo il piacere di incontrare persone provenienti da fuori regione … Professionisti che lavorano in luoghi e contesti a me alieni e che mi hanno permesso di potermi confrontare con usi e metodi informatici ‘nuovi’, quelli di cui leggi sui blog e che ti sembrano sempre modelli impossibili.

Questi incontri sono cominciati con la venuta del barese/inglese Franz Vitulli in occasione di un meetup WordPress ad Andria… Franz lavora in una delle più grandi Agenzie al mondo che usa WordPress secondo il modello distribuito e ci ha potuto raccontare delle best practice per il project management, partendo però dall’assunto fondamentale del migliorare il proprio lavoro come passo 0 della produttività, usando sistemi di priorità degli impegni, chiarezza dei task da svolgere, rapida evoluzione nel generare idee promuovendo quelle condivise e di maggior efficacia per il progetto e bocciando tutte le altre. Il tutto rimanendo focalizzati sulle idee e non sulle persone che le promulgano.
Un altro passaggio per me fondamentale è stato quello del rimarcare l’essenzialità del logging delle attività svolte. Un passo che serve a noi stessi per tracciare la direzione del nostro lavoro, prima, ed effettuare un bilancio dello stesso in una fase successiva.

A giugno è stata la volta del mio amico nonché troll preferito: Cristiano Ferrari.
Cristiano ha la rara capacità di dire sempre la cosa giusta col tono sbagliato ? … Quando tu proponi ‘a voce alta’ un’idea o una linea di condotta che ti sei pensato e ripensato nella testa per qualche giorno, Cristiano ha il superpotere di commentare sempre in maniera sarcastica – con quella vena tutta particolare delle genti emiliane – facendoti (facendomi) arrabbiare. Ma se si ha la lucidità di non vedere il suo commento come un attacco personale, ma semplicemente come un legittimo !!! punto di vista ci si accorge della pragmaticità e dell’esperienza di Cristiano che rendono evidenti tutte le debolezze del tuo ragionamento.
Da Cristiano mi piacerebbe imparare questo senso di prospettiva delle cose, cercando di non buttarmi a capofitto in qualcosa senza poi pensare a come proseguire l’azione nel tempo … È vero che adoro il detto “done is better than perfect”, però muoversi facendo bene sin da subito non è neanche male…

Ed eccoci a luglio. Qui ho avuto modo di conoscere Andrea Gandino, per me fino ad allora membro e attivo contributor della comunità WordPress italiana, ma anche – ho avuto modo di scoprire – talentuoso sviluppatore genovese di template e plug-in (e che plugin!) per il mio CMS preferito.
Con Andrea sono un po’ tornato indietro ai tempi dell’università a Scienze dell’Informazione a Cesena. Una forte dose di timidezza che si scioglie al ‘sole’ della passione con cui si spiegano agli altri i propri lavori, e quindi le proprie passioni, senza mezze parole, onestà nel giudizio, voglia di imparare, assorbire quello che si incontra. (Ad Andrea, ed alla sua ditta, ho ‘rubato’ il nome per dare il titolo questo post).

Insomma, questi incontri mi hanno restituito quello che da tempo mi manca sul lavoro – e conseguentemente sul piano umano – ossia una compagnia che si metta apertamente a condividere i propri obiettivi e progetti, gli strumenti usati e la voglia di ricevere lo stesso da te. GRAZIE.

SalvaSalva

SalvaSalva

speranza

New Hope

Mi ha colpito questo scatto di Thomas Hawk (che seguo da un po’ di tempo), che ritrae una mediamente degradata architettura urbana, dove alle “fondamenta” dell’edificio sono apposti i manifesti elettorali della campagna elettorale Obama ’08 con il suo – allora – messaggio più forte ad una nazione che negli otto anni precedenti aveva sofferto la leadership di Bush jr. …

HOPE.
Speranza.

SalvaSalvaSalvaSalva

migrazione RedHat Enterprise Linux a CentOS eseguita!

Lo scorso anno acquistammo un serverino – dischi in fiber channel, 4 cpu quadcore, 32GB di RAM … la solita roba, insomma – con su Red Hat Enterprise Linux. Ovviamente quest’anno allo scadere della licenza non ci sono i fondi per proseguire con gli abbonamenti annuali.

features rhel

Che si fa? Si migra a CentOS, ovviamente!
Per fortuna la procedura di migrazione è stata semplice, immediata e rispettosa del tutorial proposto nell’apposita pagina del wiki ufficiale.

In breve ho aggiornato la RHEL alla release 5.5. Questo ha fatto anche si che i repository ufficiali venissero cancellati dalla directory /etc/yum.repos.d (quindi fattene un backup, per riferimento futuro).

Ho disattivato tutti i repository aggiuntivi alla distribuzione (adobe, epel e remi).

Ho disattivato, prima, e rimosso, dopo, il plugin rhnplugin di yum, quindi imparito i comandi:

cp /etc/redhat-release /etc/redhat-release-saved
rpm -e --nodeps redhat-release-notes redhat-release yum-rhn-plugin redhat-logos

… e poi scaricato manualmente i pacchetti centos-release, centos-release-notes e redhat-logos-X.X.XX-XX.el5.centos.noarch.rpm dal mirror Italiano di CentOS (li trovi nel percorso ../5/os/$ARCHITETTURA/CentOS/).

Fatto ciò li ho installati manualmente e poi ho dato il più classico dei:

yum update

per completare la migrazione, ed eccoci qua:

CentOS-5-3-Is-Here-Based-on-RHEL-5-3-3

[root@localhost ~]# cat /etc/issue
CentOS release 5.5 (Final)

[root@localhost ~]# uname -a
Linux localhost 2.6.18-194.3.1.el5 #1 SMP Sun May 2 04:17:42 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

come aggiornare PHP e MySQL su CentOS usando il repository di Remi

Ci siam trovati in ufficio a dover aggiornare l’accoppiata PHP/MySQL per il deployment di un paio di applicazioni bio-informatiche in corso di sviluppo.

I nostri sistemi, per N ragioni, sono ancorate al mondo rpm; quindi Red Hat Enterprise Linux ed il suo clone “free (as in beer)CentOS e il loro lento ciclo di update hanno prodotto la situazione per cui o affrontavamo l’aggiornamento “a mano” di 10 nodi con ricompilazione dei sorgenti, oppure adottavamo la strategia dell’adozione di un repository esterno alla distribuzione.

Dopo un’indagine abbastanza veloce abbiamo deciso di affidarci al lavoro, pluriannuale e ben noto, di Remi Collet. Una veloce ripassata a yum e ai suoi plugin ed i pacchetti erano installati, con la piccola rogna di un problema con le dipendenze di PHP-MySQL (probabilmente dovuta all’aggiornamento in fasi distinte di PHP prima e MySQL poi).

Risolto quello son passato ad esaminare MySQL e i database da esso gestiti, incontrando il simpatico errore qui sotto riportato:

ERROR 1146 (42S02): Table ‘MySQL.servers' doesn't exist

when you do a simple FLUSH PRIVILEGES;

Son quindi corso ai ripari con una veloce ricerca su Google che mi ha convinto della necessità di applicare SEMPRE, indipendentemente dal metodo di aggiornamento utilizzato (tar.gz, deb o rpm), il comando MySQL_fix_previleges_tables assieme alle altre indicazioni che si trovano nella documentazione ufficiale PRIMA di fare altre operazioni sui database..

Nella fattispecie impartendo il comando:

/usr/bin/MySQL_fix_privilege_tables --password=$your-MySQL-root-password

ha risolto il mio problema.

Alternativamente una soluzione avrebbe potuto essere quella proposta in questo post, ma come ho detto non c’è stato bisogno di fare altre operazioni.

server FTP con utenti virtuali, gestione quota e banda utilizzata

Al lavoro mi son ritrovato a dover risolvere lo scenario del dare accesso ad un certo numero di dati (di dimensione di qualche GB per file) e documenti ad un paio pool di utenti, per la maggior parte esterni alla nostra struttura.

Questo mi ha portato allo scarto di soluzioni che prevedevano l’accesso fisico alla macchina (no ssh quindi). Ho purtroppo dovuto scartare anche soluzioni basate sul “paradigma” LAMP, per le intrinseche limitaziondi di Apache come gestore di trasferimento file … ad esempio DocMgr che pure avevamo implementato ma che ha retto sino a quando ci si è trovati a dover caricare/scaricare file >1GB … e tenendo conto che ne ho diversi altri tra i 5/8GB capirai Perché ho ritenuto poco proficuo tenerlo in funzione.

Ancora, nel tempo è sorta anche la necessità di imporre ragionevoli limiti alla banda di rete utilizzabile da questo singolo servizio, specie in occasioni di limitazioni di utilizzo della banda “Internet” disponibile.
pureFTFd logo
Mi sono quindi messo alla ricerca di una soluzione collaudata, di semplice implementazione e ragionevolmente sicura, trovando alcuni tutorial su come implementare un servizio di FTP che mi permettesse di avere un pool di “Utenti Virtuali“.

Continua a leggere

come installare Java SDK su CentOS

Ultimamente sto preparando un server CentOS (release 5.2) per la sua clonazione su altri 13 nodi del nostro cluster di calcolo e mi sono trovato alle prese con l’ installazione di Java su questa distribuzione derivata da Red Hat.

Purtroppo, anche se di recente la Sun ha rilasciato tutto il suo ambaradan Java con licenza libera, questo è avvenuto troppo tardi Perché il progetto CentOS (ma anche altre distribuzioni) potesse includerne i pacchetti in fase di rilascio delle release della famiglia 5. La cosa, invece, dovrebbe essere risolta quando la CentOS 6 verrà rilasciata.

Per eseguire una corretta installazione di Java (Runtime Environment o Software Development Kit) è quindi necessario, e sufficente, rifarsi al puntuale How To Install Java on CentOS 4 and CentOS 5 pubblicato nelle pagine del wiki della distribuzione.

Bisogna solo avere qualche accortezza nell’approcciarsi alle procedure descritte nell’how to, ossia:

  • rimuovere la versione già pacchettizzata da CentOS di Java (nella sua implementazione libera) eventualmente installata prima dell’how-to;
  • rimuovere tomcat5 e tutti i pacchetti ad esso connessi;
  • attenersi alle procedure dell’ How to Set Up an RPM Build Environment under CentOS
  • il pacchetto Java-1.6.0-sun-1.6.0.10-1jpp.nosrc.rpm citato nell’how to richiede ancora la versione 10 del JDK, mentre al momento sul sito della Sun è disponibile l’update11 … dovrete fare una ricerca nella sezione dei download per il l’installer in formato *.bin esatto.

Alla fine della procedura ti basterà installare gli rpm appena costruiti per avere un Java funzionante nel sistema.

Un semplice yum install tomcat5 ha installato in un soffio Tomcat (ed altre 37 pacchetti ad esso connessi) senza nessun problema di dipendenze.

Spero che queste poche righe ti siano utili 😀

come installare R su CentOS

CentOS, logo Argomento poco natalizio quest’oggi dove vado a postare un piccolo “how-to” per installare la suite di calcolo statistico (open source) e i suoi strumenti di sviluppo R.

La distribuzione CentOS non prevede nei suoi repository ufficiali alcuna build di questo progetto che, fortunatamente, fornisce invece i pacchetti per le più diffuse piattaforme GNU/Linux (e Windows e Mac OS X) all’interno dei suoi mirror.

Sono presenti gli rpm binari dei pacchetti, ma vista la disponibilità di medatati yum (la directory repodata) è possibile creare un file .repo per un uso più snello e integrato con il package manager di sistema YUM.

Questo che segue è il file che mi sono creato:

[R - Project for Statistical Computing]
name=R repository
baseurl=http://rm.mirror.garr.it/mirrors/CRAN/bin/linux/redhat/el5/i386
failovermethod=priority
enabled=1
gpgcheck=0
priority=15

Una nota sul gpgcheck=0 che ho messo in quanto i pacchetti non sono firmati (o almeno io non sono riuscito a trovarla) e sul priority=15 dovuti all’uso del tool yum-priorities.

Se avete suggerimenti o migliorie da apportare i commenti al post son qui per questo !

CentOS, netinstall

CentOS logo Benedetta CentOS e benedetti sistemi con a bordo solo un lettore di cd-rom !!!

Visto che fare il disk jockey con i 5 (o 6) cd di installazione della distribuzione “enterprise” libera per antonomasia non mi va giù da un po’ di tempo ho preso l’abitudine di scaricare e usare per l’installazione la piccola ISO (7 MB o giù di li) della versione netinstall che fa partire il sistema e poco più.

E ogni volta incontro un piccolo problema, o un altro, che mi tengono al freddo (e alla polvere) della sala CED più a lungo di quanto vorrei.

Questa volta, il problema si è verificato con la scelta del mirror di riferimento da utilizzare come fonte di installazione. In questo caso la procedura guidata NON ci aiuta visto che ci dice che c’è un problema nel download del file stage2.img col path (corretto !!!!!) che viene visualizzato a schermo.

Preso dallo sconforto faccio una ricerca su Google (ormai automatica per qualunque cosa) e ritrovo una mia vecchia richiesta di aiuto alla mailing list ufficiale della comunità  CentOS che avverte di NON usare i percorsi “intelligenti” quali .../centos/$releasever/os/$basearch che pur normalmente appaiono in un qualunque yum.conf.

E come secondo consiglio (che probabilmente avevo dimenticato) in un post viene ricordato di usare una sintassi specifica quando andiamo ad indicare la sorgente di installazione all’installer che possiamo così illustrare:

# Server: mi.mirror.garr.it
# Path (se si possiede l’architettura i386): mirrors/CentOS/5.2/os/i386/

o, se si possiede un’architettura a 64bit:

# Path: mirrors/CentOS/5.2/os/x86_64

Insomma, tanto semplice e banale da venir facilmente dimenticato 🙁

Sapevatelo! Su rieducascional ciannell !!!!