Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[tip] generare la cartella /etc/portage/package.*
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4787
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Wed Aug 02, 2006 8:16 am    Post subject: [tip] generare la cartella /etc/portage/package.* Reply with quote

Con la nuova versione di portage, è possibile ridistribuire le voci dei file /etc/portage/package.* all'interno di una cartella omonima.
L'opzione è molto utile per ridurre la complessità di questi file, che diventa spesso ingestibile.

Unico neo: dopo che io ho scritto questo, kernel78 ha proposto uno script di manutenzione della cartella /etc/portage che utlizza una filosofia diversa dalla mia e incompatibile. Se volete utilizzare il suo programmino, preparate la cartella con la versione compatibile qui postata.

Ho scritto un piccolo programmino di bash per eseguire la conversione:
Code:

s939 ~ # cat /usr/local/bin/split-package-list.sh
#!/bin/bash
HELP="
questo programma: \n
 1. genera un backup di /etc/portage/package.""$""1; \n
 2. genera la cartella /etc/portage/package.""$""1; \n
 3. suddivide in file distinti per cateoria il contenuto di package.""$""1. \n
\n
sintassi: split-package-list opzione \n
Opzioni: -mask -unmask -keywords -use --help
"

# controlli iniziali
opzioni=" -mask -unmask -keywords -use "
if [ "$1" == "--help" ]; then echo -e "$HELP";exit;fi

if [ "$opzioni" == "${opzioni/$1}" ]; then
  echo parametro non valido;
  exit;
fi

chiave=${1:1}
if [ -d /etc/portage/package.$chiave ]; then
  echo "La cartella /etc/portage/package."$chiave" esiste già"
  exit 1
fi

if [ ! -e /etc/portage/package.$chiave ]; then
 echo "il percorso /etc/portage/package."$chiave" non esiste"
 exit 1
fi

#backup
mv /etc/portage/package.$chiave /etc/portage/package.$chiave.old
mkdir /etc/portage/package.$chiave

#split: decommentare la linea seguente e commentare la successiva se si desidera sopprimere i commenti.

#for string in `sed '/^#/d' /etc/portage/package.$chiave.old | sed 's|/.*||' | sed 's/[>=#]//g'` ; do
for string in `sed 's|/.*||' /etc/portage/package.$chiave.old |sed 's/[>=#]//g'` ; do
 if [ ! -e /etc/portage/package.$chiave/$string ]; then
  echo $string
  grep $string /etc/portage/package.$chiave.old > /etc/portage/package.$chiave/$string
 fi
done


edit1: aggiunto link alla gwn di portage-2.1
edit2: suggerita una istruzione per eliminare i commenti
edit3: inserito riferimento al lavoro di kernel78
_________________
vu vu vu
gentù
mi piaci tu


Last edited by cloc3 on Thu Aug 17, 2006 8:17 pm; edited 8 times in total
Back to top
View user's profile Send private message
Scen
Retired Dev
Retired Dev


Joined: 29 Jul 2003
Posts: 2470
Location: Padova, Italy

PostPosted: Wed Aug 02, 2006 10:20 am    Post subject: Re: [tip] generare la cartella /etc/portage/package.* Reply with quote

Bene! Quando ho un pò di tempo lo provo 8)

Precisazione:
cloc3 wrote:
Unico neo: per il momento alcuni programmi esterni, come eix, non riconoscono la nuova funzionalità.
emerge, in ogni caso, si comporta correttamente.

Problema risolto nella versione 0.5.6 (attualmente mascherato ~ su tutte le architetture supportate)
_________________
I was born in a deep forest/I wish I could live here all my life/I am made from stones and roots/My home, these woods and roads
All my life I loved this sound/Of the woods all around/Eagles flies where the winds blows free
Journey is my destiny
Back to top
View user's profile Send private message
topper_harley
Guru
Guru


Joined: 05 Apr 2006
Posts: 363
Location: Treviso / Udine (Italy)

PostPosted: Wed Aug 02, 2006 12:53 pm    Post subject: Reply with quote

Dove troviamo informazioni sulla nuova struttura (e relativo funzionamento) dei package.* ?
_________________
http://topperh.ath.cx
Jabber: topper_harley@jabber.org
ICQ: 224179391
MSN: Topper_Harley80@gmail.com
Last FM
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4787
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Wed Aug 02, 2006 1:10 pm    Post subject: Reply with quote

topper_harley wrote:
Dove troviamo informazioni sulla nuova struttura (e relativo funzionamento) dei package.* ?

Prima di tutto `man portage`.

La nuova funzionalità che utilizzo però, non è ancora documentata in man.
Qualcosina si può trovare qui.

Di più, credo che tu debba rivolgerti a qualche sviluppatore.
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
Lestaat
Guru
Guru


Joined: 13 Jan 2005
Posts: 412
Location: Perugia

PostPosted: Wed Aug 02, 2006 1:52 pm    Post subject: Reply with quote

cloc3 wrote:
topper_harley wrote:
Dove troviamo informazioni sulla nuova struttura (e relativo funzionamento) dei package.* ?

Prima di tutto `man portage`.

La nuova funzionalità che utilizzo però, non è ancora documentata in man.
Qualcosina si può trovare qui.

Di più, credo che tu debba rivolgerti a qualche sviluppatore.


c'è un errore di sintassi :P
c'è l'opzione umask invece di unmask.
Non sarebbe un problema se poi non tentasse di aprire il file /etc/portage/package.umask
:lol:
_________________
Vorrei salvare il mondo...
...ma non so con che estensione!!!
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4787
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Wed Aug 02, 2006 2:04 pm    Post subject: Reply with quote

