バイナリパッケージとソースパッケージ:どちらを使用する必要がありますか?
使用するパッケージマネージャーに関係なく、Linuxにプログラムをインストールする方法は大きく2つあります。ビルド済みのパッケージを使用するか、プログラムを自分でコンパイルします。最近では、通常、前者がデフォルトで優先されますが、ソースコードからのコンパイルを検討する場合があります。
バイナリパッケージとは何ですか?
Linuxにプログラムをインストールすることは、通常、Windowsにソフトウェアをインストールする従来の方法とはかなり異なります。ベンダーのWebサイトからインストーラーをダウンロードするのではなく、ファイルは通常Linuxディストリビューションに合わせて調整されたプログラムのリポジトリから取得されます。このリポジトリには、LinuxパッケージマネージャーまたはLinuxアプリストアを使用してアクセスします。
これらのリポジトリのプログラムを構成するファイルは、アーカイブ形式で提供されます。これにより、すべてが1つのファイルにバンドルされ、簡単にアクセスして配布できます。たとえば、DebianはDEB形式を使用してプログラムを保存および配布します。これらのバンドルはバイナリパッケージと呼ばれます 。
これらのファイルを抽出してコンピューター(通常はパッケージマネージャーまたはアプリストア)にインストールするには、特別なプログラムが必要です。これらのツールは、インストールしたファイルの追跡やソフトウェアの更新の管理など、他の便利な機能も実行します。
すべてのソフトウェアは、CやC++などの特定のプログラミング言語で記述されたソースコードと呼ばれるテキスト行で構成されています。通常、このソースコードをアーカイブにバンドルしてパッケージと呼ぶことはできません。これらの行は、コンピューターが理解して実行できる言語に翻訳する必要があります。
このプロセスはコンパイルと呼ばれ、最終的にはコンピューターで実行できるバイナリが作成されます。パッケージとソフトウェアの違いは、ソフトウェアバイナリが、構成ファイルなどの他のものとともにパッケージ内に一緒に保存されることです。
「ソースから」のインストールとは何ですか?
「ソースから」プログラムをインストールするということは、パッケージマネージャーを使用せずにプログラムをインストールすることを意味します。ソースコードをコンパイルし、代わりにバイナリをコンピュータにコピーします。
ほとんどの場合、プロジェクトのソースコードは、GitHub、GitLab、Bitbucketなどのホスティングサービスからダウンロードできます。大規模なプログラムでは、個人のWebサイトでソースコードをホストすることもあります。コードは通常、アーカイブ形式(ソースパッケージとも呼ばれます)で圧縮されます。 。
特別なツールセットは、構築プロセスを自動化するのに役立ちます。 Linuxデスクトップでは、これは多くの場合、 makeと呼ばれるコマンドラインプログラムの形式で提供されます。 。さまざまな言語で記述されたソースコードには、それらをバイナリに変更するための特定のコンパイラとコマンドが必要です。 makeプログラムは、このプロセスを自動化します。
この自動化が機能するために、プログラムはmakeに makefileを提供します それはそれに何をしてコンパイルするかを教えてくれます。最近では、通常、CMakeなどの特別なソフトウェアによって自動的に生成されます。ここから始めます。ここから、ソフトウェアにコンパイルする機能を正確に指定できます。
たとえば、次のコマンドは、CMakeを使用してCalligraOfficeSuiteの構成ファイルを生成します。作成されたファイルは、makeプログラムにCalligraのWriterコンポーネントのみをコンパイルするように指示します。
cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra
これを行った後、人がしなければならないのは、makeツールを実行して、結果をコンパイルしてコンピューターにコピーすることだけです。これは次の方法で行われます:
make
make install
これはプログラムをコンパイルするための一般的なパターンですが、ソースパッケージをインストールする方法は他にもたくさんあります。たとえば、Gentoo Linuxにはこれを処理する方法が組み込まれているため、プロセスがはるかに高速で簡単になります。ただし、バイナリパッケージの構築には、上記のコマンドよりもいくつかの手順が必要です。
Linuxを使用している場合は、インストールしたソフトウェアを誰かがプリコンパイルした可能性があります。これは、ソースパッケージを使用するよりもはるかに一般的になっています。しかし、なぜですか?
バイナリパッケージには、コンパイルされたインストールファイル以上のものが含まれています。また、パッケージマネージャーがすべてのプログラムを簡単に追跡できるようにする情報も保存されます。たとえば、DEBファイル(DebianおよびDebian派生物のパッケージ形式)には、プログラムが実行する必要のある他のソフトウェアやその現在のバージョンなどの重要な情報も含まれています。
これにより、プログラムを正常に実行するために必要な他のファイルについて心配する必要がないため、パッケージのインストールがはるかに簡単になります。パッケージマネージャーは、パッケージ自体からその情報を読み取り、必要なすべての依存関係を自動的にダウンロードできます。
ソースからプログラムをインストールする場合、コードを独自のバイナリパッケージにコンパイルしない限り、あなた そのソフトウェアの管理を担当します。それを機能させるために必要な他のプログラムを覚えて、自分でインストールする必要があります。
パッケージマネージャーのリポジトリを管理している人は、バイナリの問題をテストし、表示された問題を修正するために最善を尽くす傾向があります。これにより、プログラムの安定性が向上する可能性があります。これは、ソースからインストールした人が見逃してしまう可能性があります。
Plusパッケージは通常、システムで確実に実行されるように、一連の厳密なルールに準拠する必要があります。たとえば、DebianとUbuntuの両方に、他の多くのLinuxディストリビューションと同様にポリシーマニュアルがあります。
一部のプログラムは、同じソフトウェア依存関係の異なるバージョンに依存して実行されます。パッケージリポジトリはこれらの競合を解決するために最善を尽くしているため、これについて心配する必要はありません。
ソースからプログラムをインストールすることは、誰もが行う必要のあることではありません。バイナリパッケージを使用すると、PCの保守が一般的に簡単になるためです。それでも、この少し複雑なプログラムのインストール方法を使用することには、まだいくつかの利点があります。
プログラムの信頼性を高めることの欠点の1つは、改善と修正に時間がかかることです。結果として、これは古いバージョンのソフトウェアを使用することにつながる可能性があります。最新で最高のものが欲しい人にとっては、それと引き換えに少し不安定なものを好むかもしれません。
プログラムをコンパイルせずにこのニーズに応えるLinuxオペレーティングシステムがありますが、いくつかの欠点があります。たとえば、セットパッケージバージョンを頻繁にリリースしないソフトウェアは、ソースからインストールするよりも、リポジトリで最新の状態に保つのが困難です。
これは、バイナリパッケージは通常、プログラムの公式リリースから作成されるためです。そのため、これらのバージョン間の変更は通常考慮されません。ソースから独自のソフトウェアをコンパイルすることで、これらの変更からすぐに恩恵を受けることができます。
Linuxオペレーティングシステムに、事前に作成したいソフトウェアがない可能性もあります。その場合は、ソースからインストールすることが唯一の選択肢です。
ソースパッケージを使用するもう1つの利点は、インストールするプログラムをより細かく制御できることです。バイナリリポジトリからインストールする場合、パッケージをカスタマイズする方法に制限があります。
たとえば、コマンドラインベースのオーディオおよびビデオコンバーターであるFFmpegを見てください。デフォルトでは、膨大な数の機能が付属しており、そのうちのいくつかは決して触れないかもしれません。たとえば、JACKオーディオサポートはFFmpegで利用できますが、このソフトウェアは通常、実稼働環境でのみ使用されます。
FFmpegをコンパイルすると、不要なものを削除して、より軽く、ニーズに合わせて調整することができます。そして、同じことが他のヘビー級プログラムにも当てはまります。
リソースが不足している場合は、機能を削除することで負荷を軽減できます。多くのローエンドコンピュータに搭載されているChromeOSがGentooLinuxをベースにしているのも不思議ではありません。 Gentooはソースベースであるため、多くのソフトウェアをコンパイルし、これらのシステムの実行を大幅に軽量化する可能性があります。
両方でインストールしないのはなぜですか?
おそらく毎日パッケージをコンパイルしたくないでしょうが、それは覚えておくと便利なことです。とはいえ、Snap StoreやFlathubなどのサイトから入手できる新しいユニバーサルパッケージ形式を使用すると、最新のソフトウェアを入手するためにソースからビルドする必要が少なくなります。
-
どのRubyIDEを使用する必要がありますか?
エディター内で開発者として多くの時間を費やすことになるため、快適で生産性の高いエディターを使用することが重要です。 この記事の内容: どのRubyIDE/エディターがあなたに適しているかを選択するお手伝いをしたいと思います ! この決定について強調する必要はありません。1つ選んで、数週間試してみて、どのように感じるかを確認してください。エディターは後でいつでも変更できます。 探すべきことがいくつかあります : 作業を簡単にするために利用できるRuby関連のプラグイン エディターがオープンソースであるかどうか 生産性を向上させる組み込み機能(コードスニペット、オートコンプリート、邪魔に
-
Shadowsock と VPN:どちらを使うべきか?
インターネットの検閲を回避したい場合、VPN と Shadowsocks のどちらがより良い選択肢なのか疑問に思ったことがあるかもしれません.どちらも障害を克服するのに役立つ効果的な手段ですが、それぞれに長所と短所があります。 これらのブロックのほとんどは、すべての Web サイトで使用される固有の識別子である IP アドレスを、明示的または範囲内でブロックすることによって、比較的簡単に機能します。使い方は簡単ですが、効率的です。最初にブロックされていない IP アドレスにアクセスし、その IP アドレスを想定して、アクセスしたいブロックされた IP アドレスに直接アクセスするよりも、そのア