ターミナルで魚を眺める
こんにちは、技術部のfです。
今回は技術ネタ…とは少し違いますが、ターミナルから海が楽しめる(?)
「Asciiquarium」をインストールしてみました。
利用環境は以下の通りです。
$ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) $ perl -v This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi (with 39 registered patches, see perl -V for more detail) Copyright 1987-2012, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
インストールとは言っても、READMEにある通り実体は単一のPerlスクリプトの為、
基本はダウンロードして必要なCPANモジュール(Term::Animation)を
インストールするだけのようです。
それでは早速ファイルをダウンロードします。
$ wget --no-check-certificate https://robobunny.com/projects/asciiquarium/asciiquarium.tar.gz --2019-05-31 22:45:59-- https://robobunny.com/projects/asciiquarium/asciiquarium.tar.gz robobunny.com (robobunny.com) をDNSに問いあわせています... 108.224.131.233 robobunny.com (robobunny.com)|108.224.131.233|:443 に接続しています... 接続しました。 警告: robobunny.com の証明書(発行者: `/C=US/O=Let\'s Encrypt/CN=Let\'s Encrypt Authority X3')の検証に失敗しました: 発行者の権限を検証できませんでした。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 15436 (15K) [application/x-gzip] `asciiquarium.tar.gz' に保存中 100%[======================================================================================================>] 15,436 79.0KB/s 時間 0.2s 2019-05-31 22:46:01 (79.0 KB/s) - `asciiquarium.tar.gz' へ保存完了 [15436/15436]
ダウンロードしたasciiquarimを展開します。
$ tar zxf asciiquarium.tar.gz $ ls asciiquarium_1.1/ CHANGES MANIFEST README asciiquarium gpl.txt
Installationにある通り、/usr/local/binディレクトリにおいてみます。
コマンドとして実行できるように権限も付与します。
# cp asciiquarium_1.1/asciiquarium /usr/local/bin/ # chmod +x /usr/local/bin/asciiquarium
試しにこの状態でasciiquariumを実行してみましたが、必要なモジュールを
インストールしていない為、このままでは動作はしません。
$ asciiquarium Can't locate Term/Animation.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/bin/asciiquarium line 42. BEGIN failed--compilation aborted at /usr/local/bin/asciiquarium line 42.
READMEのRequirementsに記載されている「Term::Animation」CPANモジュールを
インストールする必要がありますが、
その前にCPANが入っていないので、CPANのインストールから行います。
# yum install cpan
次にCPANの初期セットアップを行います。
途中の入力が求められる箇所は、全てENTERでそのまま進みます。
# cpan CPAN.pm requires configuration, but most of it can be done automatically. If you answer 'no' below, you will enter an interactive dialog for each configuration option instead. Would you like to configure as much as possible automatically? [yes] ←ENTER Warning: You do not have write permission for Perl library directories. To install modules, you need to configure a local Perl library directory or escalate your privileges. CPAN can help you by bootstrapping the local::lib module or by configuring itself to use 'sudo' (if available). You may also resolve this problem manually if you need to customize your setup. What approach do you want? (Choose 'local::lib', 'sudo' or 'manual') [local::lib] ←ENTER Autoconfigured everything but 'urllist'. Now you need to choose your CPAN mirror sites. You can let me pick mirrors for you, you can select them from a list or you can enter them by hand. Would you like me to automatically choose some CPAN mirror sites for you? (This means connecting to the Internet) [yes] ←ENTER (略) Would you like me to append that to /root/.bashrc now? [yes] ←ENTER commit: wrote '/root/.cpan/CPAN/MyConfig.pm' You can re-run configuration any time with 'o conf init' in the CPAN shell Terminal does not support AddHistory. cpan shell -- CPAN exploration and modules installation (v1.9800) Enter 'h' for help. cpan[1]>
これでCPANの初期セットアップが完了しました。
そのままTerm::Animationモジュールをインストールします。
cpan[1]> install Term::Animation (略) Test Summary Report ------------------- t/use.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 Files=1, Tests=1, 0 wallclock secs ( 0.02 usr 0.01 sys + 0.05 cusr 0.01 csys = 0.09 CPU) Result: FAIL Failed 1/1 test programs. 1/1 subtests failed. make: *** [test_dynamic] エラー 1 KBAUCOM/Term-Animation-2.6.tar.gz one dependency not OK (Curses); additionally test harness failed /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports KBAUCOM/Term-Animation-2.6.tar.gz Running make install make test had returned bad status, won't install without force Failed during this command: GIRAFFED/Curses-1.36.tar.gz : make NO KBAUCOM/Term-Animation-2.6.tar.gz : make_test NO one dependency not OK (Curses); additionally test harness failed
「Test Summary Report」のResultがFAILになってしまいました。
上記では省略していますが、「Test Summary Report」の少し前に
以下のメッセージが出力されていました。
c-config.h:7:21: 致命的エラー: ncurses.h: そのようなファイルやディレクトリはありません #include ^
ncurses.hが必要なようです。
yum whatprovidesで何のパッケージを入れれば良いのか確認してみます。
# yum whatprovides "*ncurses.h" 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * elrepo: ftp.ne.jp * epel: ftp.riken.jp latrace-0.5.11-6.1.el7.i686 : LD_AUDIT feature frontend for glibc 2.4+ リポジトリー : base 一致 : ファイル名 : /etc/latrace.d/headers/ncurses.h latrace-0.5.11-6.1.el7.x86_64 : LD_AUDIT feature frontend for glibc 2.4+ リポジトリー : base 一致 : ファイル名 : /etc/latrace.d/headers/ncurses.h ncurses-devel-5.9-14.20130511.el7_4.i686 : Development files for the ncurses library リポジトリー : base 一致 : ファイル名 : /usr/include/ncursesw/ncurses.h ファイル名 : /usr/include/ncurses.h ファイル名 : /usr/include/ncurses/ncurses.h ncurses-devel-5.9-14.20130511.el7_4.x86_64 : Development files for the ncurses library リポジトリー : base 一致 : ファイル名 : /usr/include/ncursesw/ncurses.h ファイル名 : /usr/include/ncurses.h ファイル名 : /usr/include/ncurses/ncurses.h
どうも「ncurses-devel-5.9-14.20130511.el7_4.x86_64」を入れれば良さそうです。
yumでncurses-develをインストールしてみます。
# yum install ncurses-devel-5.9-14.20130511.el7_4.x86_64
ncurses-develパッケージのインストールが完了したので、
もう一度Term::Animationのインストールを試してみます。
# cpan cpan[1]> install Term::Animation Reading '/root/.cpan/Metadata' Database was generated on Fri, 31 May 2019 10:55:17 GMT Running install for module 'Term::Animation' Running make for K/KB/KBAUCOM/Term-Animation-2.6.tar.gz Checksum for /root/.cpan/sources/authors/id/K/KB/KBAUCOM/Term-Animation-2.6.tar.gz ok Scanning cache /root/.cpan/build for sizes ............................................................................DONE CPAN.pm: Building K/KB/KBAUCOM/Term-Animation-2.6.tar.gz (略) Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/use.t .. ok All tests successful. Files=1, Tests=1, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.08 cusr 0.01 csys = 0.11 CPU) Result: PASS KBAUCOM/Term-Animation-2.6.tar.gz /usr/bin/make test -- OK Running make install Installing /usr/local/share/perl5/Term/Animation.pm Installing /usr/local/share/perl5/Term/Animation/Entity.pm Installing /usr/local/share/man/man3/Term::Animation.3pm Installing /usr/local/share/man/man3/Term::Animation::Entity.3pm Appending installation info to /usr/lib64/perl5/perllocal.pod KBAUCOM/Term-Animation-2.6.tar.gz /usr/bin/make install -- OK
途中で怒涛の警告メッセージが出ましたが(量が多すぎるので内容は割愛)、
ResultはPASSになっています。
この状態でasciiquariumを実行してみます。
$ asciiquarium
出てきました!
asciiquariumの使い方は至ってシンプルです。
Usage ----- There are no command line arguments. While running: q quit r redraw (will recreate all entities) p toggle pause
rでredraw(再描画)、pでpause(一時停止)、qでquit(終了)です。
様々なお魚たちがのんびりと泳いでいたり、すいすい泳いでいたりします。
お魚じゃない生き物もたまに泳いでいます。
息抜きにぼーっと眺めてみても良い…かもしれません。
そういえば、先日Red Hatのロゴが帽子だけのシンプルなものに変わりましたね。
過去にも何度かロゴの変更があったようですが、旧ロゴは今年でちょうど20年目だったようです。
帽子の人物のゆくえはいずこへ…