橋本修太です。

例によって例のごとく、よくわからないけど動かなくなって、よくわからないままに手探りで解決したので、覚書を残させて頂きます。

現象

kubectlでdeploymentのyamlをapplyしても、DESIREDからCURRENTに移行しなくなった

要するに、新しいpod(Dockerで言うところのコンテナ)が動かなくなった、という事です。

原因

不明

直前に、nginx-ingress入れたりしていたんですけど、それでしょうか・・・・

解決方法

crictlで、Exitedなkube-controller-manager-****を削除したら、動き出しました。

手順

現象発生時、何かを調べたとは思うのですが、忘れてしまいました・・・とりあえずKubernetesを再起動させました。

NODEの削除(masterでの作業)

$ kubectl drain <node name> –delete-local-data –force –ignore-daemonsets
$ kubectl delete node <node name>

NODEの再起動(master含む各NODEでの作業)

$ kubeadm reset

$ reboot

いつもこの方法なんですけど、これでいいんでしょうか?

そして、いつもどおり起動していきます。

master起動

kubeadm init –cri-socket=/var/run/crio/crio.sock –pod-network-cidr=10.244.0.0/16

cp -i /etc/kubernetes/admin.conf ~/.kube/config

kubectl apply -f ./kube-flannel.yml

最後の、flannelのymlは、githubから落としてきたものです。詳細はGeeko Magazineをご覧ください。ただ、README.mdに書いてある、以下のコマンドでも正しく動きそうですね。flannelかな?と思って、こちらで試してみたのですが、動作は同じようでした。masterなので、いつどういう動作をするかは、保証されないのでしょうが・・・

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

そして、同じ現象に出くわします。nodeの状態を以下のコマンドで確認するのですが、

kubectl get nodes

ずっと、STATUSはNotReadyのまま。

kube-system(というnamespaceで配置される、システム系のpod)を確認します。

kubectl get pods –all-namespace

すると、kube-controller-manager-****(****は、マスターのマシン名)のSTATUSが、CreateContainerErrorとなったまま。

ふーむ・・・ここでグーグル先生に泣き付く事小一時間。こんな感じで辿りました。

ログ確認

journalctl

Kubicは、Kubernetes関係のログはほぼここに入っています。いるはずです。いると思っています。

すると、こんな感じのログが立て続けに出力されていました。

pod_workers.go:190] Error syncing pod
****************** (“kube-controller-manager-linux-riis_kube-system(*********************)”), skipping: failed to “StartContainer” for “kube-controller-manager” with CreateContainerError: “the
container name \”k8s_kube-controller-manager_kube-controller-manager-linux-riis_kube-system_********************_**\” is already in use by \”************************************
\”. You have to remove that container to be able to reuse that name.: that name is already in use”

******はマスクです。ランダム英数字が入っています。また、linux-riisが、masterのマシン名です。

podのログも確認してみましたが、同じようなログが出力されていました。(はずです・・・もしかしたら、コンテナを生成できなかった、程度だったかもしれません・・・)

kubectl logs pods/kube-controller-manager-****(マシン名) -n kube-system

-nオプションで、namespaceを指定しないと、見つからないと言われるので注意です。

ふむふむ、どうも、IDだかがかぶってしまって、新しいkube-controller-managerを起動できないようです。

ここでイメージとコンテナの確認です。Kubicはcri-oを使っているため、コンテナ関連のコマンドはcrictl、サービスはcrioになります。crictlのホームページはこちら。Dockerと似たような感じで使えるのではないでしょうか。ちなみに、このコマンドが入っているパッケージはcri-toolsです。

サービスステータスをチェックします。

systemctl status crio

CNIのデフォルトネットワークが見つからないよ、というエラーが見えますが、flannelを適応すれば直るでしょう・・・直ると信じたいです。(事実、直りました。)

では、コンテナの確認です。

crictl ps -a

すると、Runningとなっているものと、Exitedとなっているもの、2つのkube-controller-manager-****が。その他にも、kube-apiserver-****や、kube-scheduler-****も同じように、二種類。

Exitedとなっているものは不要なので(不要で終了したのでExitedなはずなので)、削除しましょう。

crictl rm ****(コンテナIDです。先のcrictl ps時に表示されます。)

そして、システム系のpodを確認。

kubectl get pods –all-namespaces

すると、なんと、kube-controller-manager-****が、Runningに変わっているではありませんか!

ただ、ちょっと待ってkubectl get nodesしても、NotReadyだったので、同じくExitedだった、kube-apiserver-****と、kube-scheduler-*****のコンテナも、削除しました。

そして待っていると・・・・無事、masterがReadyになりました。

後は、ワーカーNodeのkubeadm joinもすんなり動き、正常稼働に戻りました。

課題&感想

  • 情報収集の方法をもっと知りたい
  • crictl知ったのは良かった
  • Kubicの再インストールを考えたけど、粘ってみてよかった。(いつもこうとは限らない)
  • 正常時のログとかを認識していないと、異常時にあたりを付けにくい
  • ingressは、Kubic用があるっぽい
  • 今見てみたら、kube-schedulerとか、Exitedなのがあった・・・

この記事は、「openSUSE AdventCalendar 2018」19日目の記事です。

皆さんこんばんわ。橋本修太です。

今日は、本家MLでみかけた豆知識について紹介したいと思います。

スレッドの流れ

①投稿者は、古いラップトップがTumbleweedで上手く動かないようです。でも、Windowsや、Leapだと上手く動く模様。そして、エラーメッセージを添付しています。

②エラーメッセージを見た他の方が、対処方の書かれたページを案内してくれます。「グーグルすれば見つかるよ」

③投稿者は、そこにかかれてあった方法で無事に解決しました。「なんてことだ、どうしてぐーぐる事をすぐ忘れてしまうんだ」(すみません、多分な訳です)

めでたしめでたし・・・・なのですが、この次に、SUSEで カーネル開発を行っている岩井氏が、次の投稿を。

④【意訳・一部抽出】ちょっとこのバグについて補足を。どうしてこの現象がLeapでは起こらないかと言うと、Leapのカーネルにはワークアラウンドを適用していて、この手のバグが発生しないようにしている。それに対して、Tumbleweedは可能な限りupstreamに近い形を保持しようとしているので、こういうワークアラウンドは適用していない。そのうちupstreamで修正されるんじゃないか?

※①のMLはこちら 右下のnextから次の投稿へ進めます。

ふむふむ。確かに、TumbleweedとLeapのコンセプトに合うやり方ですね。

カーネル

そこで、カーネルのパッケージを眺めてみたのですが・・・申し訳ありません!リテラシーが無さ過ぎて、ここだ、という部分は見つけられませんでした。

眺めてみたページはこちら。

kernel-source.changesを比べてみるのが、それっぽかったです。Tumbleweedは次々と新しいバージョンのカーネルが適用されるログが見られ、Leapは長いことパッチ適用が続いています。(少なくとも、そういうふうに見えました。)

TumbleweedはTumbleweedで、パッチ類は何もしていない、という訳でもなさそうですね。

課題&感想

  • カーネル読みたい
  • そもそもOBSでのパッケージングを知りたい
  • 機会があれば岩井さんとお会いしたい
  • Tumbleweedの方にだけ、klpなんとかっていうのがあって、どうも、Kernel Live Patchの事っぽい

明日は @ftake さんによる、openSUSEでChromeを使う方法です。こちらもemacsインストールの記事等のように、即効性の高い記事になりそうですね。こうご期待。

この記事は、「openSUSE AdventCalendar 2018」16日目の記事です。

皆さんおはようございます。橋本修太です。

さて、先日jaのMLにこんな投稿がありました。

【意訳】

openSUSE(Kubic)でCloud Foundry動かしたことある人います?

Kubicのキーワードが目に止まり、はて、Cloud Foundryとは?と思った私は、調査してみました。

本記事は情報収集のみとなります。「やってみた」は次の機会になりますこと、ご了承ください。

Cloud Foundryとは

ホームページはこちら。概要を纏めてくださっているページが幾つか有りますので、それらを見ていきますと、どうやら、webアプリケーションのソースコードをpushするだけで、ビルド・デプロイを自動で行ってくれる、オープンソースのソリューションの模様(商用版もあり)。イメージとしてはherokuに近いですね(こんな記事もありました)。

「アメリカのFortune 500企業のうち約半数が導入済み」といった謳い文句も見られますね。

インストール方法

いくつかあるようです。Cloud Foundry自体、複数のコンポーネントで構成されるソリューションなので、手順があったり、インストールを支援してくれるソリューションがあったりします。

また、Pivotal、SUSEなどがチューニングしたソリューションもあって、それぞれ強みがあるようです。

ちなみに、Cloud Foundryとやりとりを行うコマンドラインツール群、cf-cliは、openSUSEにパッケージがありました。(動くかな?)

A. PCF-DEVをインストール

PCFとは、Pivotal Cloud Foundryの略です。Pivotalはクラウドで有名な会社のようです。

ここが展開している、ローカル開発用のCloud Foundry、PCF-DEVが、インストールしてみるには丁度良いよ、という投稿もstack overflowで見たりしました。

構成としては、Linux(私の場合openSUSE)の上に、VirtualBoxを動かし、その中でPCFを動かすようです。

インストール方法はこちら

B. BOSHでインストール

BOSHは、Cloud Foundryの導入・運用を制御するソリューションのようです。

単一マシンに展開したり、クラスタ構成に展開したりもできるようです。

通常、Cloud Foundryをインストールと言えば、この方法が正攻法?なのかもしれません。

C. SUSE Cloud Foundryをインストール(on Vagrant)

SUSEも、Cloud Foundryには力を入れていて、チューニングしたソリューションを持っていました。

githubはこちら

主なチューニング点として、以下が挙げられていました。

  • Kubernetes(Docker)の上で動くように、Cloud Foundryのコンポーネントのコンテナライズにfissileを使っている
  • Cloud FoundryのコンポーネントはopenSUSE Steamcellで動く
  • オプションとして、Cloud FoundryのAppをopenSUSE stackのpreviewで動かす事が出来る

Steamcellだの、stackだの、previewだの、ちょっとピントこない単語が沢山・・・これらはおいおい調べていく事にしまして、1番目に付いて、もともとCloud FoundryはKubernetesの上で動くようには作られていなかったのですが、そこをSUSE等が開発したとの事です。

件のgithubには、on Kubernetesで動かす方法も記載されているのですが、ここではPCF-DEVと同じように、VMの上で動かす方法を。

Disclaimerに、「openSUSE 42.xは、libvirtでテストしてますよ」とあります。ここが42.xになっているのが、ちょっと気になるところですが・・・(あと、SUSEのgithubなのに、openSUSEがOpenSUSEになっている所とか)

あとは、Deploying SCF on Vagrantのセクション通りにやっていけばよさそうです。

ただ、要件にいきなり「メモリは16G以上は用意してね」とあって、私のデスクトップはもう無理状態です。

D. SUSE Cloud Foundryをインストール(on Kubernetes)

C.で触れましたが、Kubernetesの上にインストールできるのが、SCFの強みとの事。Helmでインストールするようですね。インストールページには要件等書いてありますので、適応させて行けば動くでしょうか?

ちなみに、環境チェック用スクリプトがあるのですが、Kubic上で走らせた所、半分ぐらいerrorとなってしまいました。

課題&感想

  • やってみる!
  • もう少し、正確かつ精密な情報を収集し、記事にする

駆け足で情報収集だけしたのですが、結構複雑な構成をしていて、ちゃんと理解しようとするとそれなりのボリュームになりそうです。使う側は、ソースコードをcf pushすれば、デプロイまで完了、とやりやすい事この上無いですね。

では、16Gメモリを積んでいるノートPCがあるので、近いうちにやってみたをやってみたいと思います。

明日は @ftake さんの、geeko.jpをメンテナンスした話ですね。塩漬けに近かったサイトですので、色々と面白い話題が出てきそうです。こうご期待。

 

 

 

 

