Newsgroup: it.comp.os.linux.iniziare
Titolo: tar.xz da installare

volevo provare ad installare questo
https://github.com/FeralInteractive/gamemode
 
 
ma, scusate la domanda ignorantona, come si fa?
scarico il gamemode-1.4.tar.xz e poi lo decomprimo, nella cartella apro 
il terminale? e cosa lancio?

nella pagina suddetta leggi il contenuto del README.md

 
 
dici le dipendenze?
 
apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev
 

non e' nel paragrafo: "Build and Install GameMode" ?


"GameMode packages are available for Ubuntu, Debian, Solus, the AUR, 
Gentoo, Fedora, OpenSUSE, Mageia and possibly more."
 
questo vuol dire che non devi scaricare il tar.gz ma basta fare:
 
apt-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

 
 
dici questa?
 
git clone 
https://github.com/FeralInteractive/gamemode.git
 
cd gamemode
git checkout 1.4 # omit to build the master branch
./bootstrap.sh
 
c'è scritta così tanta roba che quando è tanto, è troppo.

eh si...
 
comunque, in generale, tramite i sorgenti(git) scarichi l'ultimissima versione, a discapito della versione contenuta nei repository che e' piu stabile 


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.