it-swarm.it

Esiste un modo semplice per installare i tarball?

La maggior parte del software Linux è confezionata in tarball. Tutti richiedono solo pochi comandi per compilarli e installarli.

La mia domanda è; abbiamo gdebi per i pacchetti debian standalone, quindi perché non un'app per installare tarball allo stesso modo? Perché un processo così apparentemente semplice non è automatizzato? Perché dobbiamo continuare a intimidire e allontanare i nuovi utenti con idee di software di compilazione?

6
Dante Ashton

Tali processi sono automatizzati. Li trovi principalmente nei pacchetti .deb o .rpm. L'unica differenza (a livello che stai pensando) tra un tarball e un .deb è la compilazione. I tarball generalmente contengono codice sorgente e creano file, non binari precompilati (anche se a volte contengono anche quelli). .debs sono precompilati su più architetture.

Ecco un'analogia per te:

un .deb è un camion che trasporta un'intera macchina.

Un tarball è un camion che trasporta una scatola di parti di automobili e un manuale che spiega come assemblare le parti per ottenere l'auto.

Quindi, quando installi qualcosa da un .deb (o un .rpm su quelle "altre" distro) stai installando le stesse cose che otterrai in quel tarball, solo con il lavoro già fatto per te.

Anche se non sono d'accordo con txwikinger sulla progressione/regressione. Non c'è niente di male nei tarball e li uso spesso per racchiudere codice o schermate, file di registro o cosa devi inviare alle persone per vari motivi. Scarico anche tarball di origine per leggere il codice sorgente di un programma in modo da poter vedere cosa succede se riscontro un problema.

12
DreadPirateJeff

Invece di dedicare tempo a semplificare l'installazione dei tarball, sarebbe più vantaggioso spenderlo nel pacchetto del software per Debian/Ubuntu. Ciò non solo migliorerà le offerte delle distribuzioni basate su Debian come Ubuntu, ma installerà anche correttamente le dipendenze

5
Adam Collard

Checkinstall può generare debs dalla fonte. (Può anche generare pacchetti RPM e slackeware)

Quindi esegui ./configure

checkinstall -D 

per creare un pacchetto debian.

Penso che lo strumento sia principalmente pensato per permetterti di aggiornare e rimuovere in modo pulito il software sulla tua macchina e non per creare distribuzioni per altri - ma se non hai dipendenze complesse, dovrebbe fare quello che vuoi.

3
Robert Christie

i tarball sono generalmente altamente personalizzabili. anche se con il 90% di questi basta andare ./configura && make install, altri richiedono parametri personalizzati o nel peggiore dei casi usano passaggi diversi per costruire l'applicazione.

come un normale utente non dovresti avere a che fare con i tarball. potresti essere meglio controllare se è prima nel repository di qualcuno.

il problema con i tarball (come metodo di installazione per gli utenti finali) è che: - se qualcosa va storto, devi rapidamente essere molto esperto di tecnologia per risolverlo - non aderisce necessariamente alla struttura delle cartelle della tua distribuzione - non sempre è possibile farlo facilmente disinstallare nuovamente il software.

alla tua seconda domanda: sì, questo processo è automatizzato con pacchetti debian-source o pacchetti rpm-source. ma quelli non sono problematici e penso che possano essere aperti in gdebi. non sono sicuro che tu lo sappia, ma un tarball è il modo più semplice in cui uno sviluppatore può diffondere il proprio codice nel mondo. non importa quale pasticcio abbiano nel loro progetto, basta comprimere la fonte e caricarla --- questo è l'unico requisito che conosco per un tarball: deve contenere la fonte di qualche app e infine fornire uno script di compilazione.

quindi anche se non funzionerà per usare direttamente quei tarball, penso che tu stia toccando un problema molto importante qui: il packaging di Linux è un casino. è un sacco di lavoro anche per una singola distribuzione ed è praticamente impossibile per un piccolo progetto mantenere pacchetti per una varietà di distro.

c'erano (e ci sono ancora) un sacco di progetti che hanno cercato di unificare il packaging attraverso le distro, ma alla fine questo non è mai andato da nessuna parte. almeno nulla di così comune come un pacchetto msi per windows o un dmg sul mac.

so che questa risposta deve essere frustrante, ma se non ho perso una rivoluzione di recente è quello per cui siamo bloccati per ora.

3
hansi

