it-swarm-eu.dev

Gibt es eine einfache Möglichkeit, Tarballs zu installieren?

Die meiste Linux-Software ist in Tarballs gepackt. Alle benötigen nur ein paar Befehle, um sie zu kompilieren und zu installieren.

Meine Frage ist; Wir haben Gdebi für eigenständige Debian-Pakete. Warum also nicht eine App, um Tarballs auf die gleiche Weise zu installieren? Warum ist ein so scheinbar einfacher Prozess nicht automatisiert? Warum müssen wir weiterhin neue Benutzer mit Ideen zum Kompilieren von Software einschüchtern und vertreiben?

6
Dante Ashton

Diese Prozesse sind automatisiert. Sie erhalten sie meist in .deb- oder .rpm-Paketen. Der einzige Unterschied (auf der Ebene, an die Sie denken) zwischen einem Tarball und einem .deb ist die Kompilierung. Tarballs enthalten im Allgemeinen Quellcode und make-Dateien, keine vorkompilierten Binärdateien (obwohl sie manchmal auch solche enthalten). .debs werden über mehrere Architekturen hinweg vorkompiliert.

Hier ist eine Analogie für Sie:

ein .deb ist ein LKW, der ein ganzes Auto befördert.

Ein Tarball ist ein LKW, der eine Kiste mit Autoteilen und eine Anleitung enthält, die Ihnen erklärt, wie Sie die Teile zusammenbauen, um das Auto zu erhalten.

Wenn Sie also etwas aus einer .deb-Datei (oder einer .rpm-Datei in diesen "anderen" Distributionen) installieren, installieren Sie dasselbe Material, das Sie in diesem Tarball erhalten, nur mit der Arbeit, die Sie bereits erledigt haben.

Obwohl ich mit txwikinger über Fortschritt/Rückschritt nicht einverstanden bin. An Tarballs ist überhaupt nichts auszusetzen, und ich verwende sie häufig, um Code oder Screenshots, Protokolldateien oder Dinge, die Sie aus verschiedenen Gründen an andere senden müssen, zusammenzufassen. Ich lade auch Quell-Tarballs herunter, um den Quellcode für ein Programm zu lesen, damit ich sehen kann, was passiert, wenn ich auf ein Problem stoße.

12
DreadPirateJeff

Anstatt Zeit damit zu verbringen, die Installation von Tarballs zu vereinfachen, wäre es insgesamt vorteilhafter, die Software für Debian/Ubuntu zu verpacken. Dies wird nicht nur das Angebot von Debian-basierten Distributionen wie Ubuntu verbessern, sondern auch Abhängigkeiten korrekt installieren

5
Adam Collard

Checkinstall kann Debs aus dem Quellcode generieren. (Es können auch RPMs und Slackeware-Pakete generiert werden.)

Sie führen dann ./configure aus

checkinstall -D 

um ein Debian-Paket zu erstellen.

Ich denke, das Tool soll Ihnen hauptsächlich ermöglichen, Software auf Ihrem eigenen Computer sauber zu aktualisieren und zu entfernen und keine Distributionen für andere zu erstellen - aber wenn Sie keine komplexen Abhängigkeiten haben, sollte es tun, was Sie wollen.

3
Robert Christie

tarballs sind normalerweise sehr anpassbar. Obwohl bei 90% von ihnen nur ./configure && make install ausgeführt wird, erfordern einige andere benutzerdefinierte Parameter oder verwenden im schlimmsten Fall unterschiedliche Schritte, um die Anwendung zu erstellen.

imho als normaler benutzer solltest du dich nicht mit tarballs befassen müssen. Vielleicht ist es besser, zuerst zu überprüfen, ob es sich in einem Repository befindet.

das Problem mit Tarballs (als Installationsmethode für Endbenutzer) besteht darin, dass: - wenn etwas schief geht, Sie schnell technisch versiert sein müssen, um es zu beheben - sich nicht unbedingt an die Ordnerstruktur Ihrer Disto halten müssen - dies ist nicht immer einfach möglich Software erneut deinstallieren.

zu ihrer zweiten frage: ja, dieser prozess wird mit debian-source-paketen oder rpm-source-paketen automatisiert. aber die sind nicht problematisch und ich denke, sie können nur in gdebi geöffnet werden. Ich bin nicht sicher, ob Sie wissen, aber ein Tarball ist der einfachste Weg, wie ein Entwickler seinen Code in die Welt bringen kann. Egal, was für ein Durcheinander sie in ihrem Projekt haben, packen Sie einfach den Quellcode aus und laden Sie ihn hoch - das ist die einzige mir bekannte Voraussetzung für einen Tarball: Er muss den Quellcode einer App enthalten und schließlich ein Build-Skript bereitstellen.

obwohl es nicht funktionieren wird, diese Tarballs direkt zu verwenden, denke ich, dass Sie hier ein sehr wichtiges Thema ansprechen: Linux-Verpackung ist ein Chaos. Es ist eine Menge Arbeit, selbst für eine einzelne Distribution, und es ist praktisch unmöglich für ein kleines Projekt, Pakete für eine Vielzahl von Distributionen zu verwalten.

es gab (und gibt immer noch) eine reihe von projekten, die versuchten, die verpackung in allen distros zu vereinheitlichen. Zumindest nichts, was so häufig vorkommt wie ein MSI-Paket für Windows oder ein DMG auf dem Mac.

