これは私のLinuxの楽しみを本当に制限する問題です。アプリケーションがリポジトリにない場合、またはインストーラースクリプトがない場合、アプリケーションをソースからどこにどのようにインストールするのか私は本当に苦労しています。
Windowsに比べて簡単です。ウィザードですべての作業を行うインストーラーアプリケーションを使用する必要があります(かなり多く)。 Linuxでは...それほどではありません。
それで、これに関するヒントや指示はありますか、ソースからLinuxプログラムをインストールする方法、理由、場所を明示的に説明しているWebサイトはありますか?
通常、プロジェクトには、ビルドおよびインストール方法の手順が記載されたWebサイトがあります。そのための最初のグーグル。
ほとんどの場合、次のいずれかを行います。
tar zxvf myapp.tar.gz
、bzip圧縮されたtarballの場合はtar jxvf myapp.tar.bz2
のようなコマンドでtarballを抽出します。./configure && make && Sudo make install
を実行しますまたは:
./autogen.sh && make && Sudo make install
を実行しますConfigureとautogen.shはどちらも--prefix引数を受け入れて、ソフトウェアのインストール場所を指定します。私は自分でコンパイルしたソフトウェアをどこに置くべきか を確認することをお勧めします カスタムビルドされたソフトウェアをインストールするのに最適な場所についてのアドバイス。
ソースからパッケージをコンパイルし、すべてのパッケージの依存関係、フラグなどを処理するパッケージマネージャーがあることを追加したいだけです。
BSDシステムではports
: Ports Collectionを使用します
Debianでは、apt-get
パッケージマネージャーもソースからインストールできます: APT HOWTO:ソースパッケージの操作 (Ubuntu、Linuxでも同じです)ミントとDebianに基づくその他すべて)
Gentooディストリビューションは、ソース全体からシステム全体をコンパイルするportage
パッケージマネージャーを使用します: Portage Introduction 。
Slackwareはパッケージをコンパイルできますが、そのためのパッケージマネージャーがそこにあるかどうかはわかりません。
とにかく、上記のSandyのように常に手動でパッケージをコンパイルできます=)また、他のディストリビューションではapt-get
またはportage
パッケージマネージャーを使用できる必要があります...
インストールしたい特定のプログラムまたはアプリケーションに付属のドキュメントを読むのが最善だと思います。通常、tarball(通常はダウンロードできるアプリケーションソースアーカイブ)内にreadme/READMEがあります。また、ファイルをINSTALLして、そのアプリケーションをインストールするための推奨される方法を学びます。つまり、RTFM;)
FreeBSDでPorts Collectionを使用するための要約:
ポートを検索
ポートはカテゴリ別に整理されているため、ポートがどのカテゴリに属しているかわからない場合は、まずポートを見つける必要があります。
cd /usr/ports
make search name=myport
時々そのように多くのエントリがあります。私は個人的に好きです:
find /usr/ports -name myport* -print -depth 2
多くの場合、利用可能なポートの複数のバージョンがあるため、検索時には*
を使用します。 depth引数を使用すると、返される結果が、必要のない一致で不必要に乱雑にならないようになります。
構成
多くの場合、いくつかの設定を行う必要があります。 ApacheやPostgresなどのソフトウェアは実際にそれを必要とします。主な選択肢は3つあります。コマンドライン、環境、および構成ファイルの作成です。コマンドラインから始めるには:
make showconfig
これにより、デフォルトの構成オプションがリストされます。デフォルトが気に入ったら、コンパイルしてインストールする準備ができています。そうでない場合、
make config
必要なオプションを選択できるダイアログボックスが表示されます。 (これと、選択したオプションでポートを構成するmake configure
と混同しないでください!)これで十分なことがよくありますが、Apacheなどの一部のソフトウェアでは、単純なダイアログでは処理できない複雑な構成がよくあります。これについては、Makefileも確認する必要があります。Makefileにより、詳細情報を提供するmakeのターゲットが追加される場合があります。 Apacheの例を続けるには
make show-modules
make show-options
make show-categories
選択したモジュール、スレッドオプションなどの設定に関する情報を提供します。ポートのデフォルトがほとんど問題なく、いくつか変更したい場合は、環境変数のようなkey = valueペアを渡すこともできます。
make MYVBL1=MYVAL1 ... install clean
また、-D
オプションを使用してスイッチオプションを設定できます。
make -D MYVAR -D MYOTHERVAR ... install clean
ただし、複雑な構成の場合、コマンドラインはうまく機能せず、最初の2つの方法のどちらも効果的ではありません。この場合、構成ファイルを作成し、__ MAKE_CONF変数を使用してそれをmake
に渡すことができます。 FreeBSDにはデフォルトの設定ファイルがあります:/etc/make.conf
には通常、以前にインストールされたポートと他のシステム設定に関する情報が含まれています。まず、portsオプションを含むファイルを作成し、それを~/myport.mk
と呼び、そのファイルを/etc/make.confと結合します。
cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf
その後、構成を再確認できます。
make showconfig __MAKE_CONF=~/make.port.conf
そして、すべてが良さそうであれば:
make install clean __MAKE_CONF=~/make.myport.conf
注意してください! make configure
またはインストール全体または一部のインストール後に構成設定を調整する必要がある場合は、まず必ず最初に構成をクリアする必要があります:
make rmconfig
そうしないと、ポートサブシステム、ポートのmake
デフォルト、および必要な構成の間で予期しない相互作用が発生します。
要約としてはこれでかなりですが、構成の複雑さはほとんどがアプリではなく、移植に関するものです。たとえば、bashには実際にオプションはありません。
インストール
これは簡単な部分です:
make install clean
またはできる
make build
make install
make clean
これはただタイピングするだけです。
それだけです。依存関係と構成オプションを再帰的に一覧表示したり、パッチで更新したりするなど、他にもできることは明らかです。ここでは、 Handbook の Ports セクション、ポートサブシステムのmanページ(追加のmakeターゲットの詳細情報)、およびmake
manページを参照します。 。
最近、パッケージマネージャー以外のソースからインストールするときに「Checkinstall」の使用を開始しました。サードパーティのtarballから「パッケージ」を構築し、パッケージマネージャーツールを使用してインストールおよび管理(およびアンインストール)できます。
この記事をチェックしてください- http://www.linuxjournal.com/content/using-checkinstall-build-packages-source