Lestaat wrote:

Non sarebbe un problema se

non lo fosse ... :) .
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
Lestaat
Guru
Guru


Joined: 13 Jan 2005
Posts: 412
Location: Perugia

PostPosted: Wed Aug 02, 2006 2:08 pm    Post subject: Reply with quote

cloc3 wrote:
Lestaat wrote:

Non sarebbe un problema se

non lo fosse ... :) .


Vabbe dai, è solo una svista.
Lo script funzia benissimo però.
Devo controllare per benino ma sembra tutto corretto.
Anche se mi sfugge per il momento la separazione delle cartelle
Code:
/etc/portage/package.<option>/<categoria>
e la crtella
Code:
/etc/portage/package.<option>/~<categoria>

_________________
Vorrei salvare il mondo...
...ma non so con che estensione!!!
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4787
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Wed Aug 02, 2006 7:01 pm    Post subject: Reply with quote

Lestaat wrote:

Anche se mi sfugge per il momento la separazione delle cartelle
Code:
/etc/portage/package.<option>/<categoria>
e la crtella
Code:
/etc/portage/package.<option>/~<categoria>

non ho capito cosa intendi. prova a spiegarti meglio.

effettivamente, se è qui che vuoi parare, sarebbe possibile separare i pacchetti che utilizzano la keyword senza tilde da quelli che utilizzano la tilde.
così un utente ppc potrebbe utilizzare un insieme di pacchetti con keyword x86 e un altro insieme con keyword ~ppc, avendo in tal caso interesse a splittare ulteriormente le liste relative.

ok. quell'utente si pacci pure il mio script :) .
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
Lestaat
Guru
Guru


Joined: 13 Jan 2005
Posts: 412
Location: Perugia

PostPosted: Thu Aug 03, 2006 3:23 pm    Post subject: Reply with quote

cloc3 wrote:
Lestaat wrote:

Anche se mi sfugge per il momento la separazione delle cartelle
Code:
/etc/portage/package.<option>/<categoria>
e la crtella
Code:
/etc/portage/package.<option>/~<categoria>

non ho capito cosa intendi. prova a spiegarti meglio.

effettivamente, se è qui che vuoi parare, sarebbe possibile separare i pacchetti che utilizzano la keyword senza tilde da quelli che utilizzano la tilde.
così un utente ppc potrebbe utilizzare un insieme di pacchetti con keyword x86 e un altro insieme con keyword ~ppc, avendo in tal caso interesse a splittare ulteriormente le liste relative.

ok. quell'utente si pacci pure il mio script :) .


No il senso è che lo script mi ha creato ad esempio sia la cartella
Code:
/etc/portage/package.keywords/dev-libs
che la cartella
Code:
/etc/portage/package.keywords/~dev-libs

e non comprendo con che criterio.[/code]
_________________
Vorrei salvare il mondo...
...ma non so con che estensione!!!
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4787
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Thu Aug 03, 2006 6:31 pm    Post subject: Reply with quote

Lestaat wrote:

No il senso è che lo script mi ha creato ad esempio sia la cartella
Code:
/etc/portage/package.keywords/dev-libs
che la cartella
Code:
/etc/portage/package.keywords/~dev-libs

e non comprendo con che criterio.

probabilmente ti è accaduto qualcosa del genere:
Code:

s939 ~ # cat /etc/portage/package.keywords
#=~x11-base/xorg-x11-6.8.99.8 ~x86
s939 ~ # split-package-list.sh -keywords
~x11-base
s939 ~ # cat /etc/portage/package.keywords/~x11-base
#=~x11-base/xorg-x11-6.8.99.8 ~x86

Il programma, volutamente, preserva le linee di commento.
Inoltre non effettua alcun controllo sulla regolarità sintattica del file iniziale, che si presume corretto.
il sed:
Code:

sed 's|/.*||' /etc/portage/package.$chiave.old |sed 's/[>=#]//g'

produce la variabile $string togliendo gli eventuali simboli >=# , ma non il simbolo ~ , che viene incluso nel nome di categoria.
probabilmente è meglio lasciare lo script così, perché, in fondo il disturbo è "colpa" dell'utente.
la funzione dello script è troppo marginale per prevedere tutti i commenti "sbagliati" che un utente potrebbe architettare.

Questa potrebbe essere una patch provvisoria, in attesa di pensare qualcosa di meno pesante:
Code:

`sed 's|/.*||' /etc/portage/package.$chiave.old |sed 's/[>=#]//g'|sed 's/-/A/'|sed 's/[^[:alnum:]]*//g'|sed 's/A/-/'`


edit: probabilmente la cosa migliore è suggerire un'opzione per togliere i commenti. ho modificato in tal senso il testo originale.

grazie per l'osservazione.
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3654

PostPosted: Thu Aug 17, 2006 9:17 am    Post subject: Reply with quote

eix 0.5.6 è stabile su x86 e lo script è veramente carino.
Grazie mille :wink:
_________________
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con
Code:
grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Back to top
View user's profile Send private message
Deus Ex
Guru
Guru


Joined: 16 Nov 2005
Posts: 489
Location: Patavium

PostPosted: Thu Aug 17, 2006 6:17 pm    Post subject: Reply with quote

Davvero complimenti per l'ottimo script! :)
_________________
Deus Ex
--
L’inflazione che caccia nelle mani dell’individuo, in un gesto solo, miliardi di marchi, lasciandolo più miserabile di prima, dimostra punto per punto che il denaro è un’allucinazione collettiva.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum