Post by rootkitPost by Rhodesapt-get install gamemode
a saperlo (grazie)
ad ogni modo, la domanda voleva essere anche intesa come generale.
Se scarico un programma, poi come si installa? #maledettoterminale
dipende. se scarichi il tgz dei binari solitamente si tratta di
scompattare l'archivio e stop. se invece si tratta dei sorgenti vuol dire
che devi procedere alla compilazione e installazione seguendo le
istruzioni del readme. a volte è banale e a volte richiede un minimo di
know-how.
Già, in linea teorica meglio sarebbe poi installare
in una directory piuttosto che nella root del systema,
ed infine creare un bel pacchetto tagliato e cucito
secondo i crismi della propria distribuzione.
Da lì poi si installa con gli strumenti della distribuzione,
dpkg, ma credo anche via apt si possa installare il pacchetto
stoccato locale, rpm/yum e simili in un’altra vida usavo
fedora... magari ora yum non c’è neanche più, oppure anche
installpkg/slackpkg, pacman ecc ecc ecc.
Questo modo di procedere garantisce o dovrebbe garantire la
pulizia del sistema in caso di disinstallazione upgrade del
pacchetto ecc ecc...
Eh.. ma come si fa a crearsi il pacchetto?
Si legge il readme in generale.
Di solito si tratta di settare il “PREFIX” al configure
(e anche qui dipende dalla distribuzione, in ogni caso
è una convenzione, una scelta), che istruisce la successiva
compilazione a impostare ad esempio che i binari eseguibili
vadano in /usr/bin oppure in /usr/local/bin, le librerie
in /usr/lib o /usr/lib64 o /usr/local/lib ecc ecc.
Il configure è uno script alla fine, e ha un’opzione “--help”
che spiega tutte le opzioni che gli puoi passare.
./configure --help
Una volta lanciato il configure crea il makefile che viene
poi eseguito quando lanci qualcosa di simile a “make“.
Questo comando “lavora” i sorgenti, creando eseguibili,
librerie, documentazione e altri files vari.
Infine quando gli dai l’argomento “install”, quindi:
make install
va ad installare tutti quei files creati in una struttura
di dir e subdir così come specificato al configure,
/usr/bin
/usr/lib
/usr/share
/etc
/var
installare significa copiare quei files creati al make
nelle varie directories. Di solito se specifichi:
make DESTDIR=/tmp/nome-pacchetto install
invece di installare partendo dalla root dir “/”,
installa nella dir specificata dalla var DESTDIR,
ma non funziona sempre così, per capirlo bisogna
appunto leggere le istruzioni del README o
da un eventuale README.packagers o similari se presenti
oppure ancora sbirciare dentro il Makefile.md o chi
per esso, e al limite anche editarlo in modo da
specificare appunto al DESTDIR, la dir di destinazione
da considerare come punto di partenza per creare la
struttura delle subdir e copiarci dentro i vari files.
Una volta che hai la tua bella dir /tmp/nome-pacchetto
ci vai dentro e con “cd” e da lì lanci il comando per
creare il pacchetto della tua distribuzione.
Esempio per slackware:
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
OUTPUT di solito si imposta a /tmp, è dove va a finire
il pacchetto creato, niente di ché, basta sapere dov è.
Sempre per quel che riguarda slackware ad esempio ogni
pacchetto pubblicato del repo ufficiale o di terzi è
accompagnato da uno “slackbuild” che praticamente è uno
scrpt bash piuttosto semplice, in cui ci sono tutti i
comandi che dovrebbero essere dati a terminale per patchare,
configurare, compilare, copiare in DESTDIR, e creare infine
il pacchetto installabile.
Qua trovi il riferimento più nutrito di slackbuilds per
pacchetti extra rispetto al repo ufficiale.
https://slackbuilds.org/
Ad esempio per “dwm” (il gestore finestre minimalista da
suckless.org):
https://slackbuilds.org/slackbuilds/14.2/desktop/dwm/dwm.SlackBuild
https://slackbuilds.org/repository/14.2/desktop/dwm
Questa roba facilita di brutto soprattutto se combinata
con tool come “sbopkg”, ma non esime dal leggere il
readme, che sul sito sopra è riportato anche sulla pagina
web di ogni pacchetto ospitato.
La stessa cosa si può vedere per altre distro, ad esempio
vedi AUR di archlinux e i suoi PKGBUILD, che in pratica
sono le “ricette” per creare il pacchetto.
Da li poi lo installi con lgli strumenti di sistema.
Se non fai così, quando poi vuoi disinstallarli non riesci,
perchè non ricordi più quali files erano stati sparpagliati
nel sistema dal duro e puro “make install”.
Invece se hai il pacchetto fai:
installpkg pacchetto
removepkg pacchetto
upgradepkg pacchetto
oppure:
slackpkg install file:///tmp/pacchetto.tgz
slackpkg upgrade pacchetto
slackpkg remove pacchetto
La creazione dei pacchetti con debian/*buntu oppure
con altre basate su rpm è leggermente più complessa,
anche con Arch non è così terra terra. Comunque il
concetto non cambia, solo hanno sistemi di gestione
dei pacchetti più “raffinati” rispetto a slack che
richiedono però maggiori attenzioni da questo punto
di vista.