Potresti scrivere un piccolo script bash se lo stai facendo molto ...

#!/bin/bash
FILE=$1
DIR="${FILE%.tar.gz}"
tar -xzf $1
cd $DIR
./configure
make
Sudo make install

Chiamalo tarinstall (o qualcosa del genere), mettilo nel tuo percorso e poi fai semplicemente:

tarinstall thisnewpackage.tar.gz

Anche se concordo sul fatto che è molto meglio utilizzare un sistema di packaging come .debs o .rpms.

2
x3ja

App diverse sono scritte da sviluppatori diversi con standard diversi. Sarebbe un compito molto difficile avere un'applicazione per installare tutti i tarball. Invece abbiamo debs che sono precondizionati. I tarball forniscono anche un problema di dipendenza che debian e derivati ​​hanno risolto con apt e attitudini che sarebbero quasi impossibili da raggiungere solo con un tarball.

1
Nigel

Come utente normale probabilmente non vorrai andare in giro a installare tarball. I team Debian e Ubuntu impiegano molto tempo a personalizzare e verificare i pacchetti upstream prima di metterli nel repository. Creare un pacchetto è un grosso casino di dipendenze e script di installazione specifici per la distribuzione. Non esiste un modo semplice per automatizzare il processo.

Tuttavia, se sei un programmatore o stai cercando di contribuire a un progetto a monte, alla fine dovrai installare tarball ufficiali. Sebbene non sia automatico, ci sono alcuni strumenti che aiutano a semplificare il processo.

Se vuoi solo correggere qualche bug in un programma che hai installato, puoi ottenere il codice sorgente con apt-get sourcenomepacchetto e hackerare. Se vuoi inviare quella patch a monte però è meglio se inizi con un tarball a monte.

La maggior parte dei progetti là fuori utilizza autotools che automatizza una buona quantità di decisioni in fase di compilazione. Di solito puoi dire se un progetto usa autotools perché c'è uno script di configurazione nella cartella. Se esiste, puoi compilare e installare il pacchetto usando una riga ./configure && make && make install. A meno che tu non abbia creato il pacchetto prima, probabilmente fallirà perché manchi alcune dipendenze in fase di compilazione.

Se il pacchetto che si sta tentando di installare è già nei repository Ubuntu è possibile ottenere APT per installare automaticamente tutte le librerie necessarie per compilare il tarball con apt-get build-depnomepacchetto. Se non ci sono nuove dipendenze, di solito è tutto ciò che devi fare prima di poter compilare il programma. Se non sei nei repository di Ubuntu che sei da solo, controlla la documentazione del progetto per scoprire di cosa ha bisogno.

Un problema con il ./configure && make && make install procedura è che di solito non esiste un make uninstall. Esiste un programma chiamato checkinstall che eseguirà make install per te e registrerà il pacchetto in APT in modo da poterlo disinstallare in un secondo momento. Checkinstall non sempre funziona, e dipende da quanto sia importante il pacchetto stai installando è sul sistema, potrebbe essere molto pericoloso.

1
wm_eddie

I pacchetti .deb sono tarball con le informazioni necessarie per aggiungere una corretta gestione dei pacchetti.

Se installi un tarball, come assicurarti che tutte le dipendenze siano soddisfatte? Tutte le librerie necessarie sono installate?

Come si desidera rimuovere un pacchetto installato solo dal tarball?

Si perdono tutte le garanzie che offre la gestione dei pacchetti basata su debian e che, in particolare, facilitano l'installazione di software da parte di nuovi utenti. Per rendere più semplice l'installazione di tarball così come sono, sarebbe un passo indietro, non un progresso.

A parte questo, come può

./configure && make && Sudo make install

essere ulteriormente semplificato? (Se consideri un utente che deve essere in grado di affrontare i problemi sollevati sopra)

0
txwikinger

Come nei post precedenti, checkinstall ti aiuterà a installare e disinstallare l'applicazione di origine in modo efficiente. Dal momento che crea pacchetti nativi (rpm per redhat e deb per debian, incluso Ubuntu), è molto facile gestire questi pacchetti con il gestore di pacchetti nativo come il software center. Controlla questo articolo per maggiori informazioni: findasolution.in checkinstall la gestione dei pacchetti resa semplice in linux . È originariamente restituito per Centos ma funzionerà anche in Ubuntu.

0
aneeshep