Come creare un pacchetto partendo da un mio programma?

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.
mandrago
Linux 1.0
Linux 1.0
Messaggi: 30
Iscritto il: ven mar 30, 2012 18:13
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4
Località: Trento

Come creare un pacchetto partendo da un mio programma?

Messaggioda mandrago » dom apr 01, 2012 22:38

Ciao a tutti, in questi giorni avrò letto si e no una decine di guide che parlano di come creare un pacchetto *.txz installabile tramite il tool di slackware installpkg e volevo cimentarmi anche io provando a crearne uno solamente che queste guide parlano di scompattare, compilare, strippare... e non so proprio da dove dovrei cominciare. Praticamente io vorrei creare un pacchetto txz partendo dal mio programma scritto in C già compilato, come faccio ?

Avatar utente
hashbang
Packager
Packager
Messaggi: 1951
Iscritto il: ven giu 04, 2010 10:27
Nome Cognome: Luca De Pandis
Slackware: Slackware64-current
Kernel: 4.4.12
Desktop: dwm
Distribuzione: Windows 10 Pro
Località: Lecce
Contatta:

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda hashbang » dom apr 01, 2012 23:49

Per gli eseguibili:

Codice: Seleziona tutto

# mkdir -p pkg
# install -Dm 755 eseguibile pkg/path/che/ti/serve


Per tutto il resto (come le pagine di man):

Codice: Seleziona tutto

# install -Dm 644 file pkg/path/che/ti/serve


Copia la documentazione (se ne hai scritta), come la licenza:

Codice: Seleziona tutto