openSUSEでDvorakキーボード配列を使う

By Syuta Hashimoto @ 2018-12-12 07:27

この記事は「openSUSE AdventCalendar 2018」12日目の記事です。

※2018/12/15 頂いたコメントを反映しました

全国1名※1のDvorakキーボード配列ユーザーの皆様、こんばんわ。橋本修太です。

※1 独自調査(要するに、私は一人しかDvorakユーザーを知らないのです・・・)

それでは、早速openSUSEでキーボード配列をDvorakにする方法を見てみましょう。

結論 YaSTで設定

YaST > ハードウェア > システムキーボード配列 と辿っていきます。

そして、このシステムキーボード配列を選択すると出てくる一覧から、「Dvorak」を選択します。

一番上なので、選びやすいですね。みなさんもどんどんこのDvorakを選択していきましょう。

Dvorakとは

Dvorak博士が考案した、タイプしやすさを考えたキーボード配列です。左手の小指の所が「a」なのは変わらないのですが、そこから内側に向けて「o」「e」「u」「i」となっています。これ、ローマ字タイプですと、母音に当たりますね。なので、感覚的に右手、左手、右手、左手、と、リズムを刻むように交互に指を動かす感じになって、スムーズにタイプが出来ます。

配列の全容は先程のページでどうぞ。タイプ負荷か減るので、腱鞘炎の予防にもなるとの事です。

使っている感想としては、キーがほぼホームポジションで足りるので、指を少ししか動かさずにタイプ出来ます。QWERTY時の幅広く指を動かさないといけないダルさが全く無いです。素直に、楽ですね。

一般的なキーボード配列

対して、一般的なキーボード配列は「QWERTY」と呼ばれています。左上の「Q」から右に向かってキーを読んでみましょう。ほら、「QWERTY」になりましたでしょう。

このQWERTY、生い立ちには諸説あるようですね。様々な理由から少しづつかわっていって、この形になったようです。

その他の設定方法

さて、さっきはぱぱっとYaSTでDvorakを設定してしまいましたが、X環境下なら以下のコマンドで設定も出来ます。

setxkbmap dvorak

これをXmodmapに書いておけば、Xセッション開始時にDvorakにする事も出来ますね。

ちなみに私はXmodmapには以下の設定を書いています。

!replace 無変換 to Alt_L
keycode 102 = Alt_L
!replace 前候補変換 to Alt_R
keycode 100 = Alt_R

スペースの左の「無変換」を左Altに、右の「変換」を右Altに、それぞれ割り当てています。

※2018/12/15追記

@ftakeさんより、コメントを頂きました。

ibus-mozc を使っている人は、エンジンに Mozc (Dvorak) を追加するだけでも使えます。Mozc (JP) や Mozc (US) も追加しておけば、Super+Space でレイアウトの切り替えもできます。

との事です。をを、なるほど。

そう言えば、その昔、この辺りの設定でDvorakにした事があったような・・・

と、いうことで

YaSTで簡単設定なので、是非皆さんもDvorak試してみましょう。すっごく楽ですよ。

課題&感想

  • 職場のキーボードはQWERTYから変更できなかったりする
  • emacsのキーバインドが意図された動きでなくなる
  • 物理的にプリントされているアルファベットが参考にならないため、ランダム文字列のパスワード入力とか至難
  • YaSTの設定は結局何処の何を設定している?
  • 右手、左手、の交互打鍵が、たまに入れ替わってしまう
  • ログイン時はQWERTYで、コンソールでもXでも、ログインしたらDvorakにしたい

そういえば、以前ribbonさんにタイピング練習ソフトを紹介して頂いたような・・・ribbonさん、何でしたっけ?

※2018/12/15追記

@ribbonさんより、教えて頂きました。

GNU Typist https://www.gnu.org/software/gtypist/ の、たぶん前身です。
今見てみましたが、Dvorakコースがあります。

今度やってみたいと思います。

明日はemaxserこと、川上さんの、openSUSEでDropboxを使う記事です。即効性の高い記事になりそうですね。こうご期待。

