【postgresql】 yumを利用してインストール
環境
CentOS 6.5
リポジトリ追加
公式で配布している各環境用のRPMファイルを下記サイトよりダウンロードしてインストール
PostgreSQL RPM Repository (with Yum)
今回は下記RPMファイルをインストールしました
[root@vagrant-centos65 ~]# rpm -ivh /vagrant/pgdg-centos94-9.4-1.noarch.rpm warning: /vagrant/pgdg-centos94-9.4-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8 : NOKEY Preparing... ########################################### [100%] 1:pgdg-centos94 ########################################### [100%] [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# rpm -ql pgdg-centos94 /etc/pki/rpm-gpg /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-94 /etc/yum.repos.d/pgdg-94-centos.repo [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# rpm -qi pgdg-centos94 Name : pgdg-centos94 Relocations: (not relocatable) Version : 9.4 Vendor: (none) Release : 1 Build Date: Thu 15 May 2014 09:29:57 PM JST Install Date: Tue 05 May 2015 07:07:43 PM JST Build Host: koji-sl6-x86-64-pg94 Group : System Environment/Base Source RPM: pgdg-centos94-9.4-1.src.rpm Size : 2168 License: BSD Signature : DSA/SHA1, Thu 15 May 2014 09:29:57 PM JST, Key ID 1f16d2e1442df0f8 URL : http://yum.postgresql.org Summary : PostgreSQL 9.4.X PGDG RPMs for CentOS - Yum Repository Configuration Description : This package contains yum configuration for CentOS, and also the GPG key for PGDG RPMs. [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# cat /etc/yum.repos.d/pgdg-94-centos.repo [pgdg94] name=PostgreSQL 9.4 $releasever - $basearch baseurl=http://yum.postgresql.org/9.4/redhat/rhel-$releasever-$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-94 [pgdg94-source] name=PostgreSQL 9.4 $releasever - $basearch - Source failovermethod=priority baseurl=http://yum.postgresql.org/srpms/9.4/redhat/rhel-$releasever-$basearch enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-94
PostgreSQLインストール
下記パッケージをインストール
[root@vagrant-centos65 ~]# yum search postgresql94-server postgresql94-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql94-serverをインストールすることで下記パッケージがインストールされます。
- postgresql94-server
- postgresql94
- postgresql94-libs
備考
各パッケージ詳細
postgresql94
PostgreSQLのクライアント機能群
postgresql94.x86_64 : PostgreSQL client programs and libraries
インストールすることで追加される機能
機能 | 備考 |
---|---|
/usr/pgsql-9.4/bin/clusterdb | PostgreSQLデータベースをクラスタ化する |
/usr/pgsql-9.4/bin/createdb | 新しいPostgreSQLデータベースを作成する |
/usr/pgsql-9.4/bin/createlang | PostgreSQLの手続き言語をインストールする ※廃止予定 |
/usr/pgsql-9.4/bin/createuser | 新しいPostgreSQLのユーザアカウントを定義する |
/usr/pgsql-9.4/bin/dropdb | PostgreSQLデータベースを削除する |
/usr/pgsql-9.4/bin/droplang | PostgreSQLの手続き言語を削除する ※廃止予定 |
/usr/pgsql-9.4/bin/dropuser | PostgreSQLのユーザアカウントを削除する |
/usr/pgsql-9.4/bin/pg_basebackup | PostgreSQLクラスタのベースバックアップを取得する |
/usr/pgsql-9.4/bin/pg_config | インストールしたバージョンのPostgreSQLに関する情報を提供する |
/usr/pgsql-9.4/bin/pg_dump | PostgreSQLデータベースをスクリプトファイルまたは他のアーカイブファイルへ抽出する |
/usr/pgsql-9.4/bin/pg_dumpall | PostgreSQLのデータベースクラスタをスクリプトファイルへ抽出する |
/usr/pgsql-9.4/bin/pg_isready | PostgreSQLサーバの接続状態を検査する |
/usr/pgsql-9.4/bin/pg_receivexlog | PostgreSQLサーバからトランザクションログをストリームする |
/usr/pgsql-9.4/bin/pg_restore | pg_dumpによって作成されたアーカイブファイルからPostgreSQLデータベースをリストアする |
/usr/pgsql-9.4/bin/pg_test_fsync | PostgreSQLの最も高速なwal_sync_methodを決定する |
/usr/pgsql-9.4/bin/psql | PostgreSQLの対話的ターミナル |
/usr/pgsql-9.4/bin/reindexdb | PostgreSQLデータベースのインデックスを再作成する |
/usr/pgsql-9.4/bin/vacuumdb | PostgreSQLデータベースの不要領域の回収と解析を行う |
ディレクトリ構成
役割 | パス |
---|---|
実行ファイル | /usr/bin and /usr/pgsql-9.4/bin |
ライブラリ | /usr/pgsql-9.4/lib |
ドキュメント | /usr/pgsql-9.4/doc |
コントリビューション関連ドキュメント | /usr/pgsql-9.4/doc |
データファイル | /var/lib/pgsql/9.4/data |
バックアップ領域 | /var/lib/pgsql/9.4/backups |
テンプレート | /usr/pgsql-9.4/share |
プロシージャ言語 | /usr/pgsql-9.4/lib |
共有ライブラリ | /usr/pgsql-9.4/include |
その他 | /usr/pgsql-9.4/share |
リグレッションテスト | /usr/pgsql-9.4/lib/test |
マニュアル
RPM FILE LOCATIONS. ----------------------------------------------------------------------------- To be in compliance with the Linux FHS, the PostgreSQL RPMs install files in a manner not consistent with most of the PostgreSQL documentation. According to the standard PostgreSQL documentation, PostgreSQL is installed under the directory /usr/local/pgsql, with executables, source, and data existing in various subdirectories. Different distributions have different ideas of some of these file locations. In particular, the documentation directory can be /usr/doc, /usr/doc/packages, /usr/share/doc, /usr/share/doc/packages, or some other similar path. However, the Red Hat / Scientific Linux ( CentOS / Fedora RPM's install the files like this: Executables: /usr/bin and /usr/pgsql-9.4/bin Libraries: /usr/pgsql-9.4/lib Documentation: /usr/pgsql-9.4/doc Contrib documentation: /usr/pgsql-9.4/doc Source: not installed Data: /var/lib/pgsql/9.4/data Backup area: /var/lib/pgsql/9.4/backups Templates: /usr/pgsql-9.4/share Procedural Languages: /usr/pgsql-9.4/lib Development Headers: /usr/pgsql-9.4/include Other shared data: /usr/pgsql-9.4/share Regression tests: /usr/pgsql-9.4/lib/test While it may seem gratuitous to place these files in different locations, the FHS requires it -- distributions should not ever touch /usr/local. It may also seem like more work to keep track of where everything is -- but, that's the beauty of RPM -- you don't have to keep track of the files, RPM does it for you. These RPMs are designed to be LSB-compliant -- if you find this not to be the case, please let us know by way of the pgsql-pkg-yum@postgresql.org mailing list.
リグレッションテストを実行する
下記パッケージをインストールすることでリグレッションテストを実行することが可能となります。
postgresql94-test.x86_64 : The test suite distributed with PostgreSQL
実行ログ
[root@vagrant-centos65 regress]# su - postgres -bash-4.1$ -bash-4.1$ cd /usr/pgsql-9.4/lib/test/regress/ -bash-4.1$ -bash-4.1$ -bash-4.1$-bash-4.1$ make check rm -rf testtablespace results mkdir testtablespace results ./pg_regress --inputdir=. --psqldir='/usr/bin' --dlpath=. --schedule=./parallel_schedule (using postmaster on Unix socket, default port) ============== dropping database "regression" ============== NOTICE: database "regression" does not exist, skipping DROP DATABASE ============== creating database "regression" ============== CREATE DATABASE ALTER DATABASE ============== running regression test queries ============== test tablespace ... ok parallel group (20 tests): name txid regproc oid pg_lsn char varchar money int2 float4 boolean text int4 float8 uuid int8 bit enum rangetypes numeric boolean ... ok char ... ok name ... ok varchar ... ok text ... ok int2 ... ok int4 ... ok int8 ... ok oid ... ok float4 ... ok float8 ... ok bit ... ok numeric ... ok txid ... ok uuid ... ok enum ... ok money ... ok rangetypes ... ok pg_lsn ... ok regproc ... ok test strings ... ok test numerology ... ok parallel group (20 tests): comments lseg path timetz time reltime line box polygon tinterval abstime circle tstypes macaddr point date interval inet timestamp timestamptz point ... ok lseg ... ok line ... ok box ... ok path ... ok polygon ... ok circle ... ok date ... ok time ... ok timetz ... ok timestamp ... ok timestamptz ... ok interval ... ok abstime ... ok reltime ... ok tinterval ... ok inet ... ok macaddr ... ok tstypes ... ok comments ... ok parallel group (6 tests): geometry regex horology type_sanity oidjoins opr_sanity geometry ... ok horology ... ok regex ... ok oidjoins ... ok type_sanity ... ok opr_sanity ... ok test insert ... ok test create_function_1 ... ok test create_type ... ok test create_table ... ok test create_function_2 ... ok parallel group (2 tests): copyselect copy copy ... ok copyselect ... ok parallel group (2 tests): create_operator create_misc create_misc ... ok create_operator ... ok parallel group (2 tests): create_view create_index create_index ... ok create_view ... ok parallel group (11 tests): create_cast create_aggregate typed_table create_function_3 drop_if_exists vacuum constraints create_table_like triggers inherit updatable_views create_aggregate ... ok create_function_3 ... ok create_cast ... ok constraints ... ok triggers ... ok inherit ... ok create_table_like ... ok typed_table ... ok vacuum ... ok drop_if_exists ... ok updatable_views ... ok test sanity_check ... ok test errors ... ok test select ... ok parallel group (20 tests): select_distinct_on btree_index select_distinct random select_having delete hash_index namespace update case select_implicit select_into prepared_xacts union portals transactions subselect aggregates arrays join select_into ... ok select_distinct ... ok select_distinct_on ... ok select_implicit ... ok select_having ... ok subselect ... ok union ... ok case ... ok join ... ok aggregates ... ok transactions ... ok random ... ok portals ... ok arrays ... ok btree_index ... ok hash_index ... ok update ... ok namespace ... ok prepared_xacts ... ok delete ... ok parallel group (6 tests): lock replica_identity security_label collate matview privileges privileges ... ok security_label ... ok collate ... ok matview ... ok lock ... ok replica_identity ... ok parallel group (4 tests): async psql alter_generic misc alter_generic ... ok misc ... ok psql ... ok async ... ok test rules ... ok test event_trigger ... ok parallel group (19 tests): combocid portals_p2 advisory_lock tsdicts xmlmap guc equivclass functional_deps dependency json select_views tsearch jsonb window cluster bitmapops foreign_data indirect_toast foreign_key select_views ... ok portals_p2 ... ok foreign_key ... ok cluster ... ok dependency ... ok guc ... ok bitmapops ... ok combocid ... ok tsearch ... ok tsdicts ... ok foreign_data ... ok window ... ok xmlmap ... ok functional_deps ... ok advisory_lock ... ok json ... ok jsonb ... ok indirect_toast ... ok equivclass ... ok parallel group (19 tests): limit prepare conversion plancache returning temp xml sequence without_oid copy2 rowtypes with polymorphism truncate domain largeobject rangefuncs alter_table plpgsql plancache ... ok limit ... ok plpgsql ... ok copy2 ... ok temp ... ok domain ... ok rangefuncs ... ok prepare ... ok without_oid ... ok conversion ... ok truncate ... ok alter_table ... ok sequence ... ok polymorphism ... ok rowtypes ... ok returning ... ok largeobject ... ok with ... ok xml ... ok test stats ... ok ======================= All 145 tests passed. ======================= -bash-4.1$