どこかに向かうらしい話

迷走エンジニアの放浪記

Git最新版 on CentOS7

詳しくはこのサイトを参考にさせていただいた。

CentOS7に最新のGitを導入する方法 - vdeep

ぶっちゃけこのサイト見ればALL OKなのであるが、自分が読みやすい形にしたいということで、インストール手順を以下の通り記載することとした。

まず、事前にインストールしておく必要があるパッケージのインストールを行う。

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

次に、ソースコードを取得し、解凍する。

https://git-scm.com/の「Latest source Release」より、最新版のバージョンを確認する。
そして、https://www.kernel.org/pub/software/scm/git/ から、最新版のURLを確認し、ダウンロードを行う。

なお、現時点確認した最新版は「2.10.0」であったので、「2.10.0」のダウンロードを行っている。

# cd /usr/local/src/
# curl -O https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz
# tar xzvf git-2.10.0.tar.gz

makeする。

# cd git-2.10.0
# make prefix=/usr/local all
# make prefix=/usr/local install

導入確認を行う。

# git --version
git version 2.10.0

PostgreSQLのメタコマンド

PostgreSQLのよく使うメタコマンドについて備忘録。
なお、メタコマンドはSQLコマンドと異なり、改行で終わりが判断される。

タコマンド 説明
\q         psqlを切断する
\l データベースの一覧を表示する
\d        テーブル、ビュー、シーケンスの一覧を表示する
\d テーブル名 テーブルの項目(フィールド)確認する
\dt テーブルの一覧を表示する
\di インデックスの一覧を表示する
\dv ビューの一覧を表示する
\ds シーケンスの一覧を表示する
\copy PostgreSQLpsqlの間でテーブルデータをコピーする
\i sqlファイル名 SQL(スクリプト)ファイルの実行する

scott/tiger @ Oracle11g

Oracleの検証において、scott/tigerを使いたい時があるが、Oracle11gで使おうとすると、アカウントロックされている旨のエラーが出る。

ERROR:
ORA-28000: the account is locked

このエラーを解決するためには、以下の通り、Oracle側で用意されているsqlを実行すればOK。

$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> @utlsampl.sql

sqlを実行すると、

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

と出力され、接続が切れる。
その後、scott/tigerで接続できることを確認する。

$ sqlplus /nolog
SQL> conn scott/tiger

NoSQL on CentOS7

はじめに

NoSQLを勉強しようとして、以下の書籍を買った。

RDB技術者のためのNoSQLガイド

RDB技術者のためのNoSQLガイド

すぐに新しくなってしまう分野のため、鉄は熱いうちに打ての精神で読んでみた。
簡単に言えば、NoSQLに該当するプロダクトの特徴、使いどころ(ユースケース)、限界について綺麗に書かれてる印象。
ただ、各プロダクトのインストールの仕方までは書籍では取り扱われていない。
そのため、ここではCentOS7に各プロダクトのインストール方法について、自分の環境で試して見た結果をメモしてみようと試みた。

なお、ユースケースより自分の興味の持ったNoSQLは以下の通り。
(めんどくさそうなのを削除したともいう…)

  • MongoDB
  • Cassandra
  • Redis
  • Neo4j

上記4つのインストール手順について、CentOSの最小インストール + Firewalld無効化 + SELinux無効化 以降の手順を以下の通り示す。

MongoDB 3.2

インストール

/etc/yum.repos.d/mongodb-org-3.2.repoを以下の内容で作成する。

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

yumコマンドでインストールする。

# yum install mongodb-org

起動と自動起動

起動は以下の通り行う。

# systemctl start mongod

なお、自動起動についてだが、mongodはCentOS7のネイティブデーモンではないため、従来通りchkconfigを用いる。

# chkconfig mongod on

Cassandra 3.0

事前準備

Cassandraを動かすためには、最新版のJava8(Oracle Java SE 8 か OpenJDK 8)をインストールするように求められているため、OpenJDKを事前に入れておく。

# yum install java

インストール

/etc/yum.repos.d/datastax.repoを以下の内容で作成し、Datastaxのリポジトリを追加する。

[datastax]
name=DataStax Repo for Apache Cassandra
baseurl=http://rpm.datastax.com/community
enabled=1
gpgcheck=0

以下のコマンドを実行し Cassandra をインストールする。
なお、インストールによりCassandraユーザーが作成され、Cassandraの起動時に使用されます。

# yum install cassandra30

起動と自動起動

systemctlでやろうとするとこけるので、旧来の方法で行う。

# service cassandra start
# chkconfig cassandra on

Redis 3.2

書籍で取り扱われているRedisのバージョンは、3.0系である。
しかし、2016年8月25日現在、Redisは、REMIリポジトリには3.2系しかなく、EPELリポジトリには2.8系が最新の状況である。
そのため、3.0系以降のバージョンであるREMIリポジトリからパッケージを取得する方針を取ることにする。

インストール

Redisの最新版を取得するために、REMIリポジトリを追加する。

# yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

yumコマンドでインストールする。
ここで直接REMIリポジトリを指定することを忘れないこと。

# yum install --enablerepo=remi redis

起動と自動起動

お決まりのパターンで行う。

# systemctl start redis
# systemctl enable redis

Neo4j 2.3

Neo4jにはCommunityバージョンとEnterpriseバージョンがあるが、今回はCommunityバージョンをインストールすることにした。
また、ここでインストールするバージョンは2.3.6とする。

事前準備

Neo4jは、サーバーでオープンできるファイル数について、40000以上を推奨している。
今回作成するのは検証環境なので、最大の65536にする。
/etc/security/limits.confに以下の通り追記する。

*                soft    nofile          65536
*                hard    nofile          65536

.bash_profile に以下を追加する。

export NEO4J_HOME=/usr/neo4j

ここで設定を反映させるため、再起動をする。

Neo4jを動かすためには、JDK7以上が必要なので、JDKを事前に入れておく。 また、lsofも入れておく。

# yum install java lsof

インストール

ブラウザで https://neo4j.com/download/other-releases/ にアクセスし、「Linux/Mac Neo4j 2.3.6 (tar)」を選択すると、「neo4j-community-2.3.6-unix.tar.gz」をダウンロードする。

そして、tarファイルを/rootに配置し、展開を行う。

# tar -xf neo4j-community-2.3.6-unix.tar.gz
# mv neo4j-community-2.3.6 /usr/neo4j

起動

標準設定では、外部からの接続はできない。
外部からブラウザでNeo4jに接続するためには、${NEO4J_HOME}/conf/neo4j-server.propertiesの標準設定を変更する必要がある。

org.neo4j.server.webserver.address=0.0.0.0

以下のコマンドにより起動する。

# ${NEO4J_HOME}/bin/neo4j console

ブラウザより、以下の通りアクセスを行う。

http://【IPアドレス】:7474

Neo4jのログイン画面で、初期ユーザーとパスワードを入力し、Neo4に接続する。
初期ユーザーはneo4jであり、そのパスワードはneo4jである。
なお、初回ログイン時にパスワードの変更が求められるので、変更を行う。

CentOS7のシステムバックアップに導入する必要のあるパッケージ一覧

はじめに

以下の要件を満たすシステムイメージのバックアップを行うオープンソースソフトウェアを調査した。

  • 導入が容易である。
  • データの配置先として、「ローカルディスク」「NFSサーバ」「USB メモリ」「テープ」「CD/DVD」「LVM」に対応している。
  • LVMに対応している。

その結果として、有名なものにRelax and RecoverとMondo Rescueがあがった。

Relax and Recover

http://relax-and-recover.org/

Relax and Recover とは、NFSサーバなどバックアップデータの保存先と、レスキューイメージを使って簡単にシステムイメージのバックアップ・リストアができるオープンソースソフトウェアである。
Relax-and-Recoverには以下のような特徴がある。

  • RHEL 7.2から同梱されるようになった(yumで簡単にインストール可能)
  • Bashのみから成る
  • バックアップ、リストアの手順が非常に簡単
  • バックアップデータとレスキューイメージを使ったリストアを行う

参考
Relax and Recoverでのシステム回復
https://oss.sios.com/redhat-ch/blog/rear

Mondo Rescue

http://www.mondorescue.org/

Mondo Rescue とは、システムイメージのバックアップ・リストアができるオープンソースソフトウェアである。
パッケージが用意されているため、簡単に導入が可能。
Mondo Rescueには以下のような特徴がある。

  • リストア時にパーティションのサイズ変更や、grubなど、システムの調整ができる
  • 特定ディレクトリを除外できる
  • バックアップデータを使ったリストアを行う

この記事の目的

機能面も大事だが、あんまりパッケージを入れないで使えるほうが望ましい。
最小インストールが行われたCentOS7.2に対して、どれだけのパッケージのインストールが必要になるかの検証を行う。

結果

ほとんど入れる必要のないRelax and Recoverと、リポジトリの登録が必要なうえに大量のパッケージの導入が必要になるMondo Rescueと、結果が明確に分かれた。
以降、検証結果を示す。

検証

Relax and Recoverのインストール

本体のインストール

# yum install rear

【中略】

========================================================================================================================
 Package                  アーキテクチャー           バージョン                          リポジトリー              容量
========================================================================================================================
インストール中:
 rear                     noarch                     1.17.2-1.el7                        base                     354 k
依存性関連でのインストールをします:
 attr                     x86_64                     2.4.46-12.el7                       base                      66 k

トランザクションの要約
========================================================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 419 k
インストール容量: 1.1 M

【以下略】

関連パッケージのインストール

以下の通りインストールする。

# yum install mkisofs syslinux

【中略】

========================================================================================================================
 Package                       アーキテクチャー         バージョン                         リポジトリー            容量
========================================================================================================================
インストール中:
 genisoimage                   x86_64                   1.1.11-23.el7                      base                   298 k
 syslinux                      x86_64                   4.05-12.el7                        base                   990 k
依存性関連でのインストールをします:
 libusal                       x86_64                   1.1.11-23.el7                      base                   135 k
 mtools                        x86_64                   4.0.18-5.el7                       base                   203 k

トランザクションの要約
========================================================================================================================
インストール  2 パッケージ (+2 個の依存関係のパッケージ)

総ダウンロード容量: 1.6 M
インストール容量: 4.1 M

【以下略】

Mondo Rescueのインストール

本体のインストール

# cd /etc/yum.repos.d 
# wget http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
# yum install mondo

【中略】

========================================================================================================================
 Package                                アーキテクチャー バージョン                         リポジトリー           容量
========================================================================================================================
インストール中:
 mondo                                  x86_64           3.2.2-1.centos7                    mondorescue           902 k
依存性関連でのインストールをします:
 afio                                   x86_64           2.5-1.centos7                      mondorescue            75 k
 buffer                                 x86_64           1.19-8.centos7                     mondorescue            23 k
 bzip2                                  x86_64           1.0.6-13.el7                       base                   52 k
 dosfstools                             x86_64           3.0.20-9.el7                       base                  101 k
 gdbm-devel                             x86_64           1.10-8.el7                         base                   47 k
 genisoimage                            x86_64           1.1.11-23.el7                      base                  298 k
 glibc-devel                            x86_64           2.17-106.el7_2.8                   updates               1.0 M
 glibc-headers                          x86_64           2.17-106.el7_2.8                   updates               663 k
 kernel-headers                         x86_64           3.10.0-327.28.2.el7                updates               3.2 M
 libdb-devel                            x86_64           5.3.21-19.el7                      base                   38 k
 libusal                                x86_64           1.1.11-23.el7                      base                  135 k
 mindi                                  x86_64           3.0.2-1.centos7                    mondorescue           202 k
 mindi-busybox                          x86_64           1.21.1-1.centos7                   mondorescue           276 k
 mtools                                 x86_64           4.0.18-5.el7                       base                  203 k
 net-tools                              x86_64           2.0-0.17.20131004git.el7           base                  304 k
 perl                                   x86_64           4:5.16.3-286.el7                   base                  8.0 M
 perl-CPAN-Meta                         noarch           2.120921-5.el7                     base                  113 k
 perl-CPAN-Meta-Requirements            noarch           2.122-7.el7                        base                   24 k
 perl-CPAN-Meta-YAML                    noarch           0.008-14.el7                       base                   24 k
 perl-Carp                              noarch           1.26-244.el7                       base                   19 k
 perl-Data-Dumper                       x86_64           2.145-3.el7                        base                   47 k
 perl-Digest                            noarch           1.17-245.el7                       base                   23 k
 perl-Digest-MD5                        x86_64           2.52-3.el7                         base                   30 k
 perl-Encode                            x86_64           2.51-7.el7                         base                  1.5 M
 perl-Exporter                          noarch           5.68-3.el7                         base                   28 k
 perl-ExtUtils-CBuilder                 noarch           1:0.28.2.6-286.el7                 base                   67 k
 perl-ExtUtils-Install                  noarch           1.58-286.el7                       base                   73 k
 perl-ExtUtils-MakeMaker                noarch           6.68-3.el7                         base                  275 k
 perl-ExtUtils-Manifest                 noarch           1.61-244.el7                       base                   31 k
 perl-ExtUtils-ParseXS                  noarch           1:3.18-2.el7                       base                   77 k
 perl-File-Path                         noarch           2.09-2.el7                         base                   26 k
 perl-File-Temp                         noarch           0.23.01-3.el7                      base                   56 k
 perl-Filter                            x86_64           1.49-3.el7                         base                   76 k
 perl-Getopt-Long                       noarch           2.40-2.el7                         base                   56 k
 perl-HTTP-Tiny                         noarch           0.033-3.el7                        base                   38 k
 perl-IO-Interface                      x86_64           1.05-2.el7                         mondorescue            26 k
 perl-IPC-Cmd                           noarch           1:0.80-4.el7                       base                   34 k
 perl-JSON-PP                           noarch           2.27202-2.el7                      base                   55 k
 perl-Locale-Maketext                   noarch           1.23-3.el7                         base                   93 k
 perl-Locale-Maketext-Simple            noarch           1:0.21-286.el7                     base                   49 k
 perl-Module-Build                      noarch           2:0.40.05-2.el7                    base                  281 k
 perl-Module-CoreList                   noarch           1:2.76.02-286.el7                  base                   84 k
 perl-Module-Load                       noarch           1:0.24-3.el7                       base                   11 k
 perl-Module-Load-Conditional           noarch           0.54-3.el7                         base                   18 k
 perl-Module-Metadata                   noarch           1.000018-2.el7                     base                   26 k
 perl-Module-ScanDeps                   noarch           1.10-3.el7                         base                   45 k
 perl-MondoRescue                       noarch           3.2.2-1.centos7                    mondorescue            82 k
 perl-Net-IPv4Addr                      noarch           0.10-6.el7                         mondorescue            16 k
 perl-Params-Check                      noarch           1:0.38-2.el7                       base                   18 k
 perl-Parse-CPAN-Meta                   noarch           1:1.4404-5.el7                     base                   14 k
 perl-PathTools                         x86_64           3.40-5.el7                         base                   82 k
 perl-Perl-OSType                       noarch           1.003-3.el7                        base                   20 k
 perl-Pod-Escapes                       noarch           1:1.04-286.el7                     base                   50 k
 perl-Pod-Perldoc                       noarch           3.20-4.el7                         base                   87 k
 perl-Pod-Simple                        noarch           1:3.28-4.el7                       base                  216 k
 perl-Pod-Usage                         noarch           1.63-3.el7                         base                   27 k
 perl-ProjectBuilder                    noarch           0.14.1-1.centos7                   mondorescue           133 k
 perl-Scalar-List-Utils                 x86_64           1.27-248.el7                       base                   36 k
 perl-Socket                            x86_64           2.010-3.el7                        base                   49 k
 perl-Storable                          x86_64           2.45-3.el7                         base                   77 k
 perl-Test-Harness                      noarch           3.28-3.el7                         base                  302 k
 perl-Text-ParseWords                   noarch           3.29-4.el7                         base                   14 k
 perl-Time-HiRes                        x86_64           4:1.9725-3.el7                     base                   45 k
 perl-Time-Local                        noarch           1.2300-2.el7                       base                   24 k
 perl-constant                          noarch           1.27-2.el7                         base                   19 k
 perl-devel                             x86_64           4:5.16.3-286.el7                   base                  452 k
 perl-libs                              x86_64           4:5.16.3-286.el7                   base                  687 k
 perl-macros                            x86_64           4:5.16.3-286.el7                   base                   43 k
 perl-parent                            noarch           1:0.225-244.el7                    base                   12 k
 perl-podlators                         noarch           2.5.1-3.el7                        base                  112 k
 perl-threads                           x86_64           1.87-4.el7                         base                   49 k
 perl-threads-shared                    x86_64           1.43-6.el7                         base                   39 k
 perl-version                           x86_64           3:0.99.07-2.el7                    base                   84 k
 pyparsing                              noarch           1.5.6-9.el7                        base                   94 k
 syslinux                               x86_64           4.05-12.el7                        base                  990 k
 systemtap-sdt-devel                    x86_64           2.8-10.el7                         base                   65 k
 wodim                                  x86_64           1.1.11-23.el7                      base                  320 k
依存性関連での更新をします:
 glibc                                  x86_64           2.17-106.el7_2.8                   updates               3.6 M
 glibc-common                           x86_64           2.17-106.el7_2.8                   updates                11 M

トランザクションの要約
========================================================================================================================
インストール  1 パッケージ (+77 個の依存関係のパッケージ)
更新                       (  2 個の依存関係のパッケージ)

総ダウンロード容量: 38 M

【以下略】