openSUSEでWINEで東方やってみる

By Syuta Hashimoto @ 2018-12-09 08:29

このブログは「openSUSE AdventCalender 2018」9日目の記事です。

皆さんこんばんわ。橋本修太です。

突然ですが、東方Projectというのをご存知でしょうか。

東方Projectとは、ZUN氏が制作しているWindows用弾幕系シューティングゲームです。あるいは、そのキャラクターや関連コンテンツ等を「東方」と呼んでいます。

私は「妖々夢」「永夜」「風神録」を持っていて、奇跡的に「永夜抄」のノーマルモードを紅魔チームで打開した事がある程度です。

そう、ラインナップを見て頂くとわかるとおり、かなり前にWindowsで遊んだきり。今、どっぷりopenSUSEに浸かっている為、Windowsに切り替えるのは面倒です。

「幽雅に咲かせ、墨染の桜」をまた聞きたい

「妖々夢」のボス曲です。東方は好きな曲が多いです。また幽々子様に会いたい・・・

そこで、WINEの出番です。

WINE

ぶどうを発酵させたアルコール飲料で、私はこれが大好きです・・・では無くて、ITでWINEと言うと、Linux上でWindowsアプリケーションを動作させるプログラム群の事を指します。サイトはこちら

今回目指す事

openSUSEでWINEを使って「妖々夢」をプレイ出来るようにする事を目指します。

やってみた

想定手順

WINEのような複雑なソリューションは、一筋縄では行かないのが世の常。なので、まずは「想定」手順を記載します。

  1. WINEをインストールする
  2. 妖々夢をインストールする
  3. 妖々夢をプレイする

WINEをインストールする

実は、メインマシンのデスクトップでは、既にWINEで他ゲーム(RPGツクール系ランタイムが必要なゲーム等)で遊んでまして、あれこれやった記憶がありますので、ここではまだWINEがインストールされていないノートPCでやってみたいと思います。

では、ノートPCの情報を。

Resuming in non X mode: glxinfo not found. For package install advice run: inxi –recommends
CPU~Dual core Intel Core i5-6200U (-HT-MCP-) speed/max~2400/2800 MHz Kernel~4.12.14-lp150.12.25-default x86
_64 Up~0:38 Mem~7208.8/15952.4MB HDD~1000.2GB(6.7% used) Procs~230 Client~Shell inxi~2.3.40

さっそく、4日目で紹介させて頂いた、inxiを使用しています。他にも、hwinfoやdmidecodeというコマンドもあるので、そちらもおいおい調査したいと思っています。

おや?glxinfoが無いよ、とエラーが出てしまっていますね・・・あしからず。

WINEのインストールは、YaSTで一発です。WINEは複雑な最新版を取得する方法等もいろいろあるのですが、今回はこれで普通に動きましたので(ネタバレ?)、YaSTの標準インストールを行います。

YaST の「ソフトウェア管理」で、「wine」で検索すると表示される一覧から、「wine」を選択します。すると、画面で言うとすぐ下の「wine-32bit」などにもマークが付きますが、これは依存関係を判別して自動でインストールすべきパッケージを選んでくれてますので、このまま「了解」を押して進みましょう。

すると、必要なパッケージをインストールするよ、の一覧が表示されます。結構な量になりますが、インストールしましょう。

さすがに量があるので、少し時間がかかります。私のwifi環境で、パッケージ数111、経過時間6分程、インストールサイズの合計673.56MiB、ダウンロードサイズの合計187.62MiBでした。

・・・インストールサイズとダウンロードサイズの違いってなんでしょう?あと、MiB って?

これらはおいおい調べていくとしまして、まずはWINEインストール完了です。

WINE起動してみる

アプリケーションメニューの「システム」に、「Wine File」がありますので起動してみますと・・・なんか、「wine-monoが無いよ。インストールする?ディストリビューションのものをインストールしたほうがいいけどね」といった感じのメッセージが。とりあえずキャンセル的な方を選んでおきました。デスクトップの方は表示されないんですよね・・インストールしたのかもしれません。

