私が作業しているサーバーがあり、古いバージョンのLinuxを実行しています。私はシステムへのrootアクセス権を持っていないので、私が頻繁に使用するツールのより新しいバージョン(Vim 7.3)を構築したいと思いました。ビルドして〜/ binにインストールすると思いました。ただし、システム全体にインストールされていないncurses開発ファイルが必要です。 ncurses-devel rpmを見つけ、「lib」および「include」フォルダーを抽出しました。それらをどこに置き、ローカルでパッケージを適切に構成およびビルドできるように./configureスクリプトにそれらを見つけるように指示するにはどうすればよいですか?
編集:Virtualboxに同じOSをインストールし、そこでパッケージをビルドしてバイナリをコピーすることで、これを回避することになりました。
私は最後の仕事でこれをかなり頻繁に行いました-最良に機能するように思われた解決策は〜/ usrディレクトリを作成し、--prefix引数を使用して./configureスクリプトを正しい方向に向けることでした。手順は次のとおりです。
export PATH=$PATH:~/usr/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/usr/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:~/usr/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:~/usr/include
./configure --prefix=/home/<username>/usr
この配置は、ユーザー空間で物事を構築する必要があるほとんどの状況で私に役立ちました。最も難しい部分は通常、必要なすべての依存関係を見つけて構築することですが、それには、パッケージマネージャーの「ソースの取得」機能をグーグルまたは賢明に使用するだけです。
通常は、コードを再構成および変更して、すべてのライブラリとプログラムのホームディレクトリまたは他のパスに新しい場所を定義できます...
しかし、私見、最も簡単な方法(十分なスペースがある場合)は、すべてのLinuxディストリビューションがインストールされているサブディレクトリでchrootを使用することです。通常のユーザーとしては chroot は使用できませんが、次の優れたツールを使用できます: fakechroot および fakeroot
Chrootファイルシステムを作成するために、私は debootstrap ユーティリティを使用して、Debian(またはubuntuのような任意のDebian派生物)でディレクトリをデプロイするのが好きです。
手順は簡単です(技術的な詳細は入力しません。コマンドマニュアルを読みます)。
詳細が必要な場合は、これをすべて行うスクリプトがどこかにあると思います。
この問題の別の解決策は、MacOSXユーザーと他のプラットフォーム(solaris、AIX)が行うように、Gentooプレフィックスを使用することです。
http://www.gentoo.org/proj/en/gentoo-alt/prefix/
$ PREFIXの場所にあるGentooスタック(Portageを含む)をコンパイルします。 Gentooパッケージを使用しており、ほとんどのパッケージがこれらの設定の使用をサポートしています。
Portageはすべての依存関係を追跡し、ソフトウェアの最新バージョンを手に入れ、コミュニティによってテストされています...
prefix=/home/foo/usr
が機能しません。次を試してください:
CFLAGS=-I/home/foo/usr/include LDFLAGS=-L/home/foo/usr/lib ./configure