LoginSignup
1
0

More than 1 year has passed since last update.

ポッポッポー♪♪♪ 懐かしのSL機関車をAmazon Linux2で走らせてみよう!

Last updated at Posted at 2022-03-21

はじめに

某ベンダで、クラウドの人材育成企画と研修トレーニングのデリバリを担当しています。
今回は、懐かしいネタで記事を書いてみようと思います。slコマンドを使って、Amazon Linux 2のターミナルにSL機関車を走らせてみたいと思います。

slについては、詳細がwikiに記載されています。ぜひこちらを参考をください。

 sl (UNIX) - Wikipedia

Debian/Ubuntuだとdebパッケージが提供されているので、apt-getで簡単にインストールできます。Amazon Linux 2のyum リポジトリではRPMパッケージが提供されていないようなので、今回はUbuntuのDEBパッケージをalienコマンドでRPMパッケージに変換してみようと思います。

alienを利用したslパッケージ(.rpm)の作成

UbuntuのEC2を立ち上げて、以下の手順でパッケージを作成します。手順は、全てroot権限で実施します。

1. slパッケージ(.deb)のダウンロード

# apt-get -d install sl

/var/cache/apt/archives以下にパッケージ(.deb)がダウンロードされます。

2. alienのインストール

# apt-get install alien

3. .debから.rpmへの変換

# alien  -r /var/cache/apt/archives/sl_5.02-1_amd64.deb 
sl-5.02-2.x86_64.rpm generated

4. 変換したパッケージ(.deb)の詳細確認

# rpm -qpi sl-5.02-2.x86_64.rpm 
Name        : sl
Version     : 5.02
Release     : 2
Architecture: x86_64
Install Date: (not installed)
Group       : Converted/games
Size        : 35525
License     : see /usr/share/doc/sl/copyright
Signature   : (none)
Source RPM  : sl-5.02-2.src.rpm
Build Date  : Fri Mar 18 05:55:34 2022
Build Host  : ip-172-31-34-123.ap-southeast-2.compute.internal
Relocations : (not relocatable)
Summary     : Correct you if you type `sl' by mistake
Description :
Sl is a program that can display animations aimed to correct you
if you type 'sl' by mistake.
SL stands for Steam Locomotive.
(Converted from a deb package by alien version 8.95.)

alienで変換したエビデンスが残っています。

(Converted from a deb package by alien version 8.95.)

5. Amazon Linux 2へのインストール

# rpm -Uvh sl-5.02-2.x86_64.rpm
error: Failed dependencies:
libncurses.so.6(NCURSES6_5.0.19991023)(64bit) is needed by sl-5.02-2.x86_64
libtinfo.so.6(NCURSES6_TINFO_5.0.19991023)(64bit) is needed by sl-5.02-2.x86_64

ライブラリの依存関係でエラーが出てます。単純にパッケージ変換で移植できると思ったのですが、失敗。。。ソースファイルからコンパイルする方針に変更して、再トライしてみます。

[再トライ] ソースファイルからコンパイルする

1. slコマンドのソース入手

Ubuntuからソースファイルを取得しようと思いましたが、GitHubに最新のソースコードが公開されています。最新のversion 5.03を入手します。

2. 必要ライブラリの追加

ヘッダファイルを確認するとcurses.hが必要になりそうです。EPEL(Extra Packages for Enterprise Linux)を有効にして、必要なライブラリを追加します。

# yum install epel-release
# yum install ncurses-devel

3. コンパイル

# make

4. 実行

# ./sl

Amazon Linux 2 のターミナルにSL機関車が走ります。ポッポッポー♪♪♪ポッポッポー♪♪♪懐かしい〜。

Screen Shot 2022-03-18 at 17.19.17.png

おわりに

パッケージ形式の移植で簡単に出来るかなーと思ったのが大きな見込違いで、3時間近く試行錯誤してしまいました。家の環境もMacになって久しく、自前でコンパイルしてPPをインストールする機会もなくなりました。でも、たまにはこういう作業も懐かしくていいですね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0