Slackage...

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
gigiobagiano
Linux 3.x
Linux 3.x
Messaggi: 530
Iscritto il: dom 11 mar 2007, 12:58
Nome Cognome: Filippo
Slackware: 14.2
Kernel: vanilla-4.4.38
Desktop: xfce
Distribuzione: SalixOS
Contatta:

Slackage...

Messaggio da gigiobagiano »

Da un po' di giorni sto lavorando ad uno script bash che lavori in maniera simile a portage per gentoo. Le operazione che al momento dovrei essere riuscito ad implementare sono:

ricerca
installazione (compila ricorsivamente tutte le dipendenze per poi compilare il pacchetto)
rimozione singolo pacchetto
rimozione singolo pacchetto e dipendenze non più richieste da nessuno
(il minimo per poter far qualcosa)


Adesso sto sistemando una copia locale degli SlackBuild presenti su slacky, perchè per come ho impostato la cosa devo creare un file che raccolga in maniera particolare tutti i pacchetti presenti ed elenchi le relative dipendenze.
In un paio di giorni (doveroso una tastatina :oops: ) dovrei riuscire a testarlo un po' per evitare i classici errori stronzi e poi metterlo a disposizione...

Non so se effettivamente potrà interessare a qualcuno, ho preso questo script più come una sfida e un motivo per studiacchiare bash piuttosto che per un effettiva necessità o utilità, ma può darsi che non faccia così schifo ;)

ocman
Linux 2.x
Linux 2.x
Messaggi: 239
Iscritto il: gio 31 lug 2008, 18:18
Slackware: ArchLinux
Desktop: xfce
Distribuzione: OpenIndiana

Re: Slackage...

Messaggio da ocman »

Wooow.

Personalmente ho sempre desiderato utilizzare Gentoo per il geniale approccio per la creazione/gestione dei pacchetti, ma sono rimasto a slackware più che altro per abitudine.
Questo script bash sarebbe una manna dal cielo a dir poco per:
- ottimizzare le applicazioni con i migliori flags per spremere appieno la propria architettura.
- applicare opzioni in compilazione secondo le esigenze che uno ha
- avere sempre software aggiornato!
- non dipendere da repository, ma solo dai mirror dei sorgenti ed eventualmente da chi aggiornerà gli slackbuilds.

Inoltre se anche le dipendende riescono ad essere risolte, soprattutto per pacchetti non ufficiali, allora è sicuramente una marcia in più.
=D> =D>

Ansioso di Provarlo

Avatar utente
cymon
Linux 2.x
Linux 2.x
Messaggi: 430
Iscritto il: ven 5 gen 2007, 1:40
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox
Località: Milano
Contatta:

Re: Slackage...

Messaggio da cymon »

Progetto affascinante come tutti quelli in questo campo.
Di solito però il problema più grosso da dirimere è la gestione delle dipendenze. Tu come le individui e gestisci?

Avatar utente
gigiobagiano
Linux 3.x
Linux 3.x
Messaggi: 530
Iscritto il: dom 11 mar 2007, 12:58
Nome Cognome: Filippo
Slackware: 14.2
Kernel: vanilla-4.4.38
Desktop: xfce
Distribuzione: SalixOS
Contatta:

Re: Slackage...

Messaggio da gigiobagiano »

La mia idea attualmente si basa sul modificare il meno possibile gli slackbuild attualmente presenti, con il solo accorgimento di passare la $ARCH e $CHOST dal file di configurazione invece che scrivendola direttamente nello SlackBuild. Quindi, per adesso non si può impostare globalmente delle flags particolari (non che sia una cosa complicata inserire questa cosa).

Premesso che, a livello di chi crea il pacchetto o lo slackbuild, non cambierà pressochè nulla nelle sue operazioni, mi sto affidando agli slackrequired. In particolare, slackage guarda un file (da aggiornare ad ogni inserimento di un nuovo programma o di una nuova versione di uno esistente) del tipo:

DEPENDENCY_nomesoftware=('array' 'con' 'tutti' 'i' 'programmi' 'da' 'cui' 'dipende')
VERSION_nomesoftware=('array' 'versioni' 'disponibili') # le versioni vanno elencate dalla nuova alla vecchia ed è possibile indicare quale installare
PATH_nomesoftware="categoria/nomepacchetto"

