Pagina 1 di 1

nopkgtool

Inviato: ven 5 feb 2010, 18:25
da netico
Ciao a tutti,

allego un semplice script bash per automatizzare l'installazione di pacchetti tramite SlackBuild.
Al momento usa solamente gli script SB forniti direttamente da slackbuilds.org
L'uso è banale:

# nopkgtool opera

Re: nopkgtool

Inviato: ven 5 feb 2010, 19:09
da conraid

Re: nopkgtool

Inviato: ven 5 feb 2010, 20:12
da netico
Immaginavo esistessero già tool simili...
Imho il mio script applica meglio l'approccio KISS.
Infatti chiede all'amministratore di sistema di ricordarsi solamente cosa vuole installare :-)
Onestamente non penso si tratti di operazioni che necessitano davvero di un tool con una conf e un tot di opzioni da ricordare (vedi manpage di sbopkg).

Re: nopkgtool

Inviato: ven 5 feb 2010, 21:01
da conraid
non volevo "criticare" il tuo script, che non ho nemmeno visto, ma segnalarti, se non lo conoscevi già, un tool che all'inizio era simile a quel che dici tu, e poi si è ampliato
magari anche tu volevi fare la stessa cosa, tutto qui :-)

Re: nopkgtool

Inviato: sab 6 feb 2010, 11:05
da netico
Hai ragione, mi sono dimenticato di ringraziarti per la segnalazione.
Ovviamente sarebbero benvenute financo le critiche, se mai dovessi trovare il tempo di esaminare lo script :-)

Re: nopkgtool

Inviato: sab 6 feb 2010, 11:32
da conraid
Non sono così "esperto" da darti qualche sottigliezza, per questo ci sono utenti più esperti
le prime cose che mi vengono in mente dando una veloce occhiata
1) io cercherei di parametrizzarlo tramite variabili, e non a runtime. Mi spiego, la versione falla mettere all'utente, magari con il classico metodo di rendere la variabile modificabile da linea di comando, insomma invece di

Codice: Seleziona tutto

SLACKV=$(cat /etc/slackware-version | sed s/"Slackware "//g | cut -c 1-4)
metterei

Codice: Seleziona tutto

SLACKV=${SLACKV:-13.0}
e così anche per i percorsi dei binari e degli script (rsync, wget, etc...)

2) nel ciclo finale prima prenderei una variabile e poi farei il ciclo, quotando la variabile. Es.

Codice: Seleziona tutto

for DIR in $(find "$SBHOME/$SLACKV/" -type d -iname "*$1*"); do
fallo diventare qualcosa come

Codice: Seleziona tutto

PKGDIR= $(find "$SBHOME/$SLACKV/" -type d -iname "*$1*")
for DIR in "$PKGDIR" do
anche se non ho capito bene quel ciclo, se tu come nell'esempio che hai fatto metti opera, lui ti fa i pkg di opera, myopera, operamy, etc... perché questo comportamento?

3) mettere sempre il fine riga in fondo al file, se usi un editor che non lo fa (vim lo fa) vai a capo
guarda lo script con cat e capisci cosa intendo

Re: nopkgtool

Inviato: sab 6 feb 2010, 16:58
da netico
Ad esempio, tutti i pacchetti che contegono 'apache' nel nome sono considerati candidati:

Codice: Seleziona tutto

apache-ant
Apache Ant is a Java-based build tool - like make, but without make's
wrinkles.  :-)

Ant is extended using Java classes. The configuration files are XML- based,
calling out a target tree where tasks get executed. Each task is run by an
object that implements a Task interface.

1. Build package apache-ant
2. Build and install package apache-ant
3. Quit
4. Do nothing

Enter your choice [1-4] 4

apache-maven
Maven is a software project management and comprehension tool.
Based on the concept of a Project Object Model (POM), Maven can
manage a project's build, reporting and documentation from a
central piece of information.
1. Build package apache-maven
2. Build and install package apache-maven
3. Quit
4. Do nothing

Enter your choice [1-4] 4

apache-ivy
apache-ivy (apache-ant dependency manager)

Ivy is a library/tool for managing (recording, tracking, resolving and
reporting) project dependencies.

You can pass an alternate vlalue for ANT_HOME if it is not set to
/usr/share/ant on your system.

This package includes documention and example-src.zip in the standard
documentation directory.

1. Build package apache-ivy
2. Build and install package apache-ivy
3. Quit
4. Do nothing
Etc etc. Questo permette di installare il package senza saperne il nome esatto (apache-ant o ant?).
Comodo anche per avere una panoramica delle applicazioni gtk installabili, ad esempio,

Codice: Seleziona tutto

nopkgtool gtk
oppure relativi a una data tecnologia

Codice: Seleziona tutto

nopkgtool xml
o linguaggio

Codice: Seleziona tutto

nopkgtool py
Fondamentalmente, il punto principale è che si tratta di un tool pensato per il neofita. Quindi ho pensato, come dicevo nel post precedente, di "metterla giù semplice", evitando conf, opzioni da linea di comando, etc.
Tuttavia ci sono, imho, degli aspetti interessanti (comuni a sbopkg), ad esempio quello di mostrare al suddetto neofita come "ragiona" un sistema unix-like quando si parla di installazione del software (compilazione da sorgente, dipendenze, etc).
Mi piacerebbe aggiungere allo script anche pkgsrc (di NetBSD), con tutto il software reso disponibile da quest'ultimo...
Con altertrack e altri tool non dovrebbe essere impossibile ottenere un package per Slackware partendo dai sorgenti forniti da pkgsrc... :-k