yumでJavaをインストールする方法

August 24,2017 12:03 AM
Category:[Linux]
Tag:[Linux]
Permalink

yumでJavaをインストールする方法を紹介します。

1.はじめに

RHELでJavaを使いたいのですが、Javaはプリインストールされていません。

JavaといえばOracle Javaですが、yumでサクッとインストールしたいところです。

ということで、yumでJavaをインストールする方法を紹介します。

2.yumでJavaをインストールする

Oracle Javaではなく、オープンソースのOpenJDKであればyumでインストールすることができます。

yumリポジトリからOpenJDKを検索してみます。

# yum search openjdk
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use su                                                                 bscription-manager to register.
警告: 一致するものが見つかりません: openjdk
No matches found

間違えました、「スタンドアロンのLinuxでyumを利用する方法」で紹介した環境なので、リポジトリを指定して再実行します。

# yum search --disablerepo=\* --enablerepo=media_default openjdk
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-ma                                                    nager to register.
=================================== N/S matched: openjdk ====================================
java-1.6.0-openjdk.ppc64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-devel.ppc64 : OpenJDK Development Environment
java-1.7.0-openjdk.ppc64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-devel.ppc64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.ppc64 : The OpenJDK runtime environment without audio and video
                                  : support
java-1.8.0-openjdk.ppc64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-devel.ppc64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.ppc64 : OpenJDK Runtime Environment

インストールできるOpenJDKのパッケージがいくつか表示されました。

ここでは最新バージョンのjava-1.8.0-openjdkをインストールしてみます。インターネットに接続された環境であれば、「--disablerepo=\* --enablerepo=media_default」は不要です。

# yum --disablerepo=\* --enablerepo=media_default install java-1.8.0-openjdk
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
media_default                                                                                                             | 4.1 kB  00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-1.8.0-openjdk.ppc64 1:1.8.0.102-4.b14.el7 を インストール
--> 依存性の処理をしています: java-1.8.0-openjdk-headless = 1:1.8.0.102-4.b14.el7 のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libjava.so(SUNWprivate_1.1)(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libjli.so(SUNWprivate_1.1)(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libjvm.so(SUNWprivate_1.1)(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: xorg-x11-fonts-Type1 のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libXtst.so.6()(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libawt.so()(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libgif.so.4()(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libjava.so()(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libjli.so()(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: libjvm.so()(64bit) のパッケージ: 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64
--> トランザクションの確認を実行しています。
---> パッケージ giflib.ppc64 0:4.1.6-9.el7 を インストール
--> 依存性の処理をしています: libICE.so.6()(64bit) のパッケージ: giflib-4.1.6-9.el7.ppc64
--> 依存性の処理をしています: libSM.so.6()(64bit) のパッケージ: giflib-4.1.6-9.el7.ppc64
---> パッケージ java-1.8.0-openjdk-headless.ppc64 1:1.8.0.102-4.b14.el7 を インストール
--> 依存性の処理をしています: copy-jdk-configs >= 1.1-3 のパッケージ: 1:java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: tzdata-java >= 2015d のパッケージ: 1:java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.ppc64
--> 依存性の処理をしています: jpackage-utils のパッケージ: 1:java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.ppc64
---> パッケージ libXtst.ppc64 0:1.2.2-2.1.el7 を インストール
---> パッケージ xorg-x11-fonts-Type1.noarch 0:7.5-9.el7 を インストール
--> 依存性の処理をしています: mkfontdir のパッケージ: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> 依存性の処理をしています: mkfontdir のパッケージ: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> 依存性の処理をしています: ttmkfdir のパッケージ: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> 依存性の処理をしています: ttmkfdir のパッケージ: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ copy-jdk-configs.noarch 0:1.2-1.el7 を インストール
---> パッケージ javapackages-tools.noarch 0:3.4.1-11.el7 を インストール
--> 依存性の処理をしています: python-javapackages = 3.4.1-11.el7 のパッケージ: javapackages-tools-3.4.1-11.el7.noarch
---> パッケージ libICE.ppc64 0:1.0.9-2.el7 を インストール
---> パッケージ libSM.ppc64 0:1.2.2-2.el7 を インストール
---> パッケージ ttmkfdir.ppc64 0:3.0.9-42.el7 を インストール
---> パッケージ tzdata-java.noarch 0:2016g-2.el7 を インストール
---> パッケージ xorg-x11-font-utils.ppc64 1:7.5-20.el7 を インストール
--> 依存性の処理をしています: libXfont.so.1()(64bit) のパッケージ: 1:xorg-x11-font-utils-7.5-20.el7.ppc64
--> 依存性の処理をしています: libfontenc.so.1()(64bit) のパッケージ: 1:xorg-x11-font-utils-7.5-20.el7.ppc64
--> トランザクションの確認を実行しています。
---> パッケージ libXfont.ppc64 0:1.5.1-2.el7 を インストール
---> パッケージ libfontenc.ppc64 0:1.1.2-3.el7 を インストール
---> パッケージ python-javapackages.noarch 0:3.4.1-11.el7 を インストール
--> 依存性解決を終了しました。
 
依存性を解決しました
 
=================================================================================================================================================
 Package                                     アーキテクチャー       バージョン                               リポジトリー                   容量
=================================================================================================================================================
インストール中:
 java-1.8.0-openjdk                          ppc64                  1:1.8.0.102-4.b14.el7                    media_default                 226 k
依存性関連でのインストールをします:
 copy-jdk-configs                            noarch                 1.2-1.el7                                media_default                  14 k
 giflib                                      ppc64                  4.1.6-9.el7                              media_default                  42 k
 java-1.8.0-openjdk-headless                 ppc64                  1:1.8.0.102-4.b14.el7                    media_default                  30 M
 javapackages-tools                          noarch                 3.4.1-11.el7                             media_default                  73 k
 libICE                                      ppc64                  1.0.9-2.el7                              media_default                  66 k
 libSM                                       ppc64                  1.2.2-2.el7                              media_default                  40 k
 libXfont                                    ppc64                  1.5.1-2.el7                              media_default                 154 k
 libXtst                                     ppc64                  1.2.2-2.1.el7                            media_default                  21 k
 libfontenc                                  ppc64                  1.1.2-3.el7                              media_default                  31 k
 python-javapackages                         noarch                 3.4.1-11.el7                             media_default                  31 k
 ttmkfdir                                    ppc64                  3.0.9-42.el7                             media_default                  49 k
 tzdata-java                                 noarch                 2016g-2.el7                              media_default                 180 k
 xorg-x11-font-utils                         ppc64                  1:7.5-20.el7                             media_default                  90 k
 xorg-x11-fonts-Type1                        noarch                 7.5-9.el7                                media_default                 521 k
 
トランザクションの要約
=================================================================================================================================================
インストール  1 パッケージ (+14 個の依存関係のパッケージ)
 
総ダウンロード容量: 32 M
インストール容量: 109 M
Is this ok [y/d/N]: y
Downloading packages:
-------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                             132 MB/s |  32 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : libfontenc-1.1.2-3.el7.ppc64                                                                                    1/15
  インストール中          : libICE-1.0.9-2.el7.ppc64                                                                                        2/15
  インストール中          : libSM-1.2.2-2.el7.ppc64                                                                                         3/15
  インストール中          : giflib-4.1.6-9.el7.ppc64                                                                                        4/15
  インストール中          : libXfont-1.5.1-2.el7.ppc64                                                                                      5/15
  インストール中          : 1:xorg-x11-font-utils-7.5-20.el7.ppc64                                                                          6/15
  インストール中          : libXtst-1.2.2-2.1.el7.ppc64                                                                                     7/15
  インストール中          : copy-jdk-configs-1.2-1.el7.noarch                                                                               8/15
  インストール中          : tzdata-java-2016g-2.el7.noarch                                                                                  9/15
  インストール中          : ttmkfdir-3.0.9-42.el7.ppc64                                                                                    10/15
  インストール中          : xorg-x11-fonts-Type1-7.5-9.el7.noarch                                                                          11/15
  インストール中          : python-javapackages-3.4.1-11.el7.noarch                                                                        12/15
  インストール中          : javapackages-tools-3.4.1-11.el7.noarch                                                                         13/15
  インストール中          : 1:java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.ppc64                                                        14/15
  インストール中          : 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64                                                                 15/15
  検証中                  : libXfont-1.5.1-2.el7.ppc64                                                                                      1/15
  検証中                  : 1:java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.ppc64                                                         2/15
  検証中                  : xorg-x11-fonts-Type1-7.5-9.el7.noarch                                                                           3/15
  検証中                  : libSM-1.2.2-2.el7.ppc64                                                                                         4/15
  検証中                  : 1:java-1.8.0-openjdk-1.8.0.102-4.b14.el7.ppc64                                                                  5/15
  検証中                  : python-javapackages-3.4.1-11.el7.noarch                                                                         6/15
  検証中                  : 1:xorg-x11-font-utils-7.5-20.el7.ppc64                                                                          7/15
  検証中                  : libICE-1.0.9-2.el7.ppc64                                                                                        8/15
  検証中                  : giflib-4.1.6-9.el7.ppc64                                                                                        9/15
  検証中                  : ttmkfdir-3.0.9-42.el7.ppc64                                                                                    10/15
  検証中                  : javapackages-tools-3.4.1-11.el7.noarch                                                                         11/15
  検証中                  : libfontenc-1.1.2-3.el7.ppc64                                                                                   12/15
  検証中                  : tzdata-java-2016g-2.el7.noarch                                                                                 13/15
  検証中                  : copy-jdk-configs-1.2-1.el7.noarch                                                                              14/15
  検証中                  : libXtst-1.2.2-2.1.el7.ppc64                                                                                    15/15
 
インストール:
  java-1.8.0-openjdk.ppc64 1:1.8.0.102-4.b14.el7
 
依存性関連をインストールしました:
  copy-jdk-configs.noarch 0:1.2-1.el7         giflib.ppc64 0:4.1.6-9.el7                java-1.8.0-openjdk-headless.ppc64 1:1.8.0.102-4.b14.el7
  javapackages-tools.noarch 0:3.4.1-11.el7    libICE.ppc64 0:1.0.9-2.el7                libSM.ppc64 0:1.2.2-2.el7
  libXfont.ppc64 0:1.5.1-2.el7                libXtst.ppc64 0:1.2.2-2.1.el7             libfontenc.ppc64 0:1.1.2-3.el7
  python-javapackages.noarch 0:3.4.1-11.el7   ttmkfdir.ppc64 0:3.0.9-42.el7             tzdata-java.noarch 0:2016g-2.el7
  xorg-x11-font-utils.ppc64 1:7.5-20.el7      xorg-x11-fonts-Type1.noarch 0:7.5-9.el7
 
完了しました!

これでjavaコマンドが実行可能になりました。

# which java
/usr/bin/java

ただし、javacはまだインストールされていません。

# which javac
/usr/bin/which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

javacも使いたい場合は、java-1.8.0-openjdk-develをインストールします。

# yum --disablerepo=\* --enablerepo=media_default install java-1.8.0-openjdk-devel
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-1.8.0-openjdk-devel.ppc64 1:1.8.0.102-4.b14.el7 を インストール
--> 依存性解決を終了しました。
 
依存性を解決しました
 
=================================================================================================================================================
 Package                                   アーキテクチャー       バージョン                                リポジトリー                    容量
=================================================================================================================================================
インストール中:
 java-1.8.0-openjdk-devel                  ppc64                  1:1.8.0.102-4.b14.el7                     media_default                  7.8 M
 
トランザクションの要約
=================================================================================================================================================
インストール  1 パッケージ
 
総ダウンロード容量: 7.8 M
インストール容量: 40 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 1:java-1.8.0-openjdk-devel-1.8.0.102-4.b14.el7.ppc64                                                             1/1
  検証中                  : 1:java-1.8.0-openjdk-devel-1.8.0.102-4.b14.el7.ppc64                                                             1/1
 
インストール:
  java-1.8.0-openjdk-devel.ppc64 1:1.8.0.102-4.b14.el7
 
完了しました!
Comments [0] | Trackbacks [0]

スタンドアロンのLinuxでyumを利用する方法

August 22,2017 12:03 AM
Category:[Linux]
Tag:[Linux]
Permalink

スタンドアロンのLinuxでyumを利用する方法を紹介します。

1.はじめに

Linuxでyumを利用する場合、インターネット接続されている状態が普通だと思いますが、検証環境によってはインターネット接続されていないケースもあります。

yumが利用できないとRPMパッケージからのインストールか、ソースコードからのコンパイルが必要になり、面倒です。

ということで、スタンドアロンのLinuxでyumを利用する方法を紹介します。

2.スタンドアロンのLinuxでyumを利用する

スタンドアロンのLinuxでyumを利用するには、メディアとして、Linuxディストリビューション(ここではRHEL)のisoファイル・イメージ(CD/DVD等)を利用します。

まず、メディア(/dev/cdrom)を(/media/redhat)にマウントします。mountコマンド実行で「~mounting read-only」が表示されますが問題ありません。

# cd /media
# mkdir redhat
# mount -t iso9660 /dev/cdrom /media/redhat
mount: /dev/sr0 is write-protected, mounting read-only
# ls -l /media/redhat
合計 780
-r--r--r--.  1 root root   8266  4月  4  2014 EULA
-r--r--r--.  1 root root  18092  3月  6  2012 GPL
dr-xr-xr-x.  2 root root   2048 10月 20  2016 LiveOS
 :
dr-xr-xr-x.  2 root root   4096 10月 20  2016 repodata

次にリポジトリ定義用設定ファイル(.repo)を作成します。

# cd /etc/yum.repos.d
# vi media_default.repo

下記の内容を設定してmedia_default.repoを保存します。

[media_default]
name=media_default
baseurl=file:///media/redhat
gpgcheck=0
enabled=0

/etc/yum.repos.d配下にはデフォルトの.repoファイルがありますが、次のyumコマンドを実行するとデフォルト状態に書き替わってしまったため、ここではmedia_default.repoという別ファイルを作りました。

設定は以上です。

yumコマンドでパッケージリストを取得します。

# yum --disablerepo=\* --enablerepo=media_default list
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
インストール済みパッケージ
GeoIP.ppc64                            1.5.0-11.el7                @anaconda/7.3
NetworkManager.ppc64                   1:1.4.0-12.el7              @anaconda/7.3
NetworkManager-config-server.ppc64     1:1.4.0-12.el7              @anaconda/7.3
  :
(後略)

"--disablerepo"は通常有効になっているリポジトリを無効にするオプション、"--enablerepo"はリポジトリを指定するオプションです。

ためしにglibc-develをyumでインストールしてみます。

# yum --disablerepo=\* --enablerepo=media_default install glibc-devel
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ glibc-devel.ppc64 0:2.17-157.el7 を インストール
--> 依存性解決を終了しました。
 
依存性を解決しました
 
================================================================================
 Package            アーキテクチャー
                                 バージョン          リポジトリー          容量
================================================================================
インストール中:
 glibc-devel        ppc64        2.17-157.el7        media_default        1.1 M
 
トランザクションの要約
================================================================================
インストール  1 パッケージ
 
総ダウンロード容量: 1.1 M
インストール容量: 1.4 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告: RPMDB は yum 以外で変更されました。
  インストール中          : glibc-devel-2.17-157.el7.ppc64                  1/1
media_default/productid                                  | 1.6 kB     00:00
  検証中                  : glibc-devel-2.17-157.el7.ppc64                  1/1
 
インストール:
  glibc-devel.ppc64 0:2.17-157.el7
 
完了しました!

正常にインストールできました。

Comments [0] | Trackbacks [0]

PostgreSQLをLinuxでソースコードからビルドして利用する方法

August 17,2017 1:23 AM
Category:[PostgreSQL]
Tag:[]
Permalink

PostgreSQLをLinuxでソースコードからビルドして利用する方法を紹介します。

1.PostgreSQLソースのダウンロード

PostgreSQLのソースは、最新バージョンである下記のページにアクセスします(2017年8月現在)。

このページにある、"postgresql-9.6.3.tar.gz"をダウンロード。

2.ソースコードのビルド

ソースコードをビルドします(コマンドは赤色)。

# ./configure --without-readline
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking which template to use... linux
 :
config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h
config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port
# make
make -C src all
make[1]: ディレクトリ `/home/y-araki/postgresql-9.6.3/src' に入ります
make -C common all
make[2]: ディレクトリ `/home/y-araki/postgresql-9.6.3/src/common' に入ります
make -C ../backend submake-errcodes
make[3]: ディレクトリ `/home/y-araki/postgresql-9.6.3/src/backend' に入ります
prereqdir=`cd 'utils/' >/dev/null && pwd` && \
          cd '../../src/include/utils/' && rm -f errcodes.h && \
          ln -s "$prereqdir/errcodes.h" .
make[3]: ディレクトリ `/home/y-araki/postgresql-9.6.3/src/backend' から出ます
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -DFRONTEND -I../../src/include -D_GNU_SOURCE  -DVAL_CONFIGURE="\"'--without-readline'\"" -DVAL_CC="\"gcc\"" -DVAL_CPPFLAGS="\"-DFRONTEND -D_GNU_SOURCE\"" -DVAL_CFLAGS="\"-Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2\"" -DVAL_CFLAGS_SL="\"-fpic\"" -DVAL_LDFLAGS="\"-L../../src/common -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql/lib',--enable-new-dtags\"" -DVAL_LDFLAGS_EX="\"\"" -DVAL_LDFLAGS_SL="\"\"" -DVAL_LIBS="\"-lpgcommon -lpgport -lz -lrt -lcrypt -ldl -lm  \""  -c -o config_info.o config_info.c
 :
make -C config all
make[1]: ディレクトリ `/home/y-araki/postgresql-9.6.3/config' に入ります
make[1]: `all' に対して行うべき事はありません.
make[1]: ディレクトリ `/home/y-araki/postgresql-9.6.3/config' から出ます
All of PostgreSQL successfully made. Ready to install.
# make install
make -C src install
make[1]: ディレクトリ `/home/y-araki/postgresql-9.6.3/src' に入ります
make -C common install
make[2]: ディレクトリ `/home/y-araki/postgresql-9.6.3/src/common' に入ります
make -C ../backend submake-errcodes
 :
make[1]: ディレクトリ `/home/y-araki/postgresql-9.6.3/src' から出ます
make -C config install
make[1]: ディレクトリ `/home/y-araki/postgresql-9.6.3/config' に入ります
/bin/mkdir -p '/usr/local/pgsql/lib/pgxs/config'
/usr/bin/install -c -m 755 ./install-sh '/usr/local/pgsql/lib/pgxs/config/install-sh'
/usr/bin/install -c -m 755 ./missing '/usr/local/pgsql/lib/pgxs/config/missing'
make[1]: ディレクトリ `/home/y-araki/postgresql-9.6.3/config' から出ます
PostgreSQL installation complete.

3.DBD::Pgインストール

Perlで利用したいため、DBD::Pgをインストールしました。

CPANからダウンロードしたDBD-Pg-3.6.2のアーカイブをLinux上で展開し、インストールします。

# cd DBD-Pg-3.6.2
# ls -l
合計 640
-rw-r--r--. 1 1000 1000  59734  5月 23 23:23 2017 Changes
drwxr-xr-x. 2 1000 1000   4096  5月 23 23:24 2017 LICENSES
-rw-r--r--. 1 1000 1000    747  4月 20 08:44 2017 MANIFEST
-rw-r--r--. 1 1000 1000    359  4月 20 08:44 2017 MANIFEST.SKIP
-rw-r--r--. 1 1000 1000   1675  5月 23 23:23 2017 META.yml
-rw-r--r--. 1 1000 1000  11177  5月 23 23:23 2017 Makefile.PL
-rw-r--r--. 1 1000 1000   8567  3月 29 07:03 2017 Pg.h
-rw-r--r--. 1 1000 1000 176872  5月 23 23:23 2017 Pg.pm
-rw-r--r--. 1 1000 1000  19749  4月  3 23:46 2017 Pg.xs
-rw-r--r--. 1 1000 1000  12217  5月 23 23:23 2017 README
-rw-r--r--. 1 1000 1000  30715  4月 26 11:19 2017 README.dev
-rw-r--r--. 1 1000 1000   2436  3月 29 06:10 2017 README.win32
-rw-r--r--. 1 1000 1000   3734  5月 23 23:24 2017 SIGNATURE
-rw-r--r--. 1 1000 1000   1887  3月 31 09:03 2017 TODO
-rw-r--r--. 1 1000 1000 162413  5月 23 23:22 2017 dbdimp.c
-rw-r--r--. 1 1000 1000  11296  4月  5 21:36 2017 dbdimp.h
-rw-r--r--. 1 1000 1000   2016  3月 29 06:10 2017 dbivport.h
drwxr-xr-x. 3 1000 1000   4096  5月 23 23:24 2017 lib
-rw-r--r--. 1 1000 1000  34222  4月 20 08:37 2017 quote.c
-rw-r--r--. 1 1000 1000   1501  3月 29 06:10 2017 quote.h
drwxr-xr-x. 3 1000 1000   4096  5月 23 23:24 2017 t
-rwxr-xr-x. 1 1000 1000   5419  4月  7 23:02 2017 testme.tmp.pl
-rw-r--r--. 1 1000 1000  42748  3月 29 07:03 2017 types.c
-rw-r--r--. 1 1000 1000   6198  3月 29 06:23 2017 types.h
-rw-r--r--. 1 1000 1000   2487  3月 29 06:10 2017 win32.mak
# perl Makefile.PL
Configuring DBD::Pg 3.6.2
PostgreSQL version: 90603 (default port: 5432)
POSTGRES_HOME: (not set)
POSTGRES_INCLUDE: /usr/local/pgsql/include
POSTGRES_LIB: /usr/local/pgsql/lib
OS: linux
Checking if your kit is complete...
Looks good
Warning: prerequisite Time::HiRes 0 not found.
Using DBI 1.636 (for perl 5.010001 on x86_64-linux-thread-multi) installed in /usr/local/lib64/perl5/auto/DBI/
Writing Makefile for DBD::Pg
# make
cp lib/Bundle/DBD/Pg.pm blib/lib/Bundle/DBD/Pg.pm
cp Pg.pm blib/lib/DBD/Pg.pm
/usr/bin/perl -p -e "s/~DRIVER~/Pg/g; s/^do\(/dontdo\(/" /usr/local/lib64/perl5/auto/DBI/Driver.xst > Pg.xsi
/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp  -typemap /usr/share/perl5/ExtUtils/typemap  Pg.xs > Pg.xsc && mv Pg.xsc Pg.c
gcc -c  -I/usr/local/pgsql/include -I/usr/local/lib64/perl5/auto/DBI -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPGLIBVERSION=90603 -DPGDEFPORT=5432 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic  -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc -DVERSION=\"3.6.2\" -DXS_VERSION=\"3.6.2\" -fPIC "-I/usr/lib64/perl5/CORE"   Pg.c
 :
chmod 755 blib/arch/auto/DBD/Pg/Pg.so
cp Pg.bs blib/arch/auto/DBD/Pg/Pg.bs
chmod 644 blib/arch/auto/DBD/Pg/Pg.bs
Manifying blib/man3/Bundle::DBD::Pg.3pm
Manifying blib/man3/DBD::Pg.3pm
# make install
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib64/perl5/auto/DBD/Pg/Pg.so
Installing /usr/local/lib64/perl5/auto/DBD/Pg/Pg.bs
Installing /usr/local/lib64/perl5/Bundle/DBD/Pg.pm
Installing /usr/local/lib64/perl5/DBD/Pg.pm
Installing /usr/local/share/man/man3/Bundle::DBD::Pg.3pm
Installing /usr/local/share/man/man3/DBD::Pg.3pm
Appending installation info to /usr/lib64/perl5/perllocal.pod

4.PostgreSQLユーザアカウント作成

PostgreSQL用のアカウントを作成します。下記のページを参考にしました。

17.1. PostgreSQLユーザアカウント

# groupadd postgres
# useradd -d /home/postgres -g postgres -s /bin/tcsh postgres
# passwd postgres
ユーザー postgres のパスワードを変更。
新しいパスワード:
よくないパスワード: 辞書の単語に基づいています
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。
# chown postgres /usr/local/pgsql
# ls -l
合計 48
drwxr-xr-x. 17 root     root 4096  4月 10 11:17 2017 apache2
drwxr-xr-x.  2 root     root 4096  7月 27 10:52 2017 bin
drwxr-xr-x.  2 root     root 4096  9月 23 20:50 2011 etc
drwxr-xr-x.  2 root     root 4096  9月 23 20:50 2011 games
drwxr-xr-x.  2 root     root 4096  4月 10 10:08 2017 include
drwxr-xr-x.  4 root     root 4096  4月 10 10:08 2017 lib
drwxr-xr-x.  3 root     root 4096  4月 10 11:30 2017 lib64
drwxr-xr-x.  2 root     root 4096  9月 23 20:50 2011 libexec
drwxr-xr-x.  7 postgres root 4096  7月 27 14:10 2017 pgsql
drwxr-xr-x.  2 root     root 4096  9月 23 20:50 2011 sbin
drwxr-xr-x.  8 root     root 4096  4月 10 11:30 2017 share
drwxr-xr-x.  2 root     root 4096  9月 23 20:50 2011 src
# su - postgres
$ setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
$ set path = ( /usr/local/pgsql/bin $path )

5.データベースクラスタの作成

PostgreSQLユーザでデータベースクラスタを作成します。下記のページを参考にしました。

17.2. データベースクラスタの作成

$ initdb -D /usr/local/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
 
The database cluster will be initialized with locale "ja_JP.UTF-8".
The default database encoding has accordingly been set to "UTF8".
initdb: could not find suitable text search configuration for locale "ja_JP.UTF-8"
The default text search configuration will be set to "simple".
 
Data page checksums are disabled.
 
creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
 
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
 
Success. You can now start the database server using:
 
    pg_ctl -D /usr/local/pgsql/data -l logfile start

6.データベースサーバの起動

データベースサーバを起動します。起動方法はいろいろあるようですが、下記のページを参考にしました。

17.3. データベースサーバの起動

$ pg_ctl -D /usr/local/pgsql/data -l logfile start
server starting

7.データベースユーザの作成

データベース用のユーザ"mtuser"を作成します。

$ createuser -P --no-adduser --no-createdb --no-createrole mtuser
Enter password for new role:
Enter it again:

8.データベースの作成

データベース"hoge"を作成します。

$ createdb --owner mtuser hoge

9.その他

ここまでの作業でMovableTypeをPostgresQLで動かせると思ったのですが、起動しても「データベースモジュールが見つかりません」となり、インストールしたはずのDBD::Pgが表示されます。

postgresql.confに下記の1行を追加し、ldconfigを実施することで解消しました。

下記のページを参考にしました。

15.6. インストール後の設定作業

# cd /etc/ld.so.conf.d
# vim postgresql.conf

下記の1行を追加。
--------------------
/usr/local/pgsql/lib
--------------------

# /sbin/ldconfig

これを行わないとMovableTypeの画面で「再試行」を実施しても状況が変わりません。

10.ノウハウ

"pg_ctl -D /usr/local/pgsql/data -l logfile start"はバックグラウンド起動しません。

バックグラウンド起動すると正常に起動されません。

上の状態に気が付かずにcreateuserすると、「could not connect to database postgres: could not connect to server」というエラーになります(下)。

$ pg_ctl -D /usr/local/pgsql/data -l logfile start 2>&1 &
[1] 6217
[postgres@mnet-host11 ~]$ createuser
createuser: could not connect to database postgres: could not connect to server: そのようなファイルやディレクトリはありません
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
[1]  + 1で終了しました pg_ctl -D /usr/local/pgsql/data -l logfile start 2 >& 1

11.参考サイト

参考サイトは下記です。ありがとうございました。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages