Slackpkg: mi serve qualche delucidazione...

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
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.
Rispondi
vheon
Linux 0.x
Linux 0.x
Messaggi: 34
Iscritto il: gio 21 mag 2009, 13:07

Slackpkg: mi serve qualche delucidazione...

Messaggio da vheon »

Salve a tutti... sono qui a chiedere il vostro aiuto per il programmino in oggetto... allora parto con la cosa che io non ne conoscevo l'esistenza, anche perchè prima di installare slackware mi sono un pò informato, e tutti dicevano che slackware era brutto e cattivo perchè non aveva un gestore dei pacchetti come apt che ha un repository aggiornato, e che risolve le dipendenze da solo... ma questo non mi aveva preoccupato in quanto sicuramente se uno installa un pacchetto deve sapere cosa sta facendo e deve sapere cosa gli serve per quella determinata cosa... ma a quanto ho visto ora non è così in quanto da quello che ho capito, con questo strumento, che non ho trovato ne sul libro ufficiale (tradotto) di slackware ne su s4d, fa tutto ciò che fa apt tranne il fatto che usiamo dei repository non ufficiali della distribuzione, e che le dipendenze vengono soddisfatte dal repository (penso che ogni pacchetto sul repository sia già con le dipendenze soddisfatte o simile) e non lo stesso programma... ho capito bene?

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Slackpkg: mi serve qualche delucidazione...

Messaggio da joe »

Intanto: http://www.slackpkg.org/documentation.html

L'ultima volta che ho usato slackpkg emi pare dalla documentazione che non sia cambiato nulla:

- non supporta la risoluzione automatica delle dipendenze
- si appoggia unicamente al repository ufficiale o ad un suo mirror (solo http o ftp).

Quindi: la gestione delle dipendenze su slackware è tradizionlamente demandata all'utente.
Apt, pacman, yum ecc ecc che gestiscono i pacchetti su altre distribuzioni supportano la risoluzione automatica delle dipendenze.
La differenza sta nel come sono fatti i pacchetti slackware:
ufficialmente tali pacchetti non contengono alcuna informazione circa le dipendenze necessarie per far girare il software che siinstalla.
Invece i pacchetti .deb o .rpm prevedono questa caratteristica.

Su slackware puoi installare tutto quelleo che vuoi, salvo poi scoprire che un software non gira perchè magari gli manca qualche libreria installata.
Slackpkg non fa eccezione, non aggiunge nulla ai pkgtools ufficiali e di fatti penso che si il tool quanto più vicino ai dettami di Pat.
Slackpkg serve solo a collegarsi ad un repo ufficiale remoto e scaricare il pacchetto, poi passa la palla ai pkgtools...

Su altre distribuzioni che prevedono la risoluzione automatica delle dipendenze, per installare un pacchetto devi installare anche le dipendenze, ricordo parecchie imprecazioni le prime volte che armeggiavo con gli rpm...poi penso cisia la possibilità di forzare il sistema, ma in quei sistemi è meglio affidarsi ai tools come yum o aptget.

Ti chiederai, ma come fa un nuvo arrivato ad usare slackware. Semplice:
se lanci un eseguibile cche non può girare perchè manca una libreria ottieni un errore che ti dice quale file manca.
Noto il file mancante devi cercare a quale pacchetto tale file appartiene e poi installare il pacchetto.

Il comando ldd in questi casi è molto utile: preso l'eseguibile /usr/bin/pippo che non funziona perchè gli mancano diverse librerie, se dai

ldd /usr/bin/pippo

ottieni tutte le librerie che necessita pippo per funzionare, ed alcune risulteranno "not found" ovvero non presenti...sono quelle che devi installare.
Quindi per capire cosa manca basta:

ldd /usr/bin/pippo |grep not

E ottieni la lista ci ciò che manca.
Il passo successivo sta nel capire a quale pacchetto appartiene ciascun file indicato dall'output precedente.
Se il pacchetto mancante appartiene al repository ufficiale, c'è un motore di ricerca a questo indirizzo: http://packages.slackware.it/
Se il pacchetto mancante appartiene al repo slacky o a quello ufficiale, c'è un motore di ricerca messo in piedi di recente da teox99: http://www.teoxonline.com/utils/sse/
A breve direttamente su slacky.eu dovrebbe aggiunta questa possibilità al motore di ricerca.

in tali motori, tu metti il nome de flie che ti manca, e loro ti ritornano il nome del pacchetto .tgz in cui sta quel file.

C'è anche un metodo alternativo:
I files MANIFEST.bz2 presenti nei repositories (ufficiali e non) sono files di testo contenenti i nomi di tutti i files presenti nel repository (non i pacchetti, prprio i files....): quindi ti basta usare grep dopo avere scompattato tali files crcando il pattern di ricerca del tuo file mancante e trovi a quale pacchetto appartiene.

Determinato il pacchetto: lo installi e ripeti l'operazione per gli altri files macanti. Così risolvi le dipendenze a mano, senza la necessità di conoscere molto del sistema.


Detto questo, ci sono strumenti che si allontanano dalla tradizione slackware e funzionano tipo yum o apt, si tratta di slaptget e swaret...magari ce ne sono anche altri....non so. Comunque questi supportano le dipendenze ma mi pare che anche i pacchetti creati nei repo debbano essere concepiti per supportare questi tool ovvero avere al loro interno informazioni sui pacchetti da installare per soddisfare le dipendenze richieste dal programma.
Non ho mai usato programmi del genere quindi non ti so dire di più, aspetta se mai altre risposte.

Tornando a slackpkg, ha il limite che usa solo il repo ufficiale quindi se devi utilizzare pacchetti di slacky per esempio non serve.
Ho sempre trovato scomodo dovermi collegare via web al repository di slacky e cercare il pacchetto così anche perchè non ho una connessione decente e comunque lo trovo scomodo così uso uno script fatto in casa che consulta i files PACKAGES.TXT presenti nei repo e cerca un pattern di ricerca che gli dò come argomento. Da anni lo uso con soddisfazione e devo ringraziare l'aiuto che mi diede tale David Paleino che ancora frequenta il newsgroup icoli.
Più volte ho deciso di mettere mano a quello script per migliorarlo, perchè poi alla fine l'ho scritto io e ora noto alcune ineleganze. Però poi ha sempre fatto il suo lavoro e quindi non ho mai avuto l'esigenza reale di migliorarlo.

Per la questione dipendenze ti cito anche sto link ad una recente discussione:
viewtopic.php?f=4&t=28728&start=15

Avatar utente
ildiama
Linux 3.x
Linux 3.x
Messaggi: 536
Iscritto il: mar 27 dic 2005, 16:49
Slackware: mine
Kernel: 2.6.alto..
Desktop: KDE4
Località: Senigallia
Contatta:

Re: Slackpkg: mi serve qualche delucidazione...

Messaggio da ildiama »

joe ha scritto: Il passo successivo sta nel capire a quale pacchetto appartiene ciascun file indicato dall'output precedente.
questo passo lo puoi fare con slackpkg. Metti che l'output del comando precedente sia
libpluto.so.1.2.3 not found
puoi sapere a che pacchetto appartiene facendo

Codice: Seleziona tutto

slackpkg search libpluto
e slackpkg ti elenca i pacchetti in cui libpluto esiste.

PS: io uso slackpkg per aggiornare/installare/cercare i pacchetti ufficiali e devo dire che mi trovo molto bene.

Ciao

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Slackpkg: mi serve qualche delucidazione...

Messaggio da Blallo »

io ti consiglio slackyd, leggero, funziona da console, e puoi colelgarlo sia al repo di slacky che a quello ufficiale (basta che dai uno slackyd -U e ti cerca tutti gli aggiornamenti che però poi devi installare a mano con upgradepkg)

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Slackpkg: mi serve qualche delucidazione...

Messaggio da Ansa89 »

C'è anche slapt-get (che è quello che uso io).

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Slackpkg: mi serve qualche delucidazione...

