Linux でのソフトウェアのアップグレード

Linux でのソフトウェアのアップグレード

アップグレードする必要がある zlib というプログラムがあります。これまでダウンロードしたことがないので、Ubuntu に付属しているのではないかと思います。

通常はダウンロードしてコンパイルするだけですが、別のツール(vcftools)がそれを使用するので、ローカルにインストールすることはできません。

  1. 新しいバージョンの zlib をどこかにインストールし、インストールしたフォルダーで zlib を検索するようにシステムに指示します。zlib に下位互換性があれば、これで問題ないはずです。

  2. 現在のバージョンをアップグレードします (ただし、sudo apt-get install を実行すると、最新バージョンであることがわかります)

どうすればいいですか? ありがとうございます。

答え1

少し混乱していると思います。は、zlibUbuntu ボックスにローカルにインストールされた別のパッケージにすぎません。まず、zlibUbuntu/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.

つまり、その特定のバージョンで止まっているか、新しいバージョンが利用できないということです。

別のアプローチ

最新バージョンのzlib1.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 "$@"

関連情報