ソフトウェアをインストールする方法は数多くありますが、オープンソースには他にはない選択肢があります。それは、自分でコードをコンパイルすることです。ソースコードをコンパイルする典型的な3つのステップは次のとおりです。
これらのコマンドを使用すると、コードをコンパイルするためにコードの書き方や読み方さえ知る必要がないことに驚かれるかもしれません。 ソフトウェアをビルドするために使用するコマンドをインストールします。初めてコンパイルする場合は、ソフトウェアのビルドに使用するコマンドをインストールするという、一度だけ必要なセットアップ手順があります。具体的には、コンパイラが必要です。コンパイラ(GCCやLLVMなど)は、次のようなソースコードを処理できます。
機械語、つまりCPUが情報を処理するために使用する命令に翻訳されます。機械語を見ることはできますが、(CPUでない限り)意味を理解できません。 パッケージ マネージャーを使用して、GNU コンパイラ コレクション (GCC) と LLVM コンパイラ、および Fedora、CentOS、Mageia などのディストリビューションでコンパイルするためのその他の基本コマンドをインストールできます。
Debian、Elementary、Mint などのディストリビューションでは、コマンドは次のようになります。
システムをセットアップした後、ソフトウェアをコンパイルするたびに繰り返し実行する必要があるタスクがいくつかあります。
必要なコマンドはすべてすでにあるので、それらをコンパイルするためのソフトウェアが必要になります。 1. ソースコードをダウンロードするアプリケーションのソースコードの入手方法は、ダウンロード可能なソフトウェアの入手方法と同様です。GitLab、SourceForge、GitHubなどのウェブサイトやコード管理サイトにアクセスする必要があります。一般的に、オープンソースソフトウェアは継続的な開発作業("...")です。現在"または"毎晩「」にはビルドバージョンと「」にはパッケージバージョンがあります。安定させるリリース版。発生するバグを修正できると確信できる理由がある場合、またはコードに関する十分な知識がある場合を除き、可能な限り安定版を使用してください。「安定版」という用語は、コードがテスト済みであり、アプリケーションのプログラマーが十分な自信を持って この演習では、オープンソース(GPLv2)のASCIIダンジョンハンターゲーム「Angband」を使用しました。Angbandはシンプルなアプリケーションですが、その複雑さは、独自のソフトウェアをコンパイルする際に考慮すべき問題を的確に示しています。 ウェブサイトからソースコードをダウンロードします。 2. ソースコード アーカイブ ファイルを解凍します。ソースコードは通常、複数のファイルで構成されているため、アーカイブ形式で提供されます。tarball、zipファイル、7zファイル、あるいは全く異なる形式のファイルであっても、操作する前に解凍する必要があります。
ファイルを解凍したら、解凍したディレクトリに移動して内容を確認してください。通常、ディレクトリの最上位に
Angbandのメンテナーは、コードのコンパイル方法を説明したオンラインガイドへのリンクを提供しています。このドキュメントでは、他にインストールが必要なソフトウェアについても説明されていますが、具体的な内容は明記されていません。ウェブサイトには、「ビルドにはいくつかのオプションのフロントエンド(GCU、SDL、SDL2、X11)があり、 3. コードをコンパイルするコードをビルドするための一般的な手順は次のとおりです。
これらは、ソースコードの配布方法を標準化するために作成されたフレームワークであるAutotoolsを使用してプロジェクトをビルドするための手順です。ただし、CMakeなど、異なる手順を必要とするフレームワークもあります。プロジェクトがAutotoolsまたはCMakeフレームワークに準拠していない場合、多くの場合、 構成Angband は Autotools を使用するので、コードをコンパイルする時が来ました。 Angband ディレクトリで、まず、ソース コードに付属する設定スクリプトを実行します。
このステップでは、システムをスキャンして、Angband を正しくビルドするために必要な依存関係を検出します。依存関係の中には、コンピュータが動作しないほど基本的なものもあれば、特殊なものもあります。このプロセスが終了すると、スクリプトは検出した内容に関するレポートを表示します。
出力の中には意味のあるものもあれば、そうでないものもあります。いずれにせよ、SDL2とSDLが「無効」、TestとStatsが「なし」と表示されていることにお気づきかもしれません。これらの情報は否定的なものですが、必ずしも悪いことではありません。基本的に、これが警告とエラーの違いです。構成スクリプトがコードのビルドを妨げる要因に遭遇した場合、エラーを警告します。 ビルドを少し最適化したい場合は、これらのマイナス面に対処することができます。Angbandのドキュメントを調べてみると、TestとStatsは実際には必要ないことがわかるかもしれません(これらはAngbandの開発者向けオプションです)。しかし、オンラインで調べてみると、SDL2が非常に便利な機能であることが分かるかもしれません。 コードのコンパイル中に依存関係の問題を解決するには、不足しているコンポーネントとその開発ライブラリをインストールする必要があります。言い換えると、Angbandはサウンドを再生するためにSDL2を必要としますが、ビルドには
スクリプトを再度設定してみてください:
制作(翻訳)すべての設定が完了したら、
これには通常、しばらく時間がかかりますが、コードがコンパイルされていることがわかる視覚的なフィードバックが多数提供されます。 インストール最後のステップは、コンパイルしたコードをインストールすることです。コードのインストールは魔法ではありません。多くのファイルを特定のディレクトリにコピーするだけです。これは、ソースコードからコンパイルする場合でも、洗練されたグラフィカルインストールウィザードを実行する場合でも同じです。このコードはシステムレベルのディレクトリにコピーされるため、
アプリケーションを実行するアプリケーションをインストールしたら、実行できます。Angbandのドキュメントによると、ゲームを起動するコマンドは
コンパイルコードリード画像 コードをコンパイルするSlackwareデスクトップでもCentOSラップトップでも、私はほとんどのアプリケーションをNetBSDのpkgsrcシステムを使ってコンパイルしています。ソフトウェアを自分でコンパイルすることで、アプリケーションに含まれる機能、設定方法、使用するライブラリのバージョンなどについて、自分なりの考えを持つことができることに気づきました。これは非常に理にかなっています。新しいリリースに遅れずに対応できるだけでなく、コンパイル中にバグを発見することがあるので、様々なオープンソースプロジェクトに参加するのにも役立っています。 ソフトウェアをコンパイルする方法が一つだけであることは稀です。ほとんどのオープンソースプロジェクトは、ソースコード(「オープンソース」と呼ばれる理由)とインストール可能なパッケージの両方を提供しています。ソースコードからコンパイルするかどうかは、あなたの選択次第です。最新バージョンにはまだ含まれていない新機能が欲しい場合や、単に自分でコードをコンパイルするのが楽しい場合など、理由は様々です。 宿題Angband は Autotools または CMake を使用できるので、別の方法でコードをビルドしたい場合は、これを試してみてください。
GNUコンパイラコレクション(GCC)の代わりにLLVMコンパイラでコンパイルしてみるのも良いでしょう。さて、これは皆さんに試していただくことにします(ヒント: Angbandのソースコードと少なくともいくつかのダンジョンを探索し終えたら(休憩時間も取れましたね)、他のコードベースもチェックしてみましょう。AutotoolsやCMakeを使用しているものもあれば、異なるものを使用しているものもあります。どんなものが作れるか、ぜひ試してみてください! |