ちなみに、Wine Fileは、エクスプローラーのようにファイル等を見ることが出来るプログラムです。

東方妖々夢をインストールする

東方妖々夢のCDをドライブに入れ、その中にある「install」のファイルをクリックすれば、インストールが始まります。

このままインストールを進めていきましょう。

私は、最後で「デスクトップにショートカットを作成する」で「はい」を選んだのですが、ノートでは上手く表示されませんでした・・・ちなみにデスクトップでは表示されています。

東方妖々夢をプレイする

東方妖々夢のアイコン(?)をクリックしてみましょう。無事、起動しました。

何故かスペクタクル(スクリーンショットユーティリティ)でスクリーンショットを取ることが出来ず・・・

この時ですが、私はいつもUSB接続のコントローラーでプレイするのですが、東方妖々夢起動後に指すと、ずっと下ボタンが繰り返される現象が発生しました。前もって指しておいてから起動する分には、正しく動作しました。

なお、最初はフルスクリーンで起動されますが、ConfigからWindowを選択すれば、Window表示にする事ができます。

久々にプレイ

咲夜でプレイ。チェンでゲームオーバー。「幽雅に咲かせ、墨染の桜」までは遠い・・・まぁ、イージーでやれば・・・いや、イージーが許されるのは小学生までですよね。

という事で、東方を持っている方、是非openSUSEでプレイしてみましょう。

おまけ winetricks

winetricksという、WINEの設定やプログラムインストールを簡単にしてくれるスクリプトがあります。標準で入っているwinetricksには不具合があるので、これは最新版をダウンロードした方が安定するようです。

課題&感想

  • 想定通りの手順でプレイまで完了でうれしい
  • inxiでglxinfoのエラーが出る
  • YaSTでインストールする時の、インストールサイズとダウンロードサイズの違いは?
  • MiBの意味と使いどころ
  • wine-monoの扱い方
  • アイコンが表示されない?
  • スペクタクルでスクリーンショットが撮れない
  • チェンの弾除けは難しいけど出来ると快感

明日は鹿野月美さんによる、openSUSEのWINEで鉄拳7をプレイする記事です。この記事の課題は、きっと鹿野月美さんがぱぱっと解決してくださいます。こうご期待!

 

このブログは「openSUSE Advent Clendar 2018」の5日目の記事です。

皆さんこんばんわ。橋本修太です。

さて、今日はopenSUSEでマルチメディアを使えるようにするTipsです。

なお、この記事は経験則となっております事をご了承下さい。

それでは、結論から。

結論

このページから、KDEならKDE用の、GNOMEならGNOME用の、1-clickインストールを実行しましょう。

一時期、このサイトが使えなかった時もあるようなのですが、今現在、正常に使えています。

現象

openSUSEインストール後、VLC(メディアプレーヤー。動画再生等に使われます。)をインストールしたりして、いざ動画を再生しようとすると、「コーデックがありません」といった類のエラーが出てくる事があります。これは文字通りコーデックが足りていない事を示してます。

コーデック

簡単に言いますと、動画等のデコードやエンコードを行う装置やソフトウェア、そのアルゴリズムを指します。 今回の場合、データから動画や音声に変換したり、その逆を行うライブラリを指しています。

何が問題?

こちらのサイトこちらのサイトに、openSUSEでマルチメディアを使う時に何が問題なのか、まとまっています。特許、ライセンス、といった類の言葉がみられますね。この辺りも、おいおいまとめていきたいと思います。注目すべき点の一つは、「openSUSEでは公式に配布出来ない」ものがある、という事でしょうか。

なお、ライセンスと言えば年明け1月9日にサイオスさんの所で OSSライセンス Meetup が開かれますので、興味のある方は是非。

注意点

ここのページに書かれている注意点として、「マルチメディアパッケージ類は全部Packmanから取得するようにしてね」と書かれています。しかもスクリーンキャプチャ付きでわかりやすく解説されていますので、参考にしてみて下さい。

最後に