関連パッケージのインストール

  • lzo(高速圧縮ライブラリ)
  • lzop(高速圧縮ユーティリティ)

以下の通りインストールする。

# yum install lzo lzop
【中略】
パッケージ lzo-2.06-8.el7.x86_64 はインストール済みか最新バージョンです
【中略】
========================================================================================================================
 Package                   アーキテクチャー            バージョン                       リポジトリー               容量
========================================================================================================================
インストール中:
 lzop                      x86_64                      1.03-10.el7                      base                       54 k

トランザクションの要約
========================================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 54 k
インストール容量: 99 k

【以下略】

Oracle Database 12c を CentOS7にインストールしたときの備忘録

インストール手順は、以下のサイトを参考に行った。

CentOS 7 : Oracle Database 12c : インストール環境の設定 : Server World

その際のインストール時の備忘録として記載する。

インストールパッケージについて

インストール要件にkshがあるが、これに対応するパッケージはpdkshである。
これは実際には、mkshをインストールすることにより、pdkshがインストールされる。

# yum search pdksh
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
===================================================== 一致: pdksh ======================================================
mksh.x86_64 : MirBSD enhanced version of the Korn Shell

Oracle Database 12c インストール時の文字化け

Oracle Database 12c をインストールするとき、文字化けが発生し、日本語が「□□□」になった。

対応方法は、

  • 端末から「export LANG=C」と入力して、英語でインストールする。
  • jreの場所を直接指定してインストーラを起動する。

JREは /usr/lib配下にあるので、以下のように検索を行う。

$ find /usr/lib -name jre

そこで出てきたPATHを指定してrunInstallerを起動する。

$ ./runInstaller -jreLoc /usr/lib/jvm/java-1.8.0.71-.b15.el7_2.x86_64/jre

これで日本語でインストーラが起動する。

「PRVF-0002:ローカル・ノード名を取得できませんでした」のエラー

/etc/hostsファイルに、自ホスト名を追記すればOK。
自ホスト名が「ora12c」とする場合は、以下のようになる。

127.0.0.1   ora12c localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         ora12c localhost localhost.localdomain localhost6 localhost6.localdomain6

DBCAでも文字化けが発生

DBCAでも、文字化けが発生し、日本語が「□□□」になった。

対応方法は、

  • 端末から「export LANG=C」と入力して、英語でDBCAを起動する。
  • ${ORACLE_HOME}/bin/dbcaのJRE_DIRをOS標準の日本語フォントに対応したjreに書き換えてDBCAを起動する。

JREは /usr/lib配下にあるので、以下のように検索を行う。

$ find /usr/lib -name jre

そこで出てきたPATHを指定に書き換える。

(71行目)
# JRE_DIR=/u01/app/oracle/product/12.1.0/dbhome_1/jdk/jre
JRE_DIR=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre

そして、DBCAを起動する。

$ dbca

これで日本語でインストーラが起動する。

おまけ

Oracleが公表してるガイドは以下のものがある。

http://www.oracle.com/technetwork/jp/database/enterprise-edition/documentation/db121linux-x64-ja-v10-1984264-ja.pdf

CentOS7にGuest Additionsのインストール

GUEST ADDITIONS

Guest Additionsのなかでも特に以下の機能を使用したい。

GUEST ADDITIONSをインストール

必要なパッケージとそのパッケージのインストール

必要なパッケージは以下の通り。

  • Development Tools (開発ツール)
  • kernel-devel
  • kernel-headers

以下の様にパッケージをインストールする。

# yum groupinstall "Development Tools"
# yum install kernel-devel kernel-headers

ゲストマシン上のメニュー「デバイス」→「Guest AdditionsのCDイメージを挿入」をクリックする。

次にゲストマシン上のターミナルを開いて、作業ディレクトリを作成して、GuestAdditionsのマウント先に移動する。

# mkdir /mnt/cdrom
# mount -r /dev/cdrom /mnt/cdrom/
# cd /mnt/cdrom

CentOSなので、対応するインストールスクリプトを実行する。

# ./VBoxLinuxAdditions.run

すると、こんなエラーメッセージを吐き出した。

The missing package can be probably installed with
yum install kernel-devel-3.10.0-327.el7.x86_64

なので、

# yum install kernel-devel-3.10.0-327.el7.x86_64

を実行した。
その後再度以下を実行。

# ./VBoxLinuxAdditions.run

インストールスクリプトが終了し、プロンプトが戻ってきたらOSを一度リブートする。 以上でGuest Additionsのインストールは終了。