pgvmを使ってみたよ
mysqlenvとかmysqlenvとかあるけど、PostgreSQLのないのかなーと思って探してみたらpgvmというものを見つけました。
PostgreSQLのバージョンを切り替えて使わなきゃならないほどPostgreSQL使えるわけじゃないのだけど、特定の場所にインストールしてくれるし、要らなくなったらディレクトリをまるごと削除すればよいだけなので、この手のものが好きだったりします。--prefixつけて./configureをすれば良いだけなのだけども‥‥
というわけでちょっと使ってみました。
環境:Ubuntu 12.04 LTS 64bit
インストール
インストールは
$ curl -s -L https://raw.github.com/guedes/pgvm/master/bin/pgvm-self-install | bash
でOKです。~/.bashrcにexport文が勝手に書き込まれるのはあまりよろしくないなあ……
インストールしたら
$ source $HOME/.bashrc
でパスが通ります。
使ってみる
とりあえずヘルプを表示させてみたり。
$ pgvm help Usage: pgvm action [arguments] - actions: install Installs a specific PostgreSQL version uninstall Uninstalls a specific PostgreSQL version list List all installed PostgreSQL versions use Choose an environment to use cluster Manipulate clusters (PGDATA directories) console Starts psql and connects to a specified cluster help This help
コンパイルしてみる
$ pgvm install 9 downloading 'http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.gz', please be patient... done. checking 'postgresql-9.2.4.tar.gz' integrity... done. extracting postgresql-9.2.4.tar.gz ... done. configuring PostgreSQL Version: 9.2.4 ... configure: error: readline library not found If you have readline already installed, see config.log for details on the failure. It is possible the compiler isn't looking in the proper directory. Use --without-readline to disable readline support. done. compiling ... ERRO: can not compile PostgreSQL 9.2.4, see make.error.log for details.
ありゃ…… 失敗した。
--without-readlineを付加してコンパイルするか、readlineのdevパッケージをインストールするかしないとダメみたい。
ここではlibreadline6-devをインストールすることに。
$ dpkg -l | grep readline ii libreadline6 6.2-8 GNU readline and history libraries, run-time libraries ii readline-common 6.2-8 GNU readline and history libraries, common files $ sudo apt-get install libreadline6-dev
もう一度コンパイル。
$ pgvm install 9 checking 'postgresql-9.2.4.tar.gz' integrity... done. extracting postgresql-9.2.4.tar.gz ... done. configuring PostgreSQL Version: 9.2.4 ... done. compiling ... done. installing ... done.
できた!
使ってみる
$ pgvm list PostgreSQL Installed Version: 9.2.4
ちゃんとインストールされてるみたい。
$ psql --version プログラム 'psql' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt-get install postgresql-client-common $ pgvm use 9.2.4 switched to 9.2.4 $ psql --version psql (PostgreSQL) 9.2.4
ちゃんと切り替えられてる。
クラスタを作ってみる
ただDB作りたいだけなんだけど、クラスタを作ってあげないとダメなみたい。クラスタ良くわかってない。
$ pgvm cluster create test initializing cluster in '/home/sasaplus1/.pgvm/clusters/9.2.4/test'... ok! $ pgvm cluster list cluster in current environment (9.2.4): test is offline at port 5433
testクラスタができたので起動してみる。
$ pgvm cluster start test starting cluster test@9.2.4 LOG: database system was shut down at 2013-04-26 22:35:56 JST LOG: database system is ready to accept connections LOG: autovacuum launcher started
これで起動したみたいなのでアクセスしてみる。
$ pgvm console test connecting to cluster 'test' on port '5433' ... psql (9.2.4) Type "help" for help. postgres=# \q
アクセスできた!いつものpsqlや!
止めるときは以下のようにするみたい。
$ pgvm cluster stop test stopping cluster test@9.2.4 LOG: received smart shutdown request LOG: autovacuum launcher shutting down LOG: shutting down LOG: database system is shut down
PostgreSQLのコンパイルにちょっとだけ時間がかかるけど、それ以外はとても良いかも。
ゆるふわPostgreSQLな感じで大変好みです。
参考:
GitHub - guedes/pgvm: PostgreSQL Version Manager
YouTube