ブログを書く前は、ページの文章の翻訳を書こうとか思っていたのですが、いざ書き始めて、ライセンスだのと頭の中で繰り返していると、「はて、これはやっていいことなのかな?」と疑問が湧き出てきて止まらないです・・・これは私もMeetup参加して、一度正しい知識を身につけるべきという事でしょうか。

明日は鹿野月美さんの「openSUSEに自然言語処理な環境構築」の予定です。

言わずと知れた、お〜ぷん万葉の総帥による、自然言語処理な環境構築。お見逃し無く。

openSUSEでハードウェア情報を簡単に取得する

By Syuta Hashimoto @ 2018-12-04 07:29

橋本修太です。

このブログは「openSUSE Advent Clendar 2018」の4日目の記事です。

アドベントカレンダー完走目指して、急遽入れさせて頂きました。

初日から、覆面君さん、川上さん、鹿野月美さんと、レベルの高いブログが続き、私は非常に興奮しております。

が、ここで一息入れさせて頂きましょう。今日の話題はコンソールコマンドです。(タイトル詐欺感はご了承を・・・)

ある日、本家のサポートMLの、コンソールのフォントサイズだかの話題に、以下のような文章が現れました。

【意訳】

「今だったら、皆(バージョンにもよるけど)、vttyの行数、桁数は、次のコマンドで取得できるよ。

inxi -Gxx か、inxi -Fxz でね。」

ここで私は思うわけです。

(inxiってなに?)

というわけで、使ってみました。

使ってみる

さっそく、Leap 15のコンソールで実行。

$ inxi

しかし、こんなメッセージが。

If ‘inxi’ is not a typo you can use command-not-found to lookup the package that contains it, like this: cnf inxi

言わずと知れた、コマンドが無かった時のメッセージですね。

こうなると、次にすることはパッケージの検索。次のコマンドで検索します。

zypper se inxi

すると、該当パッケージが表示されます。これをインストールしましょう。

sudo zypper in inxi

zypperの使い方は、いずれどなたかがアドベントカレンダーしてくれると期待しています。

本題 inxiとは?

実行してみます。

inxi

すると、私の環境では以下のように出力されました。

Resuming in non X mode: glxinfo not found. For package install advice run: inxi –recommends
CPU~Quad core Intel Core i5-2400 (-MCP-) speed/max~3092/3400 MHz Kernel~4.12.14-lp150.12.25-default x86_64
Up~3:22 Mem~2698.9/7952.8MB HDD~1012.2GB(40.4% used) Procs~281 Client~Shell inxi~2.3.40

どうやら、ハードウェア情報を簡単に取得して出力してくれるようです。

マニュアルを見てみますと、

$ man inxi

頭に次のような説明が。

inxi  – Command line system information script for console and IRC

IRC!? それはさておき、システム情報を出力してくれるスクリプトのようですね。

ちなみに、コマンドの場所を確認し、

which inxi

そのコマンドが何かを調べてみますと、

file /usr/bin/inxi

以下のように出力されました。

/usr/bin/inxi: Bourne-Again shell script, UTF-8 Unicode text executable, with very long lines, with escape
sequences

どうやら、シェルスクリプトのようです。思い切って中身を見てみましょう。

less /user/bin/inxi

すると、先頭に見慣れた次の一行が。

#!/usr/bin/env bash

そう、シェルスクリプトの先頭に記述する一行ですね。つまり、inxiはシステム情報を取得・出力してくれる、シェルスクリプトでした。

コマンドを実行した結果の所に、glxinfoが無いよ、といった警告が出ていたことに気付きましたでしょうか。システム情報の収集は、inxiが他のコマンドを呼び出すなりして行う為、そのコマンドが無かったりすると警告となるわけです。

以上、簡単にハードウェア情報(というか、システム情報でしたね)を取得する、inxiコマンドの紹介でした。

MLにあった、inxi -Gxx や、 inxi -Fxz、試してみると面白いですよ。

ううむ、このブログ、inxiの紹介では無くて、見慣れないコマンドを見た時の遊び方のチュートリアルみたいになってしまいましたねぇ。

という事で、近いうちにcnfでも遊びたいと思っています。