「apt」と「pip」を使ったパッケージのインストールの違い

「apt」と「pip」を使ったパッケージのインストールの違い

私は依存関係をインストールしようとしてきました。設定ツール、明らかにモジュールは以下を使用してインストールされました。簡単。ところでバージョンが間違っているようで、次にインストールしてみました。指す変更があるかどうかを確認するためのものです(スポイラー:何も変更されていないようです)。

次の違いは何ですか(存在する場合)?

pip3 install setuptools

そして:

apt install python3-setuptools

答え1

誰でも次の点の違い(ある場合)を説明していただきありがとうございます。

最高レベル:システムと競合する可能性がある場合は、pip installシステムにインストール(--systemまたは--userデフォルト以外のLinuxディストリビューションでは省略)を使用しないでください。これは非常に安全です。--userapt install

説明する:

aptLinuxディストリビューション用のソフトウェアパッケージインストールツールです。今日のLinuxディストリビューションは、主に中断することなく互いに連携するパッケージをインストールする方法を提供することに焦点を当てています。たとえば、libreofficeが使用するライブラリをインストールしようとしているが、そのバージョンがlibreofficeバージョンと互換性がない場合、Linuxディストリビューションのツールは残念ながらコマンドを実行するためにlibreofficeが要求されたバージョンと機能しないため、削除する必要があることをお知らせします。

これはほとんど起こらないという事実は、現代のLinuxディストリビューションがここでどれだけうまく機能するかを示しています。通常、インストールできるほとんどのソフトウェアはapt一緒にうまく機能します。

pip一方、コンピュータに他のどのソフトウェアが必要かはわかりません。 pipにシステムブート機能を破壊する特定のバージョンをインストールするように指示すると、引き続きそうなります。

pipPython専用です。そのマシンでは、Pythonに関連するすべてが「公正なゲーム」であり、任意に処理できると仮定します。正直なところ、これはほとんど真実ではありません。たとえば、Fedora(使用している他のLinuxディストリビューション)ではそうです。いいえ)、Easy Crack Installation Tool(必要に応じてdnfFedora)を使用できます。aptpip

それでは、なぜpipまだ存在するのですか?まあ、あります。はいこの場合、pipは、自分が見るPythonのすべての部分が自分の制御下にあると仮定できます。仮想環境。これにはPythonモジュール自体がインストールされておらず、コンピュータの他のソフトウェアと競合しません。単に他のソフトウェアが環境を理解していないからです。

それを使うのはとても簡単です。以下を使用して、このような環境を設定できます。

python3 -m venv ~/bertsexperiment

~/bertsexperimentこれにより、Pythonコンテンツがインストールされるフォルダが設定されます。その後、好きな場所でその環境を「有効にする」ことができます(実際には一部の環境変数を変更するだけです)。ただし、これは現在のプロセスとそのプロセスで始まる項目にのみ影響します。試してみてください:

source ~/bertsexperiment/bin/activate

このシェルは、将来のすべてのPythonツールがこのフォルダを「プレフィックス」として使用するように設定されます。

たとえば、このシェルでsetuptoolsを更新したい場合は、上記のsourceようにアクティブ化スクリプトを実行するとpip3 install --upgrade setuptoolsvirtualenvにインストールされます。

簡単に言うと:

  • 疑わしい場合は、aptソフトウェアスタックを連携させるのがディストリビューションの作業なので、使用してください。
  • pip現在のプロジェクトでのみ使用されており、システムの他のものも使用されていないフォルダに何かをインストールしたい場合を除き、このオプションを使用しないでください。
    したがって、これを使用したい唯一のリアルタイム時間は、Python virtualenvを使用するときです。

答え2

それは実際に最終目標に依存します。

  • 他のDebianパッケージのどれがこのパッケージに依存していますか?確かにそれを使用してくださいapt
  • または逆にあなたが望む作るDebian または Debian ベースのディストリビューション (Ubuntu、Mint など) 用のパッケージまたはパッケージのセット - 繰り返しますが、確かにapt陸上にあります。
  • インストールしたいものには、Debianで見つけたものよりも最新のバージョンが必要です。バックポートされた.debパッケージは以下にあります。https://backports.debian.org/または任意のPPAであるかもしれませんが、この時点ではpip
  • 独自のPythonスクリプトを開発したいと思っています。通常、次を使用します。pip
    • ...または、アップストリームのGithubプロジェクトから直接インストールすることも、最先端の技術を入手することもできます。しかし、あまりにも拡張しないでください。専用のソフトウェア開発チームがない場合は、依存する最も価値があり重要なパッケージを1つまたは2つを除いて、かなり安定したリリースに固執してください。

検討してみると、最終的に意味があるのは成熟サイクルのどの位置にあるかによって異なります。公式のDebianパッケージの長所は非常に安定しており、時間テストを行ったことですが、最もクールな新機能を含む最新バージョンを実行できないという欠点があります。

また、一部のDebianパッケージは、パッケージ化されたソフトウェアをより広いDebianエコシステムと統合するために多くの努力を払うことに注意してください。任意のPythonスクリプトの場合、これは一般的に重要ではありませんが、Debianシステム管理ツールまたはある種のインフラストラクチャプロジェクトの場合は、明らかにアップストリームにないか、デフォルトで有効化および構成されない可能性があるすべてのDebian部分が必要です。

関連情報