まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:rhel

Ubuntu の標準形式でありながら、CentOS や RHEL(RedHat Enterprise Linux) ではそのままでは扱えない deb パッケージを rpm パッケージに変換する方法があります。

具体的には alien コマンドを利用します。 まずこの alien コマンドを CentOS や RHEL 環境上でビルドします:
# yum install rpm-build
# cd /tmp
# wget http://ftp.debian.org/debian/pool/main/a/alien/alien_8.92.tar.gz
# rpmbuild -ta alien_8.92.tar.gz
  :
  :
書き込み完了: /root/rpmbuild/RPMS/noarch/alien-8.92-1.noarch.rpm
  :
  :
# rpm -ivh /root/rpmbuild/RPMS/noarch/alien-8.92-1.noarch.rpm

ここまでの作業で alien コマンドがインストールできているので、このコマンドを使って deb パッケージを rpm パッケージへ変換します:
# alien --to-rpm --scripts xxx.deb
xxx.rpm generated

こうして出来上がった rpm ファイルは rpm コマンドや yum コマンドで導入可能です。
 

このエントリの続きです:
レッドハットの開発者向けサブスクリプション(無料)を使ってみた


上記エントリで、レッドハット社が開発者向けに無料で提供を開始した RHEL 7.2 の導入方法を紹介しました。普通に導入して使うまでであれば、この方法で問題なくできるはずです。

が、この状態から新しいツールを yum でインストールしようとして躓きました。ライセンスを購入して利用しているわけではないので、標準のレポジトリを使うことができず、結局 yum の利用ができないのです:
2016042701


というわけで、インストール時に使ったメディア DVD(iso)を使って yum のリポジトリを作り、そこから yum でツールを導入できるようにしてみます。


まずはインストールメディアを RHEL システム内にマウントします。DVD で所有している場合はトレイに入れるだけで自動的にマウントしてくれるはずです。iso ファイルで所有している場合は、以下のコマンドを使ってマウントします(この例では /root/rhel-server-7.2-x86_64-dvd.iso ファイルを /mnt/iso にマウントします):
# mount -t iso9660 -o loop /root/rhel-server-7.2-x86_64-dvd.iso /mnt/iso

次に /etc/yum.repos.d/localdvd.repo ファイルを以下の内容で新規に作成します。マウントした iso(または DVD)をリポジトリとするための記述になってます:
[localdvd]
name=RHEL 7.2 x86_64 DVD
baseurl=file:///mnt/iso/
enabled=1
gpgcheck=0
gpgkey=file:///mnt/iso/RPM-GPG-KEY-redhat-release

そしてリポジトリリストを更新します:
# yum repolist all

これで DVD(iso) の中にあるパッケージファイルが yum で導入できるようになりました。普通に yum install コマンドなどが使えるようになっている、はず:
# yum install screen


日本時間の 2016 年 4 月 1 日に、レッドハット社から驚きの発表がありました:
No-Cost RHEL Developer Subscription now available

2016040101



開発(者)向け、という条件は付きますが、RHEL(RedHat Enterprise Linux) を含む Devloper Suite が無料でダウンロード可能になった、というものです。マジか!?これはタチの悪いエイプリルフールだろ?と思ったのですが、このニュースは米国時間の 3 月 31 日にリリースされており、エイプリルフールではなさそうです。。

自分はこれまで RHEL のコミュニティ版ともいえる CentOS ばかり使っていましたが、ついにこの領域にレッドハット社が脚を踏み入れることになるとは。。 色々な事情や背景も考えられますが、なにはともあれ使えるものなら使ってみたいわけです(笑)。試してみました。


まずは RHEL のダウンロードサイトへ行ってみると、既にこの発表を反映した内容になっています:
http://developers.redhat.com/products/rhel/download/

2016040102


このサイトから RHEL 7 がダウンロードできるようになっている模様です。リンクをクリックすると、アカウントログインが求められます。RedHat Developer アカウントを持っている場合は入力、持っていない場合は新規に作成してログインします。各種SNSの情報に紐付けたサインインもできるようです:
2016040103


そしてアカウントプロファイル作成後にログインすると、その場から RHEL サーバーの ISO イメージのダウンロードが開始されました(バージョン 7.2 の 64bit 版でした。そういや 7.x って 32bit 版ないんだっけ)。インストールなど、ダウンロード後の作業手順についてもここから参照できるようです:
2016040104


といっても特別な手順が必要なわけではなく、普通に ISO(DVD) からブートできます:
2016040105


インストーラーも普通でした。最初に日本語選んでおけばインストール作業から日本語GUIで行えます:
2016040106


インストールが完了してリブートした直後の画面がこちらです。"LICENSE INFORMATION" に警告マークがついているので、ここをクリックします:
2016040107


ライセンス条項を読み、確認して、同意にチェックを入れ、左上の「完了」ボタンで戻ります:
2016040108


画面が戻ると先程の警告マークが消えているはずです。右下のボタンで設定を完了します:
2016040109


「ようこそ」画面が出るので更に進めていきます。すると・・・:
2016040110


じゃーん!
2016040101


個人的には見る機会の少ない RedHat Enterprise Linux のデスクトップ画面が表示されました。7.x になってからは本当に初めてかもしれない。。 ともあれ、無料のアカウント登録だけで本当に使えてしまいました。

動いてしまえば、後は慣れた CentOS の感覚(?)で使えるようになります:
2014040101






(注 この記事の内容は少し古くなってしまっています。2017年1月時点の最新内容はこちらからどうぞ)


メインフレーム(IBM z Systems)版 Linux 環境である LinuxONE が無償利用可能なクラウドコミュニティサービスとして公開されました:
https://developer.ibm.com/linuxone/


アプリケーション開発者や学生さんであれば、ユーザー登録するだけで LinuxONE 版の RHEL(RedHat Enterprise Linux) を最大90日間利用することができます(root 権限もあります)。メインフレーム版の Linux の使い勝手やパフォーマンス、そしてアプリケーション互換性など気になります。試しに自分も使ってみました。

日本語での利用ガイドはこちらにあります(PDF)。この手順で実際にアクセスできる環境の構築まではできますが、その後使ってみるとちょっと気になったので補足したり、実際に使い始めてみての印象も含めて自分なりの感想を書き綴ってみたつもりです:
http://www-03.ibm.com/systems/jp/resources/linuxone_cc-quick-start-guide.pdf


ちなみにこの環境はニューヨーク州ポケプシーにあるマリスト大学内に LinuxONE を設置して、ホスティング環境を提供いただいて実現しています。つまり接続先はニューヨークになります:
Marist College Partners with IBM and Linux Foundation to Support Linux on the Mainframe


では実際にユーザー登録して使ってみましょう。まずは LinuxONE Community Cloud サイトにアクセスして、トップページの "Register NOW" と書かれたボタンをクリックします:
2015121801



名前やメールアドレスなどの利用者情報を入力します。途中に携帯電話番号を指定する箇所があり、確認のためその携帯電話に送られる認証コードを入力して進める、という流れになっています:
2015121802



ここでの手続きが完了するとこのような画面になります。この後登録したメールアドレスに何通かのメールが順次送られてきます:
2015121803


そのうちの一通がこちらです。LinuxONE Community Cloud のダッシュボード画面への URL が記載されているのでメモしておきましょう:
2015121813


別メールでこのような内容が送られてきます。上記のダッシュボードにログインするための情報が記載されています:
2015121812



ここまでの情報が揃っていれば実際に LinuxONE Community Cloud を利用することができるようになります。上記のメールで送られてきた URL にブラウザでアクセスすると、このようなログイン画面が表示されます。別メールで送られてきた User ID とパスワードを指定してログインします:
2015121804


ログイン直後はこのような画面になります。OS イメージとか色々気になりますが、実際に作ったインスタンスにアクセスするには SSH 鍵ペアが必要になるので、最初に作って(登録して)おきます。"Access" と書かれたタブをクリックします:
2015121801


"Access" タブの "Key Pairs" 画面に移ると現在登録されている鍵の一覧が表示されます(この時点では何も登録されていないはずです)。新規に作成してもいいですし、手持ちの鍵ペアをインポートする形で登録しても、どちらでも構いません。私は自分が持っていた SSH 鍵をインポートして使うことにしたので後者の手順を紹介します(自分で鍵を作成する手順はこちらを参照ください)。画面内一番右の "Import" アイコンをクリックします:
2015121802


環境(LinuxONE Community Cloud)と鍵の名前(任意)、そしてインポートしたい公開鍵の内容をペーストするか、あるいは "Browse" で公開鍵ファイルを指定して、"Import" します:
2015121803


