概要
alpine linux便利で、最近dockerのベースOSとして使い始めたんですが、特定のバージョンや、過去の古いバージョンのパッケージが見つからない(あるいはインストールできない)事が多々あります。
そこで、少し調べてみたので備忘録的にメモで残しておきます。
バージョンを指定する
そのままなんですが、指定できるみたいです。最初に見つけた記事でした。
- [linux - How to install a specific package version in Alpine? - Super User] (http://superuser.com/questions/1055060/how-to-install-a-specific-package-version-in-alpine)
- [How to install a specific package version in Alpine and Docker? | Today I learned] (https://til.codes/how-to-install-a-specific-package-version-in-alpine-and-docker/)
ただ、やってみたんですが思った感じで古いパッケージをインストールすることができず・・・。
bash-4.3# apk add --update 'postgresql<9.3' --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
postgresql-9.5.4-r0:
breaks: world[postgresql<9.3]
bash-4.3# apk add --update postgresql=9.3 --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
postgresql-9.5.4-r0:
breaks: world[postgresql=9.3]
apkファイルをダウンロードしてインストールする
次に見つけた方法は、
からapkファイルをダウンロードしてきて、
にある方法で直接インストールする方法です。やってみました。
まずは、
からpostgre9.3を探します・・・ありました。
wgetでダウンロードします。
bash-4.3# cd /tmp/
bash-4.3# wget http://dl-3.alpinelinux.org/alpine/v3.0/main/x86_64/postgresql-9.3.11-r0.apk
Connecting to dl-3.alpinelinux.org (74.117.189.115:80)
postgresql-9.3.11-r0 100% |********************************************************************************************************************************************************************************************| 5001k 0:00:00 ETA
bash-4.3#
インストールします
bash-4.3# apk add --allow-untrusted postgresql-9.3.11-r0.apk --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
(1/6) Installing db (5.3.28-r0)
(2/6) Installing libsasl (2.1.26-r7)
(3/6) Installing libldap (2.4.44-r1)
(4/6) Installing libpq (9.5.4-r0)
(5/6) Installing postgresql-client (9.5.4-r0)
(6/6) Installing postgresql (9.3.11-r0)
Executing busybox-1.24.2-r11.trigger
OK: 52 MiB in 37 packages
bash-4.3#
確認します。
bash-4.3# su postgres
/tmp $ postgres --version
postgres (PostgreSQL) 9.3.11
/tmp $
postgresqlの9.3を入れれました。
/etc/apk/repositoriesを編集する
直接ダウンロードしなくても、repositoryを書き換えればできるんですね。。恥ずかしい。
bash-4.3# cat /etc/apk/repositories
# http://dl-cdn.alpinelinux.org/alpine/v3.4/main
# http://dl-cdn.alpinelinux.org/alpine/v3.4/community
http://dl-cdn.alpinelinux.org/alpine/v2.7/main
bash-4.3# apk search --update postgresql
fetch http://dl-cdn.alpinelinux.org/alpine/v2.7/main/x86_64/APKINDEX.tar.gz
collectd-postgresql-5.4.1-r1
postgresql-doc-9.3.10-r0
postgresql-contrib-9.3.10-r0
postgresql-client-9.3.10-r0
freeradius3-postgresql-3.0.10-r0
lua-dbi-postgresql-0.5-r3
freeradius-postgresql-2.2.9-r0
qt-postgresql-4.8.5-r2
acf-postgresql-0.7.0-r0
postgresql-dev-9.3.10-r0
postgresql-9.3.10-r0
bash-4.3#