ich weiß, dass diese Antwort frustrierend sein muss, aber wenn ich in letzter Zeit keine Revolution verpasst habe, bleiben wir erst einmal dabei.

3
hansi

Sie könnten ein kleines Bash-Skript schreiben, wenn Sie dies viel tun ...

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

Nennen Sie es tarinstall (oder so), schreiben Sie es in Ihren Pfad und machen Sie dann einfach:

tarinstall thisnewpackage.tar.gz

Obwohl ich der Meinung bin, dass es viel besser ist, ein Verpackungssystem wie .debs oder .rpms zu verwenden.

2
x3ja

Verschiedene Apps werden von verschiedenen Entwicklern mit unterschiedlichen Standards geschrieben. Es wäre eine sehr schwierige Aufgabe, eine einzige Anwendung zur Installation aller Tarballs zu haben. Stattdessen haben wir Debatten, die vorab ausgeführt werden. Tarballs stellen auch ein Abhängigkeitsproblem dar, das von Debian und Derivaten mit apt und aptitude behoben wurde, das mit nur einem Tarball so gut wie unmöglich zu erreichen wäre.

1
Nigel

Als normaler Benutzer möchten Sie wahrscheinlich nicht um die Installation von Tarballs herumgehen. Die Debian- und Ubuntu-Teams verbringen viel Zeit damit, Upstream-Pakete anzupassen und zu überprüfen, bevor sie sie in das Repository stellen. Das Erstellen eines Pakets ist ein großes Durcheinander von Abhängigkeiten und verteilungsspezifischen Installationsskripten. Es gibt einfach keine einfache Möglichkeit, den Prozess zu automatisieren.

Wenn Sie jedoch Programmierer sind oder einen Beitrag zu einem vorgelagerten Projekt leisten möchten, müssen Sie eventuell offizielle Tarballs installieren. Obwohl nicht automatisch, gibt es einige Tools, die den Prozess erleichtern.

Wenn Sie nur einen Fehler in einem von Ihnen installierten Programm beheben möchten, können Sie den Quellcode mit apt-get sourcePaketname abrufen und loslegen. Wenn Sie diesen Patch Upstream senden möchten, ist es besser, wenn Sie mit einem Upstream-Tarball beginnen.

Die meisten Projekte verwenden Autotools, die eine ganze Reihe von Entscheidungen zur Kompilierungszeit automatisieren. In der Regel können Sie feststellen, ob ein Projekt Autotools verwendet, da sich im Ordner ein Konfigurationsskript befindet. In diesem Fall können Sie das Paket in einer Zeile erstellen und installieren ./configure && make && make install. Sofern Sie das Paket nicht zuvor erstellt haben, wird es wahrscheinlich fehlschlagen, da einige Abhängigkeiten zur Kompilierungszeit fehlen.

Wenn sich das Paket, das Sie installieren möchten, bereits in den Ubuntu-Repositories befindet, können Sie APT zur automatischen Installation aller Bibliotheken, die Sie zum Kompilieren des Tarballs mit apt-get build-deppackagename. Wenn es keine neuen Abhängigkeiten gibt, ist dies normalerweise alles, was Sie tun müssen, bevor Sie das Programm kompilieren können. Wenn es nicht in den Ubuntu-Repositories enthalten ist, die Sie selbst haben, überprüfen Sie die Dokumentation des Projekts, um herauszufinden, was es ist braucht.

Ein Problem mit der Prozedur ./configure && make && make install Ist, dass es normalerweise kein make uninstall Gibt. Es gibt ein Programm namens checkinstall, das make install für Sie ausführt und das Paket in APT registriert, damit Sie es später deinstallieren können. Checkinstall funktioniert jedoch nicht immer und hängt davon ab, wie wichtig das Paket ist Wenn Sie das System installieren, kann dies sehr gefährlich sein.

1
wm_eddie

.deb-Pakete sind Tarballs, denen die erforderlichen Informationen für eine ordnungsgemäße Paketverwaltung hinzugefügt wurden.

Wenn Sie nur einen Tarball installieren, wie stellen Sie sicher, dass alle Abhängigkeiten erfüllt sind? Alle notwendigen Bibliotheken sind installiert?

Wie möchten Sie ein Paket entfernen, das nur vom Tarball installiert wird?

Sie verlieren alle Sicherheitsvorkehrungen, die die debian-basierte Paketverwaltung bietet, und das macht es insbesondere so einfach, Software von neuen Benutzern zu installieren. Es wäre ein Rückschritt, nicht ein Fortschritt, wenn sie die Installation von Tarballs so wie sie sind vereinfachen könnten.

Davon abgesehen, wie kann

./configure && make && Sudo make install

weiter vereinfacht werden? (Wenn Sie einen Benutzer in Betracht ziehen, der in der Lage sein muss, mit den oben angesprochenen Problemen umzugehen)

0
txwikinger

Wie in den obigen Beiträgen wird checkinstall Ihnen helfen, die Quellanwendung auf effiziente Weise zu installieren und zu deinstallieren. Da native Pakete erstellt werden (rpm für RedHat-Versionen und deb für Debian-Versionen, einschließlich Ubuntu), ist es sehr einfach, diese Pakete mit nativen Paketmanagern wie Software Center zu verwalten. In diesem Artikel finden Sie weitere Informationen: findasolution.in checkinstall Paketverwaltung leicht gemacht unter Linux . Es ist ursprünglich für Centos gedacht, funktioniert aber auch in Ubuntu.

0
aneeshep