mkdir -p pkg/usr/doc/nomeapplicazione-versione
cp -a TXT1 TXT2... pkg/*usr/doc/nomeapplicazione-version

*Do per scontato che usi /usr come prefix. Qualora così non fosse, adatta il comando al path desiderato.

Strip dei binari (se lo hai già fatto, puoi anche evitare)

Codice: Seleziona tutto

strip pkg/percorso/dei/binari/*


Copia lo slack-desc (non è obbligatorio. Se non lo farai, però, non avrai la descrizione del pacchetto durante la sua installazione)

Codice: Seleziona tutto

mkdir -p pkg/install
cp slack-desc pkg/install


Setta il proprietario e crea il pacchetto

Codice: Seleziona tutto

cd pkg
chown -R root:root .
makepkg -l y -c n /path/che/vuoi/nomepacchetto-versione-architettura-*NumeroCompilazioniTag.txz


*Se stai creando il pacchetto per la prima volta, il NumeroCompilazioni settalo ad 1, come Tag inserisci le tue iniziali o il tuo alias.
Questo è quanto.

Se vuoi invece usare lo SlackBuild (che altro non è che uno script che racchiude i comandi da me dati), puoi guardare qui, dove troverai anche un template per lo slack-desc, qualora lo volessi creare.
There's a certain kind of programmer who'll look at any problem and say, 'I know, I will use XML.' Now he has two problems.

Stack is the new term for "I have no idea what I'm actually using". [Erich Schubert]

mandrago
Linux 1.0
Linux 1.0
Messaggi: 30
Iscritto il: ven mar 30, 2012 18:13
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4
Località: Trento

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda mandrago » lun apr 02, 2012 15:06

hashbang ha scritto:Per gli eseguibili:

Codice: Seleziona tutto

# mkdir -p pkg
# install -Dm 755 eseguibile pkg/path/che/ti/serve


Per tutto il resto (come le pagine di man):

Codice: Seleziona tutto

# install -Dm 644 file pkg/path/che/ti/serve


Copia la documentazione (se ne hai scritta), come la licenza:

Codice: Seleziona tutto

mkdir -p pkg/usr/doc/nomeapplicazione-versione
cp -a TXT1 TXT2... pkg/*usr/doc/nomeapplicazione-version

*Do per scontato che usi /usr come prefix. Qualora così non fosse, adatta il comando al path desiderato.

Strip dei binari (se lo hai già fatto, puoi anche evitare)

Codice: Seleziona tutto

strip pkg/percorso/dei/binari/*


Copia lo slack-desc (non è obbligatorio. Se non lo farai, però, non avrai la descrizione del pacchetto durante la sua installazione)

Codice: Seleziona tutto

mkdir -p pkg/install
cp slack-desc pkg/install


Setta il proprietario e crea il pacchetto

Codice: Seleziona tutto

cd pkg
chown -R root:root .
makepkg -l y -c n /path/che/vuoi/nomepacchetto-versione-architettura-*NumeroCompilazioniTag.txz


Da dove arriva questo txz? E' proprio questo che mi serve ! Grazie comunque per la spiegazione dettagliata.

*Se stai creando il pacchetto per la prima volta, il NumeroCompilazioni settalo ad 1, come Tag inserisci le tue iniziali o il tuo alias.
Questo è quanto.

Se vuoi invece usare lo SlackBuild (che altro non è che uno script che racchiude i comandi da me dati), puoi guardare qui, dove troverai anche un template per lo slack-desc, qualora lo volessi creare.

erio
Linux 3.x
Linux 3.x
Messaggi: 1171
Iscritto il: ven ott 09, 2009 19:25
Slackware: 13.37
Kernel: 3.0.7
Desktop: kde

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda erio » lun apr 02, 2012 18:22

mi pare che il "make" faccia il lavoro....

mandrago
Linux 1.0
Linux 1.0
Messaggi: 30
Iscritto il: ven mar 30, 2012 18:13
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4
Località: Trento

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda mandrago » lun apr 02, 2012 20:09

erio ha scritto:mi pare che il "make" faccia il lavoro....

In che modo ?

Avatar utente
d4z_c0nf
Packager
Packager
Messaggi: 1296
Iscritto il: mar mar 14, 2006 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce
Località: Salerno

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda d4z_c0nf » lun apr 02, 2012 20:20

Scusa in che modo cosa?
makepkg crea il pacchetto, vuoi sapere come fa?

Avatar utente
hashbang
Packager
Packager
Messaggi: 1951
Iscritto il: ven giu 04, 2010 10:27
Nome Cognome: Luca De Pandis
Slackware: Slackware64-current
Kernel: 4.4.12
Desktop: dwm
Distribuzione: Windows 10 Pro
Località: Lecce
Contatta:

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda hashbang » lun apr 02, 2012 20:37

mandrago ha scritto:[color=#FF0000]Da dove arriva questo txz? E' proprio questo che mi serve ! Grazie comunque per la spiegazione dettagliata
il txz è l'estensione del pacchetto.
È una forma ridotta dell'estensione tar.xz.
makepkg(8) altro non è che una versione più avanzata di GNU tar(1). È uno script che oltre a richiamare tar(1) per la compressione, gestisce anche i link simbolici e tutto il necessario per la pacchettizzazione del software su Slackware.

Per info più dettagliate, rimando ai man:
makepkg(8)
tar(1)
xz(1)
There's a certain kind of programmer who'll look at any problem and say, 'I know, I will use XML.' Now he has two problems.

Stack is the new term for "I have no idea what I'm actually using". [Erich Schubert]

mandrago
Linux 1.0
Linux 1.0
Messaggi: 30
Iscritto il: ven mar 30, 2012 18:13
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4
Località: Trento

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda mandrago » lun apr 02, 2012 23:02

Non ho ancora capito :(
Mi piacerebbe sapere come si procede per la creazione di un paccheto txz passo per passo da un semplice programma compilato in C che stampo hello world tutto qua, non mi serve altro.

Avatar utente
hashbang
Packager
Packager
Messaggi: 1951
Iscritto il: ven giu 04, 2010 10:27
Nome Cognome: Luca De Pandis
Slackware: Slackware64-current
Kernel: 4.4.12
Desktop: dwm
Distribuzione: Windows 10 Pro
Località: Lecce
Contatta:

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda hashbang » lun apr 02, 2012 23:13

mandrago ha scritto:Non ho ancora capito :(
Perdonami, ma sono io che non capisco.
Vuoi sapere come si costruisce un pacchetto passo per passo? Te l'ho scritto al mio primo post e ti ho linkato la nostra guida.
Vuoi sapere cos'è la stringa txz? Te l'ho spiegato al mio secondo post dove ti ho detto che è una forma ridotta dell'estensione completa "tar.xz".

Mi piacerebbe sapere come si procede per la creazione di un paccheto txz passo per passo da un semplice programma compilato in C che stampo hello world tutto qua, non mi serve altro.
Oltre a ciò che ti ho scritto al mio primo post, non devi fare altro.
There's a certain kind of programmer who'll look at any problem and say, 'I know, I will use XML.' Now he has two problems.

Stack is the new term for "I have no idea what I'm actually using". [Erich Schubert]

Avatar utente
d4z_c0nf
Packager
Packager
Messaggi: 1296
Iscritto il: mar mar 14, 2006 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce
Località: Salerno

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda d4z_c0nf » lun apr 02, 2012 23:51

Ma cosa ti manca? E' difficile capirlo. Ad intuito, penso che ti sfugga come sia strutturato il contenuto di un pacchetto.
A parte la directory "install" che potrai creare o meno, devi ricreare una struttura ad albero che ricalchi la /, per le directory utili.
Per esempio hello_world.c compilato produrrà un hello_world binario (o comunque lo vorrai chiamare), che presumibilmente tu vorrai che sia installato nella directory degli eseguibili della tua distro, tipo /bin /sbin /usr/bin ecc. Vedi tu.
A quel punto, mettiamo tu scelga /usr/bin, la struttura da craere sarà:

dir_padre(nome qualsiasi che scegli tu)
|_ usr
|_ bin

E all'interno di bin mettere l'eseguibile. Questo è per un caso semplice con un eseguibile.
All'interno della dir padre devi dare il makepkg come ti è stato suggerito, e ti viene creato il pacchetto.

mandrago
Linux 1.0
Linux 1.0
Messaggi: 30
Iscritto il: ven mar 30, 2012 18:13
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4
Località: Trento

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda mandrago » mar apr 03, 2012 14:02

hashbang ha scritto:Per gli eseguibili:

Codice: Seleziona tutto

# mkdir -p pkg
# install -Dm 755 eseguibile pkg/path/che/ti/serve


Per tutto il resto (come le pagine di man):

Codice: Seleziona tutto

# install -Dm 644 file pkg/path/che/ti/serve


Copia la documentazione (se ne hai scritta), come la licenza:

Codice: Seleziona tutto

mkdir -p pkg/usr/doc/nomeapplicazione-versione
cp -a TXT1 TXT2... pkg/*usr/doc/nomeapplicazione-version

*Do per scontato che usi /usr come prefix. Qualora così non fosse, adatta il comando al path desiderato.

Strip dei binari (se lo hai già fatto, puoi anche evitare)

Codice: Seleziona tutto

strip pkg/percorso/dei/binari/*


Copia lo slack-desc (non è obbligatorio. Se non lo farai, però, non avrai la descrizione del pacchetto durante la sua installazione)

Codice: Seleziona tutto

mkdir -p pkg/install
cp slack-desc pkg/install


Setta il proprietario e crea il pacchetto

Codice: Seleziona tutto

cd pkg
chown -R root:root .
makepkg -l y -c n /path/che/vuoi/nomepacchetto-versione-architettura-*NumeroCompilazioniTag.txz


*Se stai creando il pacchetto per la prima volta, il NumeroCompilazioni settalo ad 1, come Tag inserisci le tue iniziali o il tuo alias.
Questo è quanto.

Se vuoi invece usare lo SlackBuild (che altro non è che uno script che racchiude i comandi da me dati), puoi guardare qui, dove troverai anche un template per lo slack-desc, qualora lo volessi creare.


Ho fatto come hai detto nel primo passaggio ma non ha scaturito alcun txz ! Se non fosse ancora chiaro io quello che voglio fare è partire da un eseguibile ed arrivare ad un pacchetto txz installabile con installpkg !
Poi non ho capito da dove prendi il file "slack-desc".

Codice: Seleziona tutto

makepkg -l y -c n /path/che/vuoi/nomepacchetto-versione-architettura-*NumeroCompilazioniTag.txz

e questo passaggio, da dove lo prendi quel txz?

Avatar utente
d4z_c0nf
Packager
Packager
Messaggi: 1296
Iscritto il: mar mar 14, 2006 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce
Località: Salerno

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda d4z_c0nf » mar apr 03, 2012 14:25

Non lo prendi LO CREI (!) con makepkg. Quel comando serve appunto a creare un pacchetto txz.

Edit.
Dici che non capisci dove prende slack-desc. Forse hai pensato che "il non obbligatario" era riferito al copiarlo, invece è riferito proprio al file.
Quando installi un pacchetto tipico della slackware ti stampa una descrizione del pacchetto, quella descrizione è contenuta nello slack-desc.
Tra le varie guide nel wiki di questo sito trovi anche delle linee guida sulla realizzazione dello slack-desc.
Ultima modifica di d4z_c0nf il mar apr 03, 2012 14:30, modificato 1 volta in totale.

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

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda conraid » mar apr 03, 2012 14:29


mandrago
Linux 1.0
Linux 1.0
Messaggi: 30
Iscritto il: ven mar 30, 2012 18:13
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4
Località: Trento

Re: Come creare un pacchetto partendo da un mio programma?

Messaggioda mandrago » gio apr 05, 2012 17:25

Ringrazio tutti finalmente ci sto "capendo" qualcosa ! :)


Torna a “Packages”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite