
アップグレードする必要がある zlib というプログラムがあります。これまでダウンロードしたことがないので、Ubuntu に付属しているのではないかと思います。
通常はダウンロードしてコンパイルするだけですが、別のツール(vcftools)がそれを使用するので、ローカルにインストールすることはできません。
新しいバージョンの zlib をどこかにインストールし、インストールしたフォルダーで zlib を検索するようにシステムに指示します。zlib に下位互換性があれば、これで問題ないはずです。
現在のバージョンをアップグレードします (ただし、sudo apt-get install を実行すると、最新バージョンであることがわかります)
どうすればいいですか? ありがとうございます。
答え1
少し混乱していると思います。は、zlib
Ubuntu ボックスにローカルにインストールされた別のパッケージにすぎません。まず、zlib
Ubuntu/Debian リポジトリの 1 つに、新しいバージョンのがあるかどうかを確認します。このリポジトリには、Ubuntu/Debian およびこれら 2 つのディストリビューションのいずれかから派生した他の OS にインストールできる (ビルド済み) すべてのソフトウェアが含まれています。
$ apt-get install zlib
しかし、そのコマンドを実行する前に、パッケージが実際に呼び出されていることを再確認しましょうzlib
。
$ dpkg -l |grep zlib
ii zlib1g:amd64 1:1.2.7.dfsg-13 amd64 compression library - runtime
したがって、パッケージは実際には と呼ばれているようですzlib1g
。これを更新するには:
$ apt-get install zlib1g
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded.
つまり、その特定のバージョンで止まっているか、新しいバージョンが利用できないということです。
別のアプローチ
最新バージョンのzlib
1.2.8 をダウンロードしてコンパイルし、 をLD_LIBRARY_PATH
一時的にこれらのライブラリのコンパイル済みバージョンを指すように設定するのは非常に簡単です。これにより、まだシステムにインストールしなくても、試してみることができます。
を設定したらLD_LIBRARY_PATH
、 を呼び出しVCFtools
て試すことができます。
次のステップ
次の選択肢は、zlib1g の新しいバージョンが含まれているサードパーティのリポジトリを見つけるか、ソース パッケージをダウンロードして、それを使用して独自の .deb ファイルを作成することです。独自のパッケージ構築環境をセットアップして最初の .deb ファイルを作成する方法に関するチュートリアルは多数あります。実際よりも複雑に聞こえます。
答え2
ディストリビューションの特定のリリースには、各プログラムの特定のバージョンが付属しています。これがリリースの目的です。(「ローリング リリース」ディストリビューションでは、すべての時間をソフトウェアの次のバージョンへのアップグレードに費やします。もっと他に時間を有効に活用したい場合は、リリースされたディストリビューションを使用してください。)
のzlib1g パッケージのバージョンUbuntu 12.04 (precise) のバージョンは 1.2.3.4 で、Ubuntu 12.10 (quantal) のバージョンは 1.2.7 です。Ubuntu の Web サイトからソース パッケージ (、および、またはの 3 つのファイルすべて) をダウンロードし.dsc
、.diff.gz
その.orig.tar.gz
バージョン.debian.tar.gz
をパッケージとしてコンパイルできます。
sudo apt-get install build-essential fakeroot
sudo apt-get build-dep zlib
dpkg-source zlib_1.2.7.dfsg-13.dsc
cd zlib-1.2.7.dfsg
dpkg-buildpackage -rfakeroot -us -uc -b -nc
sudo apt-get install ../zlib1g-1.2.7.*.deb
ライブラリの新しいバージョンをインストールすると、互換性が失われる可能性があることに注意してください。zlib の場合、問題が発生するとは思いませんが、軽々しく行うべきことではありません。
あるいは、ホーム ディレクトリのどこかに新しいバージョンのライブラリをインストールし、それを必要とする特定のプログラムにのみ使用します。 で zlib をコンパイルしてインストールする場合~/lib/zlib1.2.8/lib
、適切なラッパー スクリプトは次のとおりです。
#!/bin/sh
export LD_LIBRARY_PATH=~/lib/zlib1.2.8/lib
exec vcftools "$@"