序章

LinuxマシンまたはVPSで作業する場合、必要なパッケージは通常、aptまたは別のパッケージマネージャーを介して入手できます。 しかし、リポジトリから入手できないパッケージが必要になることもあれば、既存のバージョンよりも新しい、より最先端のバージョンが必要になることもあります。

この例では、ソースからcurlをコンパイルしてインストールします。 この例で使用されている基本は、ほとんどのパッケージに適用され、ほとんどの場合に適用できます。

要件

Linuxでソースをコンパイルするには、Debianベースのシステムでは「build-essential」、CentOSでは「DevelopmentTools」と呼ばれるパッケージが必要です。これには、パッケージのコンパイルに必要なgcc /g++コンパイラとライブラリが含まれています。 これをDebianとUbuntuにインストールするには、次のコマンドを実行します。

apt-get install build-essential

そしてCentOSで実行します:

yum groupinstall "Development Tools"

一部のパッケージでは、コンパイルまたは後で実行するために、いくつかの依存関係をインストールする必要があります。 aptまたは別のパッケージマネージャーを使用する場合、通常はこれを処理します。 パッケージを自分でコンパイルするときは、常にドキュメントを確認し、必要なパッケージが事前にインストールされていることを確認する必要があります。

この例ではcurlをコンパイルしているので、必要なものはすべて揃っているはずです。 ただし、コンパイル済みソースを後でインストールするには、使用しているVPSでrootまたはsudoアクセスが必要になります。

VPSでのソースの取得とコンパイル

Tarballのダウンロード

最初に必要なのは、curlソースコードをダウンロードすることです。 ソースをダウンロードするにはさまざまな方法がありますが、この例では、curlWebサイトから入手できるtarballを使用します。 必要に応じて、次のコマンドのURLを現在のバージョンのcurlに置き換えることができます。 tar.gzファイルへのリンクである必要があることを覚えておいてください。 準備ができたら、先に進んで実行します。

wget -O curl.tar.gz http://curl.haxx.se/download/curl-7.32.0.tar.gz

これにより、ソースがダウンロードされ、現在のディレクトリにcurl.tar.gzとして保存されます。

次に、tarballを抽出する必要があります。 この実行を行うには:

tar -xvzf curl.tar.gz

ソースは「curl-」というフォルダにあり、次にバージョン番号があります。 次のように入力した場合:

ls

次のように出力されます。

[email protected]:~/curl ls
curl-7.32.0  curl.tar.gz

私の場合、フォルダは「curl-7.32.0」と呼ばれるため、次のように入力してフォルダに入ります。

cd curl-7.32.0

ソースの構成とコンパイル

フォルダ内には、さまざまなファイルがあります。 今のところ、「configure」というファイルに焦点を当てます。 「configure」は、プログラムをさまざまなコンピューターで実行できるように設計されたスクリプトです。 先に進んで実行します:

./configure

これにより、システム変数が自動的に使用され、VPSのソースが構成および準備されます。 これは基本的に、プログラムに必要なライブラリと、システムにインストールされているライブラリとを一致させます。 これを行うことにより、コンパイラは、ソースに必要なライブラリ、この場合はcurlに必要なライブラリを探す場所を認識します。 それに加えて、後でパッケージをインストールする場所もわかります。 完了すると、すべての情報を含むMakefileというファイルが生成されます。 これで、ソースをコンパイルする準備が整いました。 コンパイルするには、次のコマンドを実行します。

make

これにより、ソース出力がコンソールに大量のゴミをコンパイルします。 先に進んで、それを終了させてください。 約1分ほどかかります。 完了すると、インストールする準備が整います。 ルート実行として:

make install

Makeは、Makefileの指示に従って、コンパイルされたパッケージをインストールします。

ほとんどの場合、これで完了です。 ここでcurlと入力できます。 curlが正しくインストールされている場合は、次のように表示されます。

curl: try 'curl --help' or 'curl --manual' for more information

bashエラーが出力された場合は、先に進んで次のように入力します。

ln -s /usr/local/bin/curl /usr/bin/curl

これにより、/ usr / bin / curlにリンクが作成され、/ usr / local / bin/curlに接続されます。 これにより、コンソールでcurlと入力するだけでcurlを実行できます。 これは通常自動的に行われますが、場合によっては、configureスクリプトが正しいインストール場所を見つけることができません。 これで、次のように入力できます。

curl -V

これにより、現在のバージョンのcurlが出力されます。

次のような出力が返されるはずです。

[email protected]:~/curl curl -V
curl 7.32.0 (x86_64-unknown-linux-gnu) libcurl/7.26.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.2 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp
Features: Debug GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

おめでとう! これで、ソースからcurlが正常にコンパイルおよびインストールされました。

結論

この例で使用した手順は、ほとんどのパッケージで機能するため、多くの状況で再利用できます。 ただし、インストールするパッケージのドキュメントを必ず事前に読んでおく必要があります。 通常、必要な依存関係が示され、実行するコマンドが示されることもあります。 ./configuremakemake installの順に覚えておいてください。

提出者: Mathias Jensen