Messaggio da joe »

ildiama ha scritto:

Codice: Seleziona tutto

slackpkg search libpluto
e slackpkg ti elenca i pacchetti in cui libpluto esiste.

PS: io uso slackpkg per aggiornare/installare/cercare i pacchetti ufficiali e devo dire che mi trovo molto bene.
Questo non lo sapevo....fammi provare un comando estremo:

Codice: Seleziona tutto

$ slackpkg lib
[....]
[ installed ] - libvorbis-1.2.0-i486-1
[uninstalled] - libwmf-0.2.8.4-i486-3
[uninstalled] - libwmf-docs-0.2.8.4-noarch-3
[uninstalled] - libwnck-2.18.3-i486-1
[uninstalled] - libwpd-0.8.14-i486-1
[ installed ] - libxml2-2.6.31-i486-2
[uninstalled] - libxslt-1.1.22-i486-1
[  upgrade  ] - lzo-2.03-i486-1sl --> lzo-2.02-i486-1
[uninstalled] - mhash-0.9.9-i486-1
[uninstalled] - mm-1.4.2-i486-2
[uninstalled] - mpfr-2.3.1-i486-1
[ installed ] - ncurses-5.6-i486-3
[ installed ] - neon-0.26.4-i486-1
[uninstalled] - netpbm-10.35.22-i486-1
[ installed ] - pango-1.20.0-i486-1
[uninstalled] - pcre-7.6-i486-1
[uninstalled] - pilot-link-0.12.3-i486-2
[...]
bello... :D
indica le librerie installate, aggiornate e non presenti....non lo spaevo.
Sarebbe interessante, prendere slackpkg "as is" e adeguarlo anche ad altri repositories, però non so sarà scritto in C (e chi cicapisce...). Lo script che uso io cerca solo i pacchetti non i singoli files e non verfica che un paccetto sia presente o meno... tuttavia avendolo scritto di pugno praticamente personalmente mi da una certa sicurezza, perchè ho la possibilità di mettervi mano facilmente avendone una certa confidenza.
Di slackyd ne avevo sbirciato una discussione sul forum, ma non lo conosco....vista la community da cui proviene direi che potrebbe essere il caso di dargli un'occhiata.

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: Slackpkg: mi serve qualche delucidazione...

Messaggio da conraid »

joe ha scritto: Sarebbe interessante, prendere slackpkg "as is" e adeguarlo anche ad altri repositories, però non so sarà scritto in C
è scritto in bash

vheon
Linux 0.x
Linux 0.x
Messaggi: 34
Iscritto il: gio 21 mag 2009, 13:07

Re: Slackpkg: mi serve qualche delucidazione...

Messaggio da vheon »

Grazie Joe, e grazie a tutti... devo solo provare ora... certo a pensare che ho scoperto slackpkg nel topic per installare kde 4.2 è da ridere...

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Slackpkg: mi serve qualche delucidazione...

Messaggio da joe »

Ah, grazie dell'info... :D
Dando un'occhiata di sfuggita all'eseguibile, ci siaccorge che l'update del repository avviene attraverso una funzione chiamata "updatefilelist", tale funzione è definita in un file chiamato /usr/libexec/slackpackg/core-functions.sh.

Questa funzione scarica il Changelog.txt e valuta se è il caso di eseguire l'update.
Eventualmente scarica i files MANIFEST FILELIST.TXT CECKSUMS.md5 PACKAGES.TXT.

Quindi alla fine il tool si basa su questi Files per reperire informazioni generli sui pacchetti e sui files presenti sul repo.
Non so se è così semplice adeguare il tool al repo di slacky o ad altri e poi visto che vi è anche slackyd, per quanto riguarda slacky non vi è necessità direi.

Comunque resta il fatto che essendo uno script, ha il vantaggio di essere comprensibile anche a chi non conosce linguaggi più imporanti...
Questo è un fatto rilevante per chi volesse mettere mano alla creazione di uno script simile.
A presto :)

Rispondi