Ho creato una funzione che:

-controlla se il pacchetto è installato (restituisce diversi valori in base a il pacchetto esistente è aggiornato (in tal caso esce), se è vecchio o se non c'è( continua)
-controlla se il pacchetto ha dipendenze e nel caso non nè avesse compila ed installa(o fa l'upgrade se c'è un pacchetto vecchio) direttamente (*)
-se ha dipendenze inizia un ciclo for su tutte le dipendenze richiamando sè stessa (ricorsivamente) per ognuna; una volta finito il ciclo installa il programma.
(prima di compilare e installare controlla anche se esiste un pacchetto già fatto in precedenza)

(*) ho messo questa cosa pensando ai pacchetti della distribuzione (di PJV per capirci), che ovviamente non sono elencati nei file di slackage, e quindi non dispongono di una lista dipendenze. A questo proposito, per semplificarmi ulteriormente la prima implementazione ipotizzo una slackware con installazione full, cioè non prevedo di far richiamare allo script comandi di slackpkg (non vorrei sostituire infatti il "gestore principale"). Lo script tiene anche aggiornato un file elenco dei pacchetti installati.

Come funzione è stupida, nel senso che ho pensato a quello che farei se dovessi fare tutto manualmente. Ho messo un'ulteriore possibilità, cioè:
DEPENDENCY_nomesoftware_VERSIONE=(array)
in modo che se per una particolare versione le dipendenze sono diverse si possano evidenziare.

ocman
Linux 2.x
Linux 2.x
Messaggi: 239
Iscritto il: gio 31 lug 2008, 18:18
Slackware: ArchLinux
Desktop: xfce
Distribuzione: OpenIndiana

Re: Slackage...

Messaggio da ocman »

VERSION_nomesoftware=('array' 'versioni' 'disponibili') # le versioni vanno elencate dalla nuova alla vecchia ed è possibile indicare quale installare
Direi che diventa difficile da mantenere a lungo termine un elenco delle versioni per ogni pacchetto.
Forse è meglio affidarsi a qualche servizio online che fa quotidianamente il report di nuove versioni per software linux, una specie di changelog.
cioè non prevedo di far richiamare allo script comandi di slackpkg (non vorrei sostituire infatti il "gestore principale")
Sono daccordo sul discorso che hai fatto sulle dipendenze.
Invocare slackpkg secondo me può essere utile, in fondo è un pacchetto ufficiale che altro non fa che appoggiarsi a pkgtool, e potrebbe avere utili impieghi nel tuo script. è ben scritto e potresti attingere al suo codice, se ti ispira, magari per le funzioni di reperimento dei changelogs....

Avatar utente
gigiobagiano
Linux 3.x
Linux 3.x
Messaggi: 530
Iscritto il: dom 11 mar 2007, 12:58
Nome Cognome: Filippo
Slackware: 14.2
Kernel: vanilla-4.4.38
Desktop: xfce
Distribuzione: SalixOS
Contatta:

Re: Slackage...

Messaggio da gigiobagiano »

Mi sembra che tu abbia un po' frainteso (o probabilmente sono io che non ho capito); qualcuno che fa lo slackbuild ci deve per forza essere, e quest'ultimo per adesso è costretto ad aggiungere la versione all'elenco manualmente. Suppongo che per il repo di slackware ci sia uno script che fa un lavoro simile e aggiorna i file globali. Mi dispiace...
Fra le altre cose funziona alla stessa maniera anche per gentoo, nel senso che se nessuno fa l'ebuild per una nuova versione di un programma, nessuno lo installerà attraverso portage.

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Slackage...

Messaggio da conraid »

se è solo per didattica ok, ma altrimenti perché non collabori al progetto SBOpkg?

Avatar utente
gigiobagiano
Linux 3.x
Linux 3.x
Messaggi: 530
Iscritto il: dom 11 mar 2007, 12:58
Nome Cognome: Filippo
Slackware: 14.2
Kernel: vanilla-4.4.38
Desktop: xfce
Distribuzione: SalixOS
Contatta:

Re: Slackage...

Messaggio da gigiobagiano »

Hai ragione, ma prima devo capirci qualcosa di bash e di sbopkg, questo è il mio primo script più o meno serio e vado avanti guida alla mano... ;)

Rispondi