[Risolto] Pacchetto slackware da rpm
Moderatore: Staff
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
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.
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
[Risolto] Pacchetto slackware da rpm
Re: Pacchetto slackware da rpm
Mettiamo che il file pippo.jpg andrà in /usr/share/pixmaps e dovrà essere symlinkato in /opt/share/pixmaps
Nello SlackBuild (e quindi anche direttamente da terminale) dai:
Codice: Seleziona tutto
ln -sf /usr/share/pixmaps/pippo.jpg /path/temporaneo/di/pacchettizzazione/opt/share/pixmaps/pippo.jpg
Codice: Seleziona tutto
(cd /opt/share/pixmaps; rm pippo.jpg; ln -sf /usr/share/pixmaps/pippo.jpg)
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
hashbang ha scritto:I link simbolici li puoi gestire così:
Mettiamo che il file pippo.jpg andrà in /usr/share/pixmaps e dovrà essere symlinkato in /opt/share/pixmaps
Nello SlackBuild (e quindi anche direttamente da terminale) dai:In questo modo crei un link simbolico apparentemente corrotto (in quanto punta ad un file inesistente). Quando darai il makepkg esso si renderà conto che esiste un symlink ed aggiungerà al doinst.sh (creato al momento dallo stesso makepkg) la rigaCodice: Seleziona tutto
ln -sf /usr/share/pixmaps/pippo.jpg /path/temporaneo/di/pacchettizzazione/opt/share/pixmaps/pippo.jpg
La subshell si occuperà di eliminare il symlink corrotto e di inserire quello definitivo corretto.Codice: Seleziona tutto
(cd /opt/share/pixmaps; rm pippo.jpg; ln -sf /usr/share/pixmaps/pippo.jpg)
Grazie mille hash (una volta eri atomix600 per caso?) odesso provo e ti faccio sapere l'esito...
Re: Pacchetto slackware da rpm
Stando alla mia firma, direi di sila mia firma ha scritto:formerly known as atomix600
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
Codice: Seleziona tutto
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
Codice: Seleziona tutto
/home/nico/linuxqq
cat: /slack-desc: No such file or directory
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
Codice: Seleziona tutto
SRCDIR=`dirname $0`
[ "${SRCDIR:0:1}" == "." ] && SRCDIR=${CWD}/${SRCDIR}
Codice: Seleziona tutto
Searching for symbolic links:
opt/linuxqq/bin/qq -> /usr/bin/qq
opt/linuxqq/share/applications/linuxqq.desktop -> /usr/share/applications/linuxqq.desktop
opt/linuxqq/share/tencent/qq/qq.png -> /usr/share/icons/qq.png
Making symbolic link creation script:
( cd opt/linuxqq/bin ; rm -rf qq )
( cd opt/linuxqq/bin ; ln -sf /usr/bin/qq qq )
( cd opt/linuxqq/share/applications ; rm -rf linuxqq.desktop )
( cd opt/linuxqq/share/applications ; ln -sf /usr/share/applications/linuxqq.desktop linuxqq.desktop )
( cd opt/linuxqq/share/tencent/qq ; rm -rf qq.png )
( cd opt/linuxqq/share/tencent/qq ; ln -sf /usr/share/icons/qq.png qq.png )
It is recommended that you make these lines your new installation script.
Would you like to make this stuff the install script for this package
and remove the symbolic links ([y]es, [n]o)? y
Removing symbolic links:
removed `./opt/linuxqq/bin/qq'
removed `./opt/linuxqq/share/applications/linuxqq.desktop'
removed `./opt/linuxqq/share/tencent/qq/qq.png'
Creating your new ./install/doinst.sh...
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
hashbang ha scritto:Stando alla mia firma, direi di sila mia firma ha scritto:formerly known as atomix600
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
Codice: Seleziona tutto
# link al menù
cd $PKG/opt/$PRGNAM/share/applications
ln -sf /usr/share/applications/linuxqq.desktop linuxqq.desktop
cd -
# link al binario eseguibile
cd $PKG/opt/$PRGNAM/bin
ln -sf /usr/bin/qq qq
cd -
# link all'icona
cd $PKG/opt/$PRGNAM/share/tencent/qq/
ln -sf /usr/share/icons/qq.png qq.png
cd -
Re: Pacchetto slackware da rpm
La variabile $CWD l'hai dichiarata? Il fatto che non riconosca $CWD, rendendo di fatto il path /slack-desc, invece di $CWD/slack-desc, mi fa pensare a questo.N1cuz ha scritto:Per quanto riguarda i symlink tutto ok, ora l'unico problema che mi rimane è che non trova lo slack-desc, perchè lo cerca in root /slack-desc...ho controllato la directory di lavoro ed è correttaCodice: Seleziona tutto
mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc
Codice: Seleziona tutto
/home/nico/linuxqq cat: /slack-desc: No such file or directory
Se non l'hai dichiarata, metti questa dichiarazione:
Codice: Seleziona tutto
CWD=$(pwd)
makepkg li rimuove quando crea il pacchetto, se il parametro -l viene settato con l'argomento "y".Il problema rimane la creazione dei symlink, vengono creati e poi rimossi
man 8 makepkg ha scritto:Options
-l, --linkadd y|n
If y, add any symbolic links found to the install script (doinst.sh) and delete them. This is the recommended action. If this option is not used, makepkg will prompt if symbolic links are found.
Questo è strano. Dopo aver creato il pacchetto, dai un:vengono rimossi anche i file a cui dovrebbero linkare
Codice: Seleziona tutto
$ tar tJvf nomepacchetto.txz
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
Si l'avevo dichiarata, e non ho capito come mai il path è /slack-desc, sembra che pwd restituisca / ma non è così perchè ho controllato, lavora nella directory corrente...hashbang ha scritto:La variabile $CWD l'hai dichiarata? Il fatto che non riconosca $CWD, rendendo di fatto il path /slack-desc, invece di $CWD/slack-desc, mi fa pensare a questo.N1cuz ha scritto:Per quanto riguarda i symlink tutto ok, ora l'unico problema che mi rimane è che non trova lo slack-desc, perchè lo cerca in root /slack-desc...ho controllato la directory di lavoro ed è correttaCodice: Seleziona tutto
mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc
Codice: Seleziona tutto
/home/nico/linuxqq cat: /slack-desc: No such file or directory
Se non l'hai dichiarata, metti questa dichiarazione:Codice: Seleziona tutto
CWD=$(pwd)
Spariscono tutti i file a cui faccio (vorrei far) puntare i symlink nelle varie /usr/bin /usr/share/icons ecc...makepkg li rimuove quando crea il pacchetto, se il parametro -l viene settato con l'argomento "y".Il problema rimane la creazione dei symlink, vengono creati e poi rimossiman 8 makepkg ha scritto:Options
-l, --linkadd y|n
If y, add any symbolic links found to the install script (doinst.sh) and delete them. This is the recommended action. If this option is not used, makepkg will prompt if symbolic links are found.Questo è strano. Dopo aver creato il pacchetto, dai un:vengono rimossi anche i file a cui dovrebbero linkaree controlla se i file sono presenti.Codice: Seleziona tutto
$ tar tJvf nomepacchetto.txz
Re: Pacchetto slackware da rpm
Rileggendo il messaggio, direi che l'errore è giusto.N1cuz ha scritto:è proprio sbagliato il symlink, mi butta in /opt/linuxqq/bin/ il link a /usr/bin invece dell'opposto
Hai sbagliato la sintassi di ln(1).
Se vuoi fare un symlink in /usr da /opt, devi fare il contrario.
Codice: Seleziona tutto
ln -sf /opt/$PRGNAM/share/applications/linuxqq.desktop $PKG/usr/share/linuxqq.desktop
ln -sf ln -sf /opt/PRGNAM/bin/qq $PKG/usr/bin/qq
ln -sf /opt/$PRGNAM/share/icons/qq.png $PKG/usr/share/icons/qq.png
A questo punto penso che ciò sia derivato dal fatto che hai sovrascritto i binari con i symlink, a causa della sintassi errata.vengono rimossi anche i file a cui dovrebbero linkare
Offtopic: Al posto di dare cd -, puoi o usare il comando diretto come ho postato io oppure usare una subshell
Codice: Seleziona tutto
( cd quellochevuoi
comandochevuoi )
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
Mammamia che cerebroleso!!! Non mi ero minimamente accorto di aver invertito la sintassi...hashbang ha scritto:Rileggendo il messaggio, direi che l'errore è giusto.N1cuz ha scritto:è proprio sbagliato il symlink, mi butta in /opt/linuxqq/bin/ il link a /usr/bin invece dell'opposto
Hai sbagliato la sintassi di ln(1).
Se vuoi fare un symlink in /usr da /opt, devi fare il contrario.Codice: Seleziona tutto
ln -sf /opt/$PRGNAM/share/applications/linuxqq.desktop $PKG/usr/share/linuxqq.desktop ln -sf ln -sf /opt/PRGNAM/bin/qq $PKG/usr/bin/qq ln -sf /opt/$PRGNAM/share/icons/qq.png $PKG/usr/share/icons/qq.png
A questo punto penso che ciò sia derivato dal fatto che hai sovrascritto i binari con i symlink, a causa della sintassi errata.vengono rimossi anche i file a cui dovrebbero linkare
Offtopic: Al posto di dare cd -, puoi o usare il comando diretto come ho postato io oppure usare una subshell[/offtopic]Codice: Seleziona tutto
( cd quellochevuoi comandochevuoi )
Adesso lo slackbuild è a posto, la cosa che non mi funziona e che non capisco è che scompattando l'rpm con
Codice: Seleziona tutto
rpm2cpio *.rpm | cpio -i
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
- N1cuz
- Linux 2.x
- Messaggi: 333
- Iscritto il: lun 6 ott 2008, 0:41
- Nome Cognome: Nicola Bartolomei
- Slackware: 14.1
- Kernel: 4.3.3
- Desktop: xfce4
- Località: Pieve a Nievole (PT)
Re: Pacchetto slackware da rpm
Codice: Seleziona tutto
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_new_subpixbuf: assertion `GDK_IS_PIXBUF (src_pixbuf)' failed
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_scale_simple: assertion `src != NULL' failed
(qq:22769): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GdkPixbuf-CRITICAL **: gdk_pixbuf_add_alpha: assertion `pixbuf != NULL' failed
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
[14:54:14][TLOG][warn]res_db: error message-> unable to open database file
(qq:22769): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
^C