新規作成やインポートが成功するとこんな感じの画面になります。正しく認証鍵が登録できました:
2015121804


ではこの鍵を使って Linux インスタンスを作成してみます。"Images" タブを開いて利用可能なイメージの一覧を確認します。現時点では素の RHEL6.7 環境と、RHEL6.7 に MongoDB が付属している(と思われる)環境の2つのイメージが登録されて使えるようになっていました。どちらでもいいのですが、とりあえずは最小構成を試してみたいので前者を選択します:
2015121805


RHEL6.7 イメージの内容が表示されます。これをインスタンスとしてデプロイしたいので "Deploy" ボタンをクリックします:
2015121807


デプロイ時の情報入力画面に切り替わります。ここに必要な情報を入力/指定していきます:
2015121808


Name には任意の名称を入力します。注意点として Project はデフォルトの "Public" ではなく、自分に割り当てられたプロジェクト ID (要するに "Public" じゃない方)を指定し直してください。なおインスタンスの有効期限も指定できますが、デフォルトで最長の90日間になっているはずです:
2015121806


続きです。System の Flavor (規模)は "m1.linuxone" が唯一の選択肢になっているはずなので、これを選びます。この Flavor で CPU x 2、メモリ 2GB のスペックになります。そして Access and Security では上記で作成した鍵ペアの名前を必ず指定してください(これをしないと作成したインスタンスにアクセスする術がなくなります)。最後に "Deploy" ボタンをクリックすると作成が開始されます:
2015121807


画面が切り替わり、インスタンスが作成中である旨のメッセージが表示されます:
2015121810


画面をリロードすると、インスタンスが作成中であることがわかります:
2015121811


しばらく待つと作成したインスタンスの Status が OK となります。これでインスタンスが作成され、起動も完了したことになります。名前部分をクリックしてインスタンスの詳細を確認しましょう:
2015121812


インスタンスの詳細画面です。この中にパブリック IP アドレスが記載されているので、この値をメモしておきましょう:
2015121808


では作成した LinuxONE のサーバーインスタンスにアクセスして実際に使ってみましょう。Teraterm などの SSH クライアントを使って、先程メモした IP アドレスに SSH アクセスします。その際のユーザー名には "linux1"、秘密鍵にはあらかじめ作成した(あるいは作成してダウンロードした)秘密鍵ファイル、そしてパスフレーズには秘密鍵作成時に指定したパスフレーズを入力してアクセスします:
2015121809


プロンプトが表示されればログイン成功です!:
2015121810


とりあえず cpuinfo とシステム名を確認してみました。間違いなく IBM/S390 システムで CPU は2個確認できます:
2015121811


この linux1 ユーザーは sudo 権限を持っているので root 権限でコマンドを実行したり、rpm や yum コマンドで新たにアプリケーションをインストールしたりすることもできます。軽く使ってみた感じでは「Intel 版の RHEL(CentOS) とほとんど変わらない、というか違いを感じない」という印象です。

1つだけ、環境を見ていて気付いたのはイーサネットの設定で DNS サーバーが指定されていないことでした(つまり名前解決ができません)。私は /etc/sysconfig/network-scripts/ifcfg-eth0 に以下の1行を追加(Google の公開 DNS サーバーを指定)して再起動することで解決しています:
  :
  :
DNS1=8.8.8.8


RHEL 環境としては Intel 版とほぼ変わらないことを確認するため、試しにこの記事を参考にして、LinuxONE に X Window と VNC サーバーをインストールして、VNC クライアントからデスクトップ環境にアクセスしてみました(実際、リンク先の記事と同じ手順に加えて、デフォルトで有効になっていた iptables を外すだけで実現できました):
2015121800



その他、ざっと yum でのインストールを試してみた感じではこんな結果でした:
アプリケーションインストール可否コメント
X Windowyum groupinstall "X Window"
Tiger VNCyum install tigervnc-server
OpenJDK不可yum リポジトリに見つからない
(ただし標準で 1.5.0 導入済み)
IBM JDKyum install java-1.7.1-ibm-devel
PHPyum install php php-mbstring php-mysql ..
Tomcat(6)yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps
Apache HTTPDyum install httpd
MySQLyum install mysql-server
FireFoxyum install firefox
Eclipse不可yum リポジトリに見つからない
OpenOffice/LibreOffice不可yum リポジトリに見つからない
screenyum install screen
tmuxソースからコンパイルしてビルド 参照
x3270 エミュレータyum install x3270 x3270-text x3270-x11


標準の yum リポジトリでは見つからない、というだけの可能性もあるので、不可になっているものが実際には可能だったりすることもあると思います。個人的には新し目の JDK を見つけておけると色々使えそう、という印象です。LAMP デベロッパーに関してはほぼ困らないのかも。。

(2016/Jan/15 追記)
標準リポジトリから IBM Java の 1.7.1 がインストールできることを確認しました:
# yum install java-1.7.1-ibm-devel


IDCフロンティア様主催の MariaDB ミートアップに参加してきました。

MariaDB は MySQL 互換の RDB です。自分自身が作って運営しているマンホールマップねっぴツイートマッパーなど多くのサービスで MariaDB を採用しています。

このミートアップの中で現 Chief Evangelist の Colin さんから「MariaDB は IBM の Power8 プラットフォーム上で非常に高いパフォーマンスを発揮している」という紹介がありました。おそらくこの記事で紹介されていることだと思います:

MariaDB on Power8

ほー、そうなのか(知らなかったw)。ただ、実は以前に自分もこのようなブログエントリを書いたことがありました:
Power Linux 上で MariaDB をビルドして使う

これを書いた頃はまだ(後述の)PDP 環境で提供される RedHat のバージョンが 6 でした。RHEL 6 では標準 RDB が MySQL でしたが、RHEL 7 になって標準 RDB は MariaDB に変更になっているはずです。つまり「もうわざわざビルドしなくても Power Linux 上で MariaDB が使えるようになっているはず」です。

さっそく試してみます。環境としては IBM がビジネスパートナー様向けに無料で提供しているクラウドの Power 環境である PDP を使って Power8 + RedHat 7 環境を予約して使います。この辺りの詳しい手順はこちらを参照ください:
Power 版 RHEL(RedHat Enterprise Linux) を無料で2週間借りる(1/2)
Power 版 RHEL(RedHat Enterprise Linux) を無料で2週間借りる(2/2)


上記の (1/2) の手順でマシンリソースの予約を行い、(2/2) の手順で SSH でリモートアクセスして Power8 のリモート環境にログインします:
2015060907


念のため環境を確認します。まごうことなき Power 8 アーキテクチャ上の RedHat Enterprise Linux 7.1 です。:
2015060909


ではさっそくというか、いきなり MariaDB のインストールにとりかかります。リポジトリなどの準備なしでいきなり yum install を実行すると・・・
[root@sys-74413 ~]# yum install mariadb-server mariadb-client mariadb-devel
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
No package mariadb-client available.
Resolving Dependencies
--> Running transaction check
---> Package mariadb-devel.ppc64le 1:5.5.41-2.ael7b will be installed
--> Processing Dependency: openssl-devel(ppc-64) for package: 1:mariadb-devel-5.5.41-2.ael7b.ppc64le
---> Package mariadb-server.ppc64le 1:5.5.41-2.ael7b will be installed
--> Processing Dependency: mariadb(ppc-64) = 1:5.5.41-2.ael7b for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: perl-DBI for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: perl(DBI) for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: libaio.so.1()(64bit) for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Running transaction check
---> Package libaio.ppc64le 0:0.3.109-12.ael7b will be installed
---> Package mariadb.ppc64le 1:5.5.41-2.ael7b will be installed
---> Package openssl-devel.ppc64le 1:1.0.1e-42.ael7b will be installed
--> Processing Dependency: zlib-devel(ppc-64) for package: 1:openssl-devel-1.0.1e-42.ael7b.ppc64le
--> Processing Dependency: krb5-devel(ppc-64) for package: 1:openssl-devel-1.0.1e-42.ael7b.ppc64le
---> Package perl-DBD-MySQL.ppc64le 0:4.023-5.ael7b will be installed
---> Package perl-DBI.ppc64le 0:1.627-4.ael7b will be installed
--> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.ael7b.ppc64le
--> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.ael7b.ppc64le
--> Running transaction check
---> Package krb5-devel.ppc64le 0:1.12.2-14.ael7b will be installed
--> Processing Dependency: libverto-devel for package: krb5-devel-1.12.2-14.ael7b.ppc64le
--> Processing Dependency: libselinux-devel for package: krb5-devel-1.12.2-14.ael7b.ppc64le
--> Processing Dependency: libcom_err-devel for package: krb5-devel-1.12.2-14.ael7b.ppc64le
--> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.12.2-14.ael7b.ppc64le
---> Package perl-PlRPC.noarch 0:0.2020-14.ael7b will be installed
--> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.ael7b.noarch
--> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.ael7b.noarch
--> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.ael7b.noarch
--> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.ael7b.noarch
---> Package zlib-devel.ppc64le 0:1.2.7-14.ael7b will be installed
--> Running transaction check
---> Package keyutils-libs-devel.ppc64le 0:1.5.8-3.ael7b will be installed
---> Package libcom_err-devel.ppc64le 0:1.42.9-7.ael7b will be installed
---> Package libselinux-devel.ppc64le 0:2.2.2-6.ael7b will be installed
--> Processing Dependency: libsepol-devel >= 2.1.9-1 for package: libselinux-devel-2.2.2-6.ael7b.ppc64le
--> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.2.2-6.ael7b.ppc64le
--> Processing Dependency: pkgconfig(libpcre) for package: libselinux-devel-2.2.2-6.ael7b.ppc64le
---> Package libverto-devel.ppc64le 0:0.2.5-4.ael7b will be installed
---> Package perl-IO-Compress.noarch 0:2.061-2.ael7b will be installed
--> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.ael7b.noarch
--> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.ael7b.noarch
---> Package perl-Net-Daemon.noarch 0:0.48-5.ael7b will be installed
--> Running transaction check
---> Package libsepol-devel.ppc64le 0:2.1.9-3.ael7b will be installed
---> Package pcre-devel.ppc64le 0:8.32-14.ael7b will be installed
---> Package perl-Compress-Raw-Bzip2.ppc64le 0:2.061-3.ael7b will be installed
---> Package perl-Compress-Raw-Zlib.ppc64le 1:2.061-4.ael7b will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                     Arch        Version               Repository  Size
================================================================================
Installing:
 mariadb-devel               ppc64le     1:5.5.41-2.ael7b      server     747 k
 mariadb-server              ppc64le     1:5.5.41-2.ael7b      server      11 M
Installing for dependencies:
 keyutils-libs-devel         ppc64le     1.5.8-3.ael7b         server      37 k
 krb5-devel                  ppc64le     1.12.2-14.ael7b       server     640 k
 libaio                      ppc64le     0.3.109-12.ael7b      server      24 k
 libcom_err-devel            ppc64le     1.42.9-7.ael7b        server      30 k
 libselinux-devel            ppc64le     2.2.2-6.ael7b         server     174 k
 libsepol-devel              ppc64le     2.1.9-3.ael7b         server      71 k
 libverto-devel              ppc64le     0.2.5-4.ael7b         server      12 k
 mariadb                     ppc64le     1:5.5.41-2.ael7b      server     9.1 M
 openssl-devel               ppc64le     1:1.0.1e-42.ael7b     server     1.2 M
 pcre-devel                  ppc64le     8.32-14.ael7b         server     477 k
 perl-Compress-Raw-Bzip2     ppc64le     2.061-3.ael7b         server      33 k
 perl-Compress-Raw-Zlib      ppc64le     1:2.061-4.ael7b       server      58 k
 perl-DBD-MySQL              ppc64le     4.023-5.ael7b         server     140 k
 perl-DBI                    ppc64le     1.627-4.ael7b         server     802 k
 perl-IO-Compress            noarch      2.061-2.ael7b         server     260 k
 perl-Net-Daemon             noarch      0.48-5.ael7b          server      51 k
 perl-PlRPC                  noarch      0.2020-14.ael7b       server      36 k
 zlib-devel                  ppc64le     1.2.7-14.ael7b        server      50 k

Transaction Summary
================================================================================
Install  2 Packages (+18 Dependent packages)

Total download size: 24 M
Installed size: 124 M
Is this ok [y/d/N]: 

Power 用の RHEL7 でも、ちゃんと MariaDB が標準で使えるようになってました。これで "y" を指定すればインストールできちゃいます。

ただし、このコマンドで導入できるのは MariaDB 5.5 のようですね。MariaDB 10.x を使いたい場合はまだソースからビルドする必要がありそうです。その手順はこちらのエントリを参照してください:
Power Linux 上で MariaDB をビルドして使う

 

このページのトップヘ