メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

古いOSでneofetchを実行する

Linuxや*BSD等のようなUNIXライクなOSやmacOS等でシステムの情報をCLIで出力する為のツールであるneofetchを、20年程前にリリースされたOSで実行可能にするための備忘録。
Linuxの各ディストリビューションや*BSD等がパッケージで配布しているneofetchではなく、ソースをビルドする事でneofetchを導入し動作させる事が可能である。例えば、OpenBSDのパッケージとしてneofetchが配布されているのはi386版、amd64版共にOpenBSDバージョン6.4以降となっているが、6.4より前のバージョンでもneofetchを動作させる事が出来る。
今回は、先日中古で購入したAndroidタブレット Nexus7 (2012)のゲストOSとして動作しているOpenBSD 3.8にてneofetchを動作させるまでのメモ。

尚、以下の手順はPCで稼働しているVirtualBoxで実行し、インストールおよび設定を終えてファイル形式を.qcow2に変換したものをNexus7にコピーし動作させている。Nexus7上でビルドおよびインストールすると一晩かかるが、PCのVirtualBox上で実行すると数分で終わる。
 

1.neofetch導入のいきさつ
OpenBSD環境での動作条件を確認すべく、neofetchの配布サイト内トップ画面の下部のDependenciesに進み、Required dependencies:を見ると「bash 3.2+」の記載が有った。OSやその他のツールのバージョンに関しては触れられてなかった為、bashのバージョンを上げればneofetchを実行出来るかも...と判断。
Nexus7の中で動作しているOpenBSDのbashはバージョン3.0.16だった為、可能な限り新しいバージョンのbashのソースをビルドしインストールした。
続けてneofetchも可能な限り新しいバージョンのソースをビルドしインストールした。
 

2.当方の環境
・ホスト機:Androidタブレット Google Nexus7 (2012) / Android OS 5.1.1
・エミュレータ:Limbo PC Emulator 2.10.0
・ゲストOS:OpenBSD 3.8 i386版
・ソフトウェアキーボード:Androidアプリ Hacker's Keyboard
 

3.neofetchの導入手順
bashのアップデート、neofetchのインストール...という順で進める。
bashのソースファイルをダウンロードし、適当なディレクトリ内に保存。
その後は以下の流れでビルドしインストール。
古いバージョンのbashはmake installの実行前に削除している。

[hecht@jpsv99 ~]$ mv 保存先/bash-4.4.18.tar.gz /usr/local
[hecht@jpsv99 ~]$ cd /usr/local
[hecht@jpsv99 ~]$ sudo tar zxvf bash-4.4.18.tar.gz
[hecht@jpsv99 ~]$ cd bash-4.4.18
[hecht@jpsv99 ~]$ sudo ./configure --prefix=/usr/local
[hecht@jpsv99 ~]$ sudo make
[hecht@jpsv99 ~]$ sudo pkg_delete bash
[hecht@jpsv99 ~]$ sudo make install

 
続けてneofetchのソースファイルをダウンロードし、適当なディレクトリ内に保存。
その後は以下の流れでビルドしインストール。
make installの実行前に、Makefileを開きインストール先を/usrから/usr/localに修正している。

[hecht@jpsv99 ~]$ mv 保存先/neofetch-7.1.0.tar.gz /usr/local
[hecht@jpsv99 ~]$ cd /usr/local
[hecht@jpsv99 ~]$ sudo tar zxvf neofetch-7.1.0.tar.gz 
[hecht@jpsv99 ~]$ cd neofetch-7.1.0
[hecht@jpsv99 ~]$ vi Makefile 
[hecht@jpsv99 ~]$ sudo make install

 
bashとneofetchのソースファイルの入手と保存について。
sambaを一時的にOpenBSDにインストールし共有フォルダを設定。古いOSのPCを引っ張り出しneofetchのソースファイルをダウンロード。古いPCからneofetchのソースファイルをOpenBSD内の共有フォルダに放り込む...という流れで実施。neofetchの動作確認後にsambaを削除。
先にOpenSSLとwgetをアップデートすればsambaをインストールする事無くneofetchのソースファイルをOpenBSDに放り込む事が出来たかも知れない。
 

4.動作確認
インストールの完了後、neofetchを実行。
bashのバージョンを3.0.16から4.4.18に上げる事で、OpenBSD 3.8(2005年リリース)でneofetchを「ほぼ正常に」実行する事が出来た。
消費メモリーの値を拾う事が出来ないようで、メモリーの値は設定ファイルを編集し適当な値を表示させている。
OpenBSDの現行バージョン7.4では消費メモリーの値を正常に拾えている事から、neofetch側の問題では無さそう。
設定ファイル:.config/neofetch/config.conf
編集内容:info "Memory" "memory" を prin "Memory" "48MiB / 256MiB"に修正

※以下の画像は、neofetchの安定稼働を確認した後、設定ファイルを編集し表示させたい項目を表示させたもの。MacBookのターミナルからsshログインしneofetchコマンドを打った。


 
bashのバージョンによってsyntax errorや他のエラー等でneofetchが実行出来なかったが、自分の環境では以下のバージョンの組み合わせで落ち着いた。証跡として念の為にOpenBSDのバージョンも残した。
neofetchのバージョン4.0.0、6.1.0、7.1.0(最新版)のどのバージョンを使用しても、bash 4.4.18でneofetchを動作させる事が出来た。
他にOpenSSHやOpenSSLやwgetやvim等もソースからビルドしアップデートしたが、これらはneofetchのインストール後に実施した。

[hecht@jpsv99 ~]$ bash --version
GNU bash, version 4.4.18(1)-release (i386-unknown-openbsd3.8)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[hecht@jpsv99 ~]$ 
[hecht@jpsv99 ~]$ 
[hecht@jpsv99 ~]$ neofetch --version
Neofetch 7.1.0
[hecht@jpsv99 ~]$ 
[hecht@jpsv99 ~]$ 
[hecht@jpsv99 ~]$ uname -a
OpenBSD jpsv99.localhost 3.8 GENERIC#138 i386
[hecht@jpsv99 ~]$ 

 
5.後悔と愚痴
Nexus7はAmazonにて中古で購入したもの。Nexus7 (2013)を注文したはずなのだが、届いたのはNexus7 (2012)だった。しかも動作確認用と思われるアカウントが残ったままだった為、初期化とアカウントの作成から始めなければならなかった。Nexus7 (2012)が届く件はカスタマーレビューに記載有り。ポチる前に読めばよかった。
Nexus7 (2012)で程々に快適に動作するOpenBSDのバージョンが3.8あたりだった為、OpenBSD 3.8を選択した。
 
 
6.参照サイト,その他
https://github.com/dylanaraps/neofetch neofetch
https://qiita.com/yoshi_yast/items/74225c73f6e30ede07ea 【コマンド】システム情報を表示するコマンド neofetch
https://www.gnu.org/software/bash/ bash
https://www.openbsd.org/ OpenBSD
https://www.openbsd.org/38.html OpenBSD 3.8
https://ja.wikipedia.org/wiki/Nexus_7_(2012) Nexus7 (2012)
https://www.youtube.com/watch?v=4YHpkp6COCA Nexus7(2012)のCM
https://item.rakuten.co.jp/plata/wm-730/ Nexus7(2012)のシリコンケース