Ich möchte nur ein Paket installieren!

Ich möchte nur ein Paket installieren!

Ich habe mehrere Stunden damit verbracht, ein Paket zu installieren, aber es hat nicht geklappt. So etwas passiert in einer Linux-Umgebung anscheinend manchmal.

Hintergrund: Das Paket, das ich installieren möchte, ist verfügbar als 1) ein .debfür x86 statt x64, 2) ein .Run, 3) ​​Quelle und 4) ein OSX-Installationsprogramm. Das OSX-Installationsprogramm funktioniert einfach. Bei einer Neuinstallation von Debian 7 habe ich das .deb, das .Runund das Kompilieren aus der Quelle ausprobiert. Alle drei haben mich durch eine Reihe von Hürden geführt. Die grundlegendsten Probleme scheinen darin zu bestehen, dass Debian 7 mir auf jedem dieser Wege eine zu alte Version von LibCund eine zu alte Version von gab Ocaml. Die meiste Zeit habe ich damit verbracht, einen apt-get-Befehl nach dem anderen auszuführen, um Abhängigkeiten aufzulösen.

Frage: Welche Tools erleichtern die Installation von Paketen, indem sie den Prozess so weit wie möglich automatisieren? Bei allen Paketen, sogar wenn sie aus dem Quellcode erstellt werden, ist klar, welche Versionen welcher Abhängigkeiten sie benötigen, oder? Warum können dann nicht alle Abhängigkeiten einfach automatisch aufgelöst werden?

Ich würde mich freuen, wenn ich einfach ein Verzeichnis auf meinem System erstellen könnte, das eine Kopie jeder einzelnen Abhängigkeit enthält, die mein Paket erfordert, damit es in seiner eigenen kleinen Umgebung ausgeführt werden kann, ohne die Versionen anderer Pakete auf meinem System zu ändern. Ich bin mir nicht sicher, ob das möglich ist. Ich bin mir sicher, dass es IRGENDEINE Möglichkeit geben muss, einfach zu sagen: „Gib mir das Paket namens Foo, Version 4.2.3“ und alles andere für mich erledigen zu lassen.

Antwort1

Die Erfahrung ist ziemlich identisch. Ihr Problem ist, dass Debian (stabil) keine hochmoderne Distribution ist, sondernstabil. Das bedeutet, dass die Repositories ältere Paketversionen enthalten (es wäre übrigens eine gute Idee, den Paketnamen zu erwähnen). Sie vergleichen es mit einer neuen Version von OSX, die neuere Versionen wichtiger Bibliotheken wie enthält libc.

Die Installation .debvon Paketen, die für die von Ihnen verwendete Debian-Version gepackt wurden, ist sehr einfach und unkompliziert. Glauben Sie mir, ich musste früher die meisten Dinge aus dem Quellcode installieren. Wenn aptitude install foo.4.2.3.debSieSindsagen Sie „Gib mir das Paket namens Foo, Version 4.2.3“ und lassen Sie alles andere für Sie erledigen. Wenn es nicht in den Repos ist, weil Sie eine alte Version verwenden, ist das nicht die Schuld des Paketmanagers.

Ich würde daher empfehlen, eine neue Frage zu stellen und zu fragen, wie Sie das spezifische Paket installieren können, das Sie erhalten möchten. Bedenken Sie, dass es libcwahrscheinlich einfacher ist, Ihr gesamtes System auf die testingoder experimental-Repositorys zu aktualisieren, wenn eine neuere Version von erforderlich ist. Obwohl es möglich ist, nur libc zu aktualisieren, ist dies weder einfach noch unkompliziert, sieheHier.

Außerdem sollten Sie sich darüber im Klaren sein, dass diesnichtein triviales Problem. Obwohl Abhängigkeiten von Paketmanagern sehr gut verwaltet werden, können sie in Konflikt geraten. Besonders wenn man mit etwas so Grundlegendem wie arbeitet libc.

Dieser Befehl druckt eine Liste der Pakete aus, die von abhängen libc.

apt-cache rdepends libc6

Auf meinem Debian enthält diese Liste 16056 verschiedene Pakete. Wenn Sie libc aktualisieren, weil das Paket foovon einer neueren Version abhängt, wie soll der Paketmanager dann mit der Tatsache umgehen, dass 16056 Pakete von der installierten Version abhängen? Woher weiß er, ob sie auch mit der neueren Version kompatibel sind?

Antwort2

Ich möchte hier einfach meinen Senf dazu geben und sagen, dass ich Ihre Erwartung für einfach falsch halte.

Die Lösungen zielen auf zwei völlig unterschiedliche Zielgruppen ab. Apple kontrolliert streng, welche Software verfügbar ist, und es handelt sich dabei um eine schmale Auswahl an Anwendungen.

Ich habe mehr Leuten geholfen, als ich zugeben möchte, die ein OSX-System verwendeten, auf dem sie das Open-Source-Projekt „X“ installieren wollten und die unter OSX mit der falschen Version von Xcode dieselben Hürden überwinden mussten, oder sie verwendeten die offizielle Version von Subversion und mussten eine Version von MacPorts oder HomeBrew installieren. Es machte buchstäblich keinen Unterschied, mit den verschiedenen Bibliotheken und Abhängigkeiten zu kämpfen, bis Sie dieses Paket „X“ installiert hatten.

Ich habe noch nie ein magisches Tool gesehen, mit dem man die Abhängigkeiten einfach in ein Verzeichnis legen und die Anwendung „X“ installieren kann. Es existiert einfach nicht und wird es wahrscheinlich auch nie geben. Es gab eine Reihe von Versuchen, die Abhängigkeits- und Paketverwaltung zu verbessern, aber es ist einfach ein äußerst kompliziertes Problem, das gelöst werden muss.

Apt, Yum usw. leisten alle gute Arbeit, aber das Problem ist, dass sie versuchen, ein ungebundenes Problem zu lösen, was normalerweise unmöglich ist. Sie können nur 80 % der Lösungen dafür finden oder Lösungen, die in „den meisten“ Fällen funktionieren.

So einfach ist das.

verwandte Informationen