Ich habe vor kurzem diebrew
Befehl auf meinem Debian-Rechner zur Installationtldr
Manpages auf meinem System. Der Befehl scheint nützlich zu sein, um Programme zu installieren, die nicht von Debian gepackt sind, und erfordert auch keine sudo
Installation von Paketen. Es gibt jedoch eine Einschränkung: Mit dem Befehl können nur wenige Pakete installiert werden brew
.
Ist es möglich, brew
die Installation von Paketen aus Debian-Repositorys zu konfigurieren?
Antwort1
Ist das möglich? Ja. Beide Programme sind Open Source. Ist das praktisch? Nicht wirklich.
Warum?
Paketmanager funktionieren mehr oder weniger so:
- Sie verfolgen die auf Ihrem System installierten Pakete (und deren Version)
- Dazu geben sie ihr eigenes Paketformat an (z. B. .deb) und verwenden diese Pakete als Anweisungen zur Installation und Verfolgung des Programms.
- Sie verfolgen auch Abhängigkeiten (z. B. „Dieses Programm benötigt OpenSSL, um zu funktionieren!“).
Aus diesem Grund ist ein System, das nur wenige Paketmanager verwendet, nicht die beste Idee:
- Jeder Paketmanager müsste über das zu installierende Paket informiert werden (z. B.
brew
müsste er wissen, dass Sie installiert habenfirefox
, undapt
müsste wissen, dass Sie installiert habentldr
). - Jeder Paketmanager müsste Abhängigkeiten von anderen Paketmanagern auflösen (z. B. „Brew: Dieses Programm benötigt
ncurses
, ist aberapt
bereits installiertncurses
, daher muss ich sie nicht abrufen!“).
Das Problem dabei 2
ist, dass Paketmanager eine Abstraktion der zugrunde liegenden Repositories darstellen. Leute wie Debian-Leute wählen die Pakete aus, die ihre Benutzer verwenden sollen, und stellen sie anderen zur Verfügung. Sie wählen diese Pakete jedoch auch aus, damit das System konsistent ist; sie möchten, dass möglichst wenige Pakete die größtmögliche Funktionalität bieten. Warum sollte man Ncurses Version 1, 2 und 3 installieren, wenn man mit Version 2 alles zum Laufen bringen kann?
Das erste Problem ist auch eine schlechte Nachricht. Die Paketmanager müssten sich gegenseitig darüber informieren, was sie tun, sonst könnten sie kollidieren ( brew
sie wüssten nicht, dass es ncurses
bereits installiert ist).
Warum ist es also schwierig?
- Paketmanager müssten eng zusammenarbeiten
- Paketmanager müssten strenge Richtlinien haben, was zu tun ist, wenn sie sich nicht auf Paketinhalte einigen können.
- Paketmanager müssten nahezu austauschbar sein, wobei der einzige sichtbare Unterschied die verfügbaren Programme sein müssten
- Paketmanager müssten in der Lage sein, im Falle von Aktualisierungen die Repositories der anderen zu verfolgen.
Dies bedeutet effektiv, dass Sie einen Paketmanager benötigen, der aus den beiden Paketmanagern besteht. Sie benötigen also ein neues Programm.
Was kann ich also tun?
Zunächst würde ich mich fragen: „Warum möchte ich das tun?“ Ehrlich gesagt sollte Ihre Distribution Ihnen viele Pakete zur Verfügung stellen. Wenn Sie mit der Anzahl Ihrer Pakete nicht zufrieden sind, sollten Sie vielleicht zu einer anderen Distribution wechseln, die mehr Pakete bietet, als Sie benötigen.
Wenn du bistWirklichda ich unbedingt versuche, dies zum Laufen zu bringen brew
, würde ich die folgende Lösung vorschlagen, obwohl ich nicht sicher bin, ob das wirklich möglich ist:
- Besorgen Sie sich die Quellen von
brew
. - Lernen Sie das Format der Braurezepte kennen.
- Schreiben Sie ein Programm, das Rezepte automatisch in Debian-Pakete übersetzt.
- Ändern Sie
brew
es so, dass bei jeder Ausführung das Programm zum Übersetzen von Rezepten in.deb
Pakete aufgerufen wird bzw. in den Repos Ihrer Distribution nach den Programmen sucht und dannapt
zum Installieren dieses Pakets aufgerufen wird.
Solche Änderungen würden wahrscheinlich viel Zeit in Anspruch nehmen und sind nicht einfach. Ich schlage vor, die Distribution zu wechseln oder stattdessen bei Ihrem Paketmanager zu bleiben.
Antwort2
Ja, aber es wäre eine nicht unerhebliche Verschwendung von Aufwand. Es wäre sinnvoller, eineppafür tldr oder es in die wichtigsten Debian-Repositories aufnehmen zu lassen, oder einfach zu verwendenhttps://tldr.ostera.io.