lunedì 23 aprile 2012

Configurare yaourt per funzionare con i server git tramite proxy

In questo breve how-to illustrerò un semplice trucchetto per permette a yaourt di lavorare correttamente con PKGBUILD che richiedono l'acquisizione dei sorgenti da server remoti git, non raggiungibili nel caso il nostro accesso a internet sia vincolato ad un server proxy.
Arrivando subito al dunque il "trucco" sta nel sostituire all'interno del nostro PKGBUILD ogni riferimento a git:// dopo il comando git clone  in http:// dal momento che tale comando in pratica non fa altro che inviare al server git remoto una serie di GET tramite il protocollo http.
Facciamo un esempio:
innanzitutto istruiamo yaourt relativamente al proxy da utilizzare impostando  la variabile d'ambiente http_proxy, in questo modo:

$  export http_proxy=http://192.168.1.100:8080/

Sostituite indirizzo ip e porta con quelle del vostro proxy.
( Potete inserire tale comando nel vostro .bashrc oppure in uno script nella directory /etc/profile.d/ in modo che venga eseguito per tutti gli utenti di sistema. )

Proseguendo nel nostro esempio procediamo con l'installazione di un pacchetto che richiede git, xfce-theme-bluebird:

$ yaourt -S xfce-theme-bluebird

 quando yaourt vi chiede se volete modificare il file rispondete di sì, quindi cercate la stringa

git clone "git://github.com/shimmerproject/Bluebird.git

e sostituitela in

git clone "http://github.com/shimmerproject/Bluebird.git

avviate la compilazione, yaourt sarà in grado di prelevare i sorgenti e di compilare il pacchetto senza errori e senza mal di testa :-)
É anche possibile impostare yaourt in modo che applichi tali sostituzioni automaticamente al posto nostro ogni qualvolta sia necessario:

installiamo da AUR il pacchetto aggiuntivo customizepkg:

$ yaourt -S customizepkg

spostiamoci ora in /etc/customizepkg.d e, da root, diamo:

# echo "replace#global#git:#http:" > git.example

questo sarà il nostro file di "base", ogni volta che installeremo un pacchetto da git creeremo preventivamente un link a tale file con il nome del pacchetto stesso ( cioè il pkgname );nel nostro esempio daremo:

# ln -s git.example xfce-theme-bluebird

Se a questo punto provate a reinstallare il pacchetto xfce-theme-bluebird, yaourt vi notificherà riguardo le modifiche applicate; l'output sarà simile a questo:

=> removes/replaces 'git:' by 'http:' in global
--- ./PKGBUILD    2012-04-22 02:27:22.000000000 +0200
+++ ./PKGBUILD.custom    2012-04-22 23:59:46.503834220 +0200
@@ -24,7 +24,7 @@
 package() {
    
     # Clone git repository
-    git clone "git://github.com/shimmerproject/Bluebird.git"
+    git clone "http://github.com/shimmerproject/Bluebird.git"

     # Change into source directory
     cd "$_pkgname"


Ripetete la creazione del symlink a git.example per ogni pacchetto che volete scaricare da un server git.

Nessun commento:

Posta un commento