質問: apt-getで特定のバージョンをインストール [質問] ubuntu16.04のapt-get install nodejs=6.9.0-1nodesource1で、古いバージョンのnodejsをインストールするには、どのようにしたらよいでしょうか。 (dpkg -i nodejs.deb、ppaリポジトリを追加、nvm,nodebrew等のバージョン管理ツールを使わず、公式サイトのリポジトリからapt-get installする方法でお願いします。) [背景] curl -sl https://deb.nodesource.com/setup_6.x | sudo -e bash - sudo apt-get update sudo apt-get install nodejs=6.9.0-1nodesource1 では、インストールできませんでした。 sources.list先にhttps://deb.nodesource.com/node_6.x/pool/main/n/nodejs/nodejs_6.9.0-1nodesource1~xenial1_amd64.deb はありますが、 https://deb.nodesource.com/node_6.x/dists/xenial/main/binary-amd64/packages に version: 6.9.0-1nodesource1~xenial1 の記載がないので、apt-getでインストールできないと思います。 (postgresの場合は、 http://apt.postgresql.org/pub/repos/apt/dists/xenial-pgdg/main/binary-amd64/packages に package: postgresql-9.4 version: 9.4.10-1.pgdg16.04+1 の記載があり、下記で古いバージョンのpostgresql-9.4はインストールできました。 sudo apt-get update sudo apt-get install postgresql-9.4 ) sources.listをfile:/にして、ローカルにdeb,packages,sources,releaseを配置して、apt-get installで古いバージョンをインストールできましたが、 特定バージョンのpackages,sources,releaseのテキストファイルがないと、この方法ができません。 (リポジトリ内に古いpackages,sources,releaseのテキストファイルはありませんでした。) また、centosの場合は、下記で古いバージョンのnodejsがインストールできました。(yumとapt-getの仕組みの違いと思います。) curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum --showduplicates list | grep nodejs yum install nodejs-6.9.0 よろしくお願いします。
回答: まだ、回答を得られていない御様子なので。 取り敢えず、こちらをご覧ください。 debianのパッケージ管理についての解説ですが、ubuntuも、いまのところは根っこは同じです。 https://www.debian.org/doc/manuals/debian-reference/ch02.ja.html >2.2. 基本的パッケージ管理操作 上記の節で触れられている、aptitudeを使ってみてはいかがでしょう。 多少、融通が利くかも知れません。 基本的に、aptによるパッケージのバージョン管理は、不可逆で加算的になっています。 (バグ対応が行われたり、セキュリティーホール対策が施されると、リビジョンが上がっていきます。) これは私見ですが、可用性よりも、システムの健全性を優先する志向によるものでしょう。 推奨されない方法を取るからには、不便であることは当然となります。 どうしても、そのバージョンでなければならないと仰るなら、dpkgによる方法も、視野に入れられた方が良いのでは? 最後に、そのバージョンでなければならなかった理由は何なのでしょうか? 気になりましたもので、お尋ねします。