web-dev-qa-db-ja.com

Debianリポジトリからパッケージをインストールするように `brew`を設定することは可能ですか?

最近、Debianマシンに brew コマンドをインストールして、システムに tldr manページをインストールしました。このコマンドは、Debianによってパッケージ化されていないプログラムをインストールするのに役立つように見えます。また、パッケージをインストールするためにSudoを必要としません。ただし、制限があります。コマンドbrewを使用してインストールできるパッケージはごくわずかです。

Debianリポジトリからパッケージをインストールするようにbrewを設定することは可能ですか?

2
GAD3R

出来ますか?はい。どちらのプログラムもオープンソースです。便利ですか?あんまり。

どうして?

パッケージマネージャーは多かれ少なかれ次のように機能します。

  • システムにインストールされているパッケージ(およびそのバージョン)を追跡します
  • これを行うために、彼らはパッケージの独自の形式(例:.deb)を指定し、プログラムのインストール方法と追跡方法の説明としてこれらのパッケージを使用します
  • また、依存関係も追跡します(たとえば、「このプログラムが機能するにはopensslが必要です!」)

これが、パッケージマネージャーをほとんど使用しないシステムを持つことが最善のアイデアではない理由です。

  1. 各パッケージマネージャーは、インストールされているパッケージについて通知を受ける必要があります(たとえば、brewfirefoxをインストールしたことを知る必要があり、apttldrをインストールしたことを知る必要があります)
  2. 各パッケージマネージャーは、他のパッケージマネージャーからの依存関係を解決する必要があります(例:「Brew:このプログラムにはncursesが必要ですが、aptはすでにncursesをインストールしているので、プルする必要はありません!」)。

ご覧のとおり、2の問題は、パッケージマネージャーが基盤となるリポジトリの抽象化であるということです。 Debianの人々のような人々は、ユーザーに使用してもらいたいパッケージを選択し、他の人が利用できるようにします。ただし、システムの一貫性を保つために、これらのパッケージも選択します。彼らは、最小限のパッケージで最大限の機能を提供することを望んでいます。すべてをバージョン2で動作させることができるのに、なぜncursesバージョン1、2、および3をインストールするのですか?

最初の問題も悪いニュースです。パッケージマネージャーは、自分が何をしているのかを互いに通知する必要があります。そうしないと、衝突する可能性があります(brewncursesが既にインストールされていることを知りません)。

では、なぜ難しいのでしょうか。

  1. パッケージマネージャーは緊密に協力する必要があります
  2. パッケージマネージャーは、パッケージに同意できない場合の対処方法について厳格なポリシーを設定する必要があります。
  3. パッケージマネージャーは、利用可能なプログラムだけが目に見える違いで、ほぼ交換可能に作業できる必要があります。
  4. パッケージマネージャーは、更新の場合に互いのリポジトリを追跡できる必要があります。

これは事実上、2つのパッケージマネージャーで構成されるパッケージマネージャーが必要になることを意味します。新しいプログラムが必要になります。

それで、なにかお手伝いできますか?

まず、「どうしてこんなことをしたいの?」と自問します。正直なところ、ディストリビューションはたくさんのパッケージを提供するはずです。パッケージの数に満足できない場合は、必要なパッケージが多い他のディストリビューションに切り替えることを検討してください。

もしあなたが本当にこのbrewを機能させるのに必死なら、私は次の解決策を提案しますが、これが完全に可能かどうかはわかりません:

  1. brewのソースを取得します。
  2. 醸造レシピの形式を学びます。
  3. レシピをDebianパッケージに自動的に変換するプログラムを作成します。
  4. brewを変更して、実行するたびにプログラムを呼び出してレシピを.debパッケージに変換し、ディストリビューションのリポジトリ内のプログラムを検索してから、aptを呼び出してこのパッケージをインストールします。

このような変更を行うには、おそらく多くの時間がかかり、簡単なことではありません。代わりに、ディストリビューションを変更するか、パッケージマネージャーに固執することをお勧めします。

6
MatthewRock

はい、しかしそれは努力の取るに足らない無駄でしょう。 tldrに対して ppa を作成するか、メインのDebianリポジトリに受け入れられるようにするか、 https://tldr.ostera.io を使用する方が理にかなっています。

0
user1133275