この記事はopenSUSE Advent Calendar 2019の20日目です。

openSUSEのパッケージ管理はYaSTやzypperなどで行うのですが、パッケージそのものはRPMです。ですので、そのRPMパッケージが含んでいるファイルを一覧表示するなどの、rpmのコマンドを利用することができます。

ここでは、次のことををしてみたいと思います。

  • パッケージに含まれているファイルの一覧を取得する
  • コマンドやファイルがどのパッケージに含まれているかを調べる

(なお、zypperで直接行う方法や、もっとよい方法などがあると思いますので、そういった情報をお持ちの方は是非ご提供ください。)

パッケージに含まれているファイルの一覧を取得する

以下のrpmコマンドで可能です。

$ rpm -ql [パッケージ名]

例:

$ rpm -ql podman

(含まれているファイルのフルパスの一覧)

私は、そのパッケージがどんな設定ファイルを使っているか、また、どこにインストールしているか、などを調べたい時などに使っています。

コマンドやファイルがどのパッケージに含まれているかを調べる

以下のrpmコマンドで可能です。

$ rpm -qf [調べたいファイルやコマンドのフルパス]

例:

$ rpm -qf /usr/bin/podman

podman-1.4.4-lp151.3.6.1.x86_64

ここで、幾つかのコマンドを組み合わせて便利に使ってみましょう。

まず、コマンドのフルパスを取得します。which、typeなどありますが、ここではtypeを使ってみます。

$ type -p podman

/usr/bin/podman

-pオプションで、パス名だけを取得しています。これをrpmコマンドと組み合わせると、次のようになります。

$ rpm -qf $(type -p podman)

podman-1.4.4-lp151.3.6.1.x86_64

これで、rpmのパッケージ名が取得できます。この名前をそのままzypper infoに渡しても識別してくれないので(そんなパッケージは無いと言われてしまうので)、さしあたって、最初の「-(ハイフン)」までの文字を取得してみます。これで「podman」が取得できます。

$ rpm -qf $(type -p podman) | awk -F ‘-‘ ‘{print $1}’

podman

awkはテキストの加工とパターン処理を行ってくれるコマンドです。 -F ‘-‘ で、ハイフンを区切り文字に指定し、 ‘{print $1}’ で、区切られた最初の部分を出力します。

これを、zypper infoに渡せば、zypperでのパッケージ情報を取得できます。

$ zypper info $(rpm -qf $(type -p podman) | awk -F ‘-‘ ‘{print $1}’)

リポジトリのデータを読み込んでいます…

インストール済みのパッケージを読み込んでいます…

パッケージ podman に関する情報:

——————————-

リポジトリ             : openSUSE:Leap:15.1:Update                                             

名前                   : podman                                                                

バージョン             : 1.4.4-lp151.3.6.1                                                     

アーキテクチャ         : x86_64                                                                

ベンダ                 : openSUSE                                                              

インストール後のサイズ : 103.1 MiB                                                             

インストール済み       : はい (y)                                                              

状態                   : 最新                                                                  

ソースパッケージ       : podman-1.4.4-lp151.3.6.1.src                                          

概要                   : Daemon-less container engine for managing containers, pods and images

説明                   :                                                                       

   Podman is a container engine for managing pods, containers, and container

   images.

   It is a standalone tool and it directly manipulates containers without the need

   of a container engine daemon.

   Podman is able to interact with container images create in buildah, cri-o, and

   skopeo, as they all share the same datastore backend.

見事、zypperで情報が取得できました。

見返してみれば、「そもそも、zypper info podmanでよくないか?」と思えますが、コマンド名とパッケージ名が違う場合や、コマンドではなく設定ファイルから情報を引き出したい時などに利用できます。

ただ、間にハイフンが入るパッケージ名では、当然うまく動きませんね・・・typeでパスを取得するためにrootになって、brctlで試してみたのですが、rpmのパッケージ名がbridge-utils-1.6-lp151.2.3.x86_64だったため、ハイフンの前がbridgeとなってしまい、zypper infoで情報を取得できませんでした。まだ改良の余地ありです。

このように、いろいろな方法でrpmコマンドで取得できる情報の活用を試してみて下さい。



Cross Distro Developers Camp 2019 秋 行ってきました

By Syuta Hashimoto @ 2019-12-17 06:38

この記事はopenSUSE Advent Calendar 2019の17日目です。

前回にCross Distro Developers Campの春の合宿のレポートを書きましたが、今回は秋の合宿です。11/16(土)、17(日)に行われた開発合宿をレポートします。

Cross Distro Developers Campとは

日本語入力など、ディストロに関係せず解決するべき課題を共有・解決していくための有志の集まりです。前回にも紹介文を書いていますので、そちらもぜひお読み下さい。今回の参加は、Debian、Ubuntu、openSUSEのメンバーの方達でした。あと、LibreOfficeからも参加して頂きました。

秋の合宿

9月に日程は決まっていたのですが、趣味でやっているキックボクシングの試合などで私がちょっと疲れてしまっていて、肝心の場所探しなどは10月になってから慌ててやりました。(みなさん申し訳なかったです)

千葉や熱海の方に開発合宿プラン有りの評判の宿がいくつかあったのですが、日程がタイトだったためどこも予約でいっぱい。都内のホテルフクラシア晴海なども検討したのですが、結局、真鶴のペンションshiosaiさんにお世話になることにしました。開発合宿用の設備(ホワイトボード、wifi、プロジェクター)などを貸してくれることと、食事が美味しいということ、お値段も良心的な所などで決めました。チェックイン・チェックアウトの時間を調整して頂けたこともポイント高かったです。

ペンションshiosai

私はLibreOfficeのnaruogaさんの車に家の近くから乗せて頂いたのですが、最寄りの駅(真鶴)からペンションshiosaiまではちょっと距離があった様子です。丘の中で起伏もある感じでした。そのかわり、海を見下ろせる景色はすごく良かったです。

部屋は6人ぐらいの大きめの和室と、3人のベッドありの洋室をとって頂きました。 和室はそのまま開発合宿に使用して良いとのことで、ずっとここで作業を行い、食事になったらテーブルを並べて食事をして、夜になったら布団を敷いて寝る、みたいな感じでした。

露天風呂もあって、男性は午後から夕方までの利用だったのですが、温泉合宿な感じは充分でました。まぁペンションですので前回のマホロバマインズ三浦のようなリゾートホテルといったイメージではないのですが、男性の開発合宿や、家族旅行などでしたら愉しめると思います。今回の合宿の時も、ご高齢の方達が料理を愉しんだりしていらっしゃいました。

舟盛り

舟盛りが一つ12kだったのですが、電話予約で6kにしてくださるとのことでしたので、二つ頼みました。8人でしたので、1人2kいかないぐらいですね。この他にもさらにお刺身が出たり、ステーキも出たり、で、量、質、ともに満足な食事でした。さすが予約時に自信たっぷりに「うちは料理がいいですよー」とおっしゃっていただけのことはあります。

土曜日の昼11時にチェックインして、日曜日の16時まで使わせて頂いて、1人14kな予算感でした。真鶴までの交通費や日曜日の昼などもあるのでこの限りではないのですが、納得のお値段でした。

作業

私は前回同様、今回もGeekoMagazineの執筆をさせて頂きました。合宿の時期がGeekoMagazine執筆締め切り前になりがちなので、どうしても原稿作業になってしまう模様。お陰で、難航必死の執筆が、第一校があがるまで進みました。

他の方はDebianのneologdのパッケージングや、Cross Distro Developers Campのサイト作成、橋本雅彦さん作のかな漢字変換エンジンの試用など、色々と作業されてました。

夜に共通話題についての意見交換も行いました。前から議題になっているインプットメソッドの問題や、フォントに関する現状などがトピックになりました。

今回サイトが作成されましたので、ここで出たトピックの取りまとめなど、情報発信も積極的に行っていきたいと思います。(なかなかコンテンツを作成できず、すみません・・・)

また、OSC 2020 Tokyo/Springで、ディストロ横断でセッションを持ったら面白いんじゃないか、という話になり、現在、実現に向けて準備していますので、来年2/21(金)、22(土)のOSC 2020 Tokyo/Springを楽しみにしていて下さい。場所は駒沢大学、アクセスも良好かと思いますので皆さんの参加をお待ちしています。内容は、各ディストロがどうやって開発してるか、開発するにはどんな方法があるか、といった話になりそうです。

次回の合宿は

次回は2020年2月を予定しています。これは蕪さんの温泉合宿にあいのりさせてもらう予定です。

また、その前に1月11日(土)に、もくもく会を開催いたします。ディストロに興味のある方、実際に開発している方、参加歓迎ですので検討してみてください。

さて、Advent Calendar、明日はribbonさんによるnmapの記事です。お楽しみに〜

この記事はopenSUSE Advent Calendar 2019の13日目です。

今回は、openSUSEでパッケージをインストールする3つのメジャーな方法を紹介させて頂きます。

  • YaSTの「ソフトウエア管理」からインストール
  • コンソールからzypperコマンドでインストール
  • Webサイトから1-clickインストール

YaSTの「ソフトウエア管理」からインストール

簡単設定ツールYaSTの「ソフトウェア管理」で、パッケージをインストールしたりアップグレードしたりできます。YaSTは、左下のアプリケーションランチャーから、「アプリケーション > 設定 > 管理者設定(YaST)」で起動できます。

起動したら、「ソフトウエア管理」を選びましょう。リポジトリ情報などを取得した後、管理画面が開きます。

YaSTのメニュー
ソフトウエア管理でpodmanを検索

左上の場所にパッケージ名を入力して、「検索」をクリックすれば、右側に一覧が表示されます。インストールしたいパッケージを選択して、右下の「了解」をクリックしましょう。

コンソールからzypperコマンドでインストール

コマンド「zypper 」で、パッケージ管理ができます。パッケージを検索したい時は以下のコマンドです。

$ zypper se [検索したいパッケージ名]

seはsearchのseです。searchとフルでタイプしても大丈夫です。該当するパッケージがあれば、一覧が表示されます。

リポジトリのデータを読み込んでいます…
インストール済みのパッケージを読み込んでいます…

S  | 名前                   | 概要                                                                  | 種類             
—+————————+———————————————————————–+—————–
  | podman                 | Daemon-less container engine for managing containers, pods and images | ソースパッケージ
i+ | podman                 | Daemon-less container engine for managing containers, pods and images | パッケージ       
i  | podman-cni-config      | Basic CNI configuration for podman                                    | パッケージ       
  | python-podman          | A library to interact with a Podman server                            | ソースパッケージ
  | python-podman-compose  | A script to run docker-compose using podman                           | ソースパッケージ
  | python2-podman         | A library to interact with a Podman server                            | パッケージ       
  | python3-podman         | A library to interact with a Podman server                            | パッケージ       
  | python3-podman-compose | A script to run docker-compose using podman                           | パッケージ  

上記は「podman」で検索してみた例です。(折り返してしまっているので見にくくてすみません。)

ちなみに、左端の「i」がインストールされているという意味で、「i+」は、ユーザーが選んでインストールしたパッケージ、という意味です。

目当てのパッケージが見つかったら、インストールは以下のコマンドです。

$ zypper in [インストールしたいパッケージ]

inはinstallの略です。フルでinstallとタイプしても大丈夫です。

そうすると、同時にインストールすることが推奨されるパッケージや利用予定ディスク容量などが表示され、インストールするかを聞かれますので、Y(Yes)で答えればインストールです。なお、root権限が必要ですので、一般ユーザーの場合はsudoで実行するなどしましょう。

Webサイトから1-clickインストール

openSUSEにはソフトウェアサイトがあり、コミュニティ作成のパッケージや、実験的なパッケージをインストールすることもできます。(もちろん、自己責任となりますのでご注意ください。)

ソフトウェアサイトのトップページ

左側でディストリビューションを選べますので、希望のものを選びます。今ですと、Leap15.1になるでしょう。それからパッケージ名を検索します。そうすると、各パッケージのページに行くことができます。

podmanのパッケージのページ

ここから「直接インストール」を選択します。

あるいは、下部に利用可能な各ディストリビューションのコミュニティ作成パッケージや実験的パッケージが表示されますので、希望のものをえらび「1-クリックインストール」をクリックします。

podmanのleap15.1のパッケージ例

追加のリポジトリが必要な場合は、それを設定するか確認されます。「ちゃんと、変更内容わかってる?」と、かなり念を押してくれます。

まとめ

どの方法でも、zypperで操作できるパッケージ管理の配下に入っていきます。ですので、WebサイトからインストールしたものをYaSTで確認、などもできます。気になるパッケージもこれで手に入りますね。なお、Webサイトからですと実験的なものなども見れますので、他の方法で見つからない場合は覗いてみるのもアリだと思います。(くどいようですが、自己責任ですので・・)

  • リポジトリとパッケージの関係をとりまとめてブログに書きたい
  • libzyppとzypperとYaSTの関係図を書けるようになりたい
  • なんなら、zypperのソースを読んでみたい

Noto Sans CJK JPと、Noto Sans JPの違い

By Syuta Hashimoto @ 2019-12-11 22:27

この記事はopenSUSE Advent Calendar 2019の11日目です。

さて、今回は豆知識です。

この間 Cross Distro Developers Campの秋の合宿に参加したのですが(レポートは17日に書きます)、この時に以下の豆知識を教わりました。

Noto Sans CJK JP

C(Chinese)、J(Japanese)、K(Korean)の全てが入っているフォントで、その中でJapaneseを優先的に表示するようになっているのだとか。

Noto Sans JP

JaPaneseのみのフォントが入っている。容量はもちろんCJKよりも小さい。

まとめ

もちろん、アルファベットは両方に入っています。openSUSEではデフォルトでNoto Sans JPが使われているようですね。

合宿では、フォントの形?をグリフと呼ぶ、とか、表示されるフォントの優先順位を決めているfontconfigというユーティリティがあるが、この使い方が難しい、だとか、色々とお話を聴かせて頂きました。また、どちらを使うかがディストリビューションによって違ったりするので、名前が一致しなくて、文書がきちんと表示できない、なんてこともあるとか。

このあたりのお話や情報も、まとめて、正しい知識にしたいと思っています。

なお、22日はftakeさんのフォントに関するお話です。(この記事にミス等あれば、ご指摘して頂けますでしょう)

明日は最近DNSの申し子になっているemaxserさんの記事です。どうぞお楽しみに!

この記事はopenSUSE Advent Calendar 2019の10日目です。

今更ですが、今年の6/21(金)-6/23日(日)で、Cross Distro Developers Camp 6月の開発合宿に行ってきました。

Cross Distro Developers Camp

これは、インプットメソッドやかな漢字エンジンなど、日本のディストリビューションを横断して解決すべき問題についての情報交換や共同開発を目的とした集まりです。

もともとは2月のOSC Tokyo/Springの時に、DebianさんたちとopenSUSEのftakeさんとで、日本語インプットメソッドの問題について意見交換したのがきっかけで、じゃぁ開発合宿でもして解決に臨もうか、となったのでした。(ちょうど、Debianの方が、GNOME + Waylandでインプットメソッドが使えない、という問題を解決しているところでした。)

8月のODCでは、一連の問題提議や、この会の説明などのセッションを持たせて頂き、多くの方に興味を持って頂きました。

インプットメソッドの問題はアジア圏など広い範囲でも共通する問題ですので、アクターが広がっていくと良さそうですね。

マホロバマインズ三浦

宿は、いろいろな宿泊施設を試してみたい、とおっしゃっていたDebianの吉田さんの提案で、マホロバマインズ三浦に決定、私は予約などをさせて頂きました。

ここの研修プランにしたのですが、見積り依頼時から担当がついてくださって、こちらの要望(追加料金を払うので最低10人を8人で利用したい)やタイムスケジュールの調整(3人は前泊したい)などを柔軟に聞き入れてくださり、サービス力は高いと感じました。また、当日も担当のコンシェルジェがついてくださり(結局利用させていただくことはありませんでしたが)、「研修を心地よく有意義に過ごして頂こう」というホテル側の気配りを感じることができました。

場所は三浦半島の海に近い場所、朝方はみんなで浜辺に散歩にいったり、食事も肉に魚と美味しいものばかりでした。(メニューはみんなで事前に選びました。朝食のバイキングも、内容がよくて満足でした。)

お値段は、土-日組が17k弱、金-日組で23k程度だったと思います(すみません、記憶なので確かではないかもです)。温泉の他に、水着を持参するか借りるかすれば温水プールも利用できて、オンオフ両方充実できる場所でした。研修室は15名ほどで利用できる会議室に机をコの字に並べての贅沢利用。給茶機、WiFi、ホワイトボードも利用可能でした。(プロジェクターだけは借りると1日10kほどだったため、メンバーの方が持参してくださいました)

売店も地ビールなどがおいてあって、おみやげにも困らず、開発合宿をオールインワンでしたい場合の良い候補地だと思いました。

売店にあったクラフトチューハイ

私の課題

私はこの合宿ではGeeko Magazine 夏号の原稿を書いていました。もくもく会的なところがあって、皆さんそれぞれの作業をしていました。その他、時間をとってみんなでインプットメソッドの話や、ユーザー会の運営的なところのお話などを共有しました。

私は作業はあまり外に出ないタイプなのですが、こうやって意見交換できる場所は色々と新しいことがあって、非常に良い刺激になりますし、何より楽しいですね。見識が深まりますし、モチベーションも上がりました。

次回

年に二回ぐらい?というお話がでたとおり、この次は秋に合宿をしてきました。その様子は来週にレポートさせて頂きたいと思います。

また、この時にあまりスムーズでない進行にかかわらず付き合ってくださったみなさん、ありがとうございました。こういう段取りや準備も、徐々に慣れていこうと思います。

OSC Tokyo/Fall 行ってきました

By Syuta Hashimoto @ 2019-12-08 18:47

この記事はopenSUSE Advent Calendar 2019の8日目です。

ftakeさんなどユーザー会の人たちと一緒に、11/23、24に明星大学で開催されたOSC Tokyo/Fall 2019に参加してきました。ftakeさんのレポートはこちらです。

セミナーは川上さんの「最近よく聞く!? ― eBPF (extended Berkeley Packet Filter) を用いた PostgreSQL の性能測定」でした。そこそこ聴衆も集まったようです。eBPF、私も使ってみたい・・・

ということで、私は他に自分のセミナーもなかったので、ブース対応と、セミナーを少し聞いてきました。

ブース

いやぁ、やっぱり特大ぎーこくん、人気者ですね。今回はお子様も多く、特大ぎーこくんは大人気でした。(一部、大人の方にも人気でした)

ブースに来てくださった方に、openSUSE知ってます?と尋ねると、知ってますよー、と返してくださる方が増えた印象です。今回は新ネタもとくになかったこともあり、YaSTやKubicのお話を中心にさせて頂きました。

また、Netpbmの漆畑さんが同じ部屋にブースを出していらっしゃって、行列などの数学の本をお勧めして頂きました。私は体系的に数学を学んでいないにもかかわらず、機械学習やりたいなーとか思っているので、ものすごく助かりました。

セミナー

主に以下のセミナーを聴かせて頂きました。

ストレージもSoftware Definedな時代です。OpenSDS,始めてみませんか。

伊藤さんによる、OpenSDSのセミナーです。OpenSDSは興味を持っていて、私は5月のopenSUSE Conference 2019では、OpenSDSの概要とKubicから使う方法についてセミナー持たせて頂きました。

OpenSDSは名前が「SODA」に変わり、そのローンチイベントを12/17日に日本で行うそうです。参加したいのですが、その日はあいにく・・・

ちなみに、OpenSDSは、Software Defined Storageのソリューションで、簡単に言いますと、ストレージのプロビジョニング、レプリケーション、バックアップなどを行うコントローラーです。それも抽象化されたコントローラーで、実際の動作は各ドライバに委譲しています。各ドライバのための統一インターフェース、といったところでしょうか。Kubic(Kubernetes)からも使えるので、Kubic(Kubernetes)のストレージ利用を柔軟にしてくれます。

コンテナーにてBittorrentメカニズムを使ったデプロイサーバの実行

Clonezillaさんのセッションです。Clonezillaはディスクを複製するソリューションですね。

アプリケーションをコンテナ実行し、Bittorrentを使って配信することで、利用を簡単・効率的にしたとのことです。コンテナにはDockerではなくSingularityを使っているそうで、理由としてSingularityの、権限制御を簡素化したりしてコンテナのアプリを動かすという所にフォーカスした設計をあげていました。また、デプロイにはBittorrentが効率的に配信できてよい、とのことです。

ITエンジニアが誤解している2020年度からの「小学校プログラミング教育」

さくらインターネットさんの前佛さんのセッションです。さくらインターネットさんは地域貢献の一環として、学校でのプログラミング授業の補佐を行っているそうで、現場視点での現状をお話してくださいました。「主役は子供」というフレーズを語る前佛さん、かっこよかったです。

まだIT業界視点、また、学校視点でも、「プログラミング教育」というものに対する誤解や不理解が多いらしく、そのあたりを整理して解説していました。プログラムをかけるようにする、という視点ではなく、プログラムが書けるような思考力を養う、また、問題を解くときにプログラムを利用するような発想ができるようなる、という視点での教育だということを強調していました。

懇親会

初日夜に開かれた懇親会に参加しました。ここでは、おーぷん万葉の(東海道LUGの?日本openSUSEユーザ会の?)橋本雅彦さんやUbuntuの柴田さんと、ibusと橋本さん作のかな漢字変換エンジンをつなぐ部分の仕様詰めなどをさせて頂いたり、さくらインターネットさんの前佛さんとコンテナのことやプログラミング教育のことについて、色々とお話させて頂いたりしました。まさに懇親会、私なりにネットワーキングさせて頂きました。

次回は

OSC Tokyo/Spring 2020は、都内駒沢大学にて、2/21(金)、2/22(土)で開催予定です。日本openSUSEユーザ会も、もちろん出展・セミナー予定ですので、是非そこでお会いしましょう!

さて、Advent Calendarの明日は、ftakeさんによる「openSUSE で M5STACK の開発環境を整える」です。IoTよりのお話ですね。乞うご期待です。

この記事はopenSUSE Advent Calendar 2019の7日目です。

さて、一年越しの遊びたいねぇを実施したいと思います。

openSUSEのコンソールで作業していると、タイプミスやパッケージの未インストールなどで、システムにないコマンドを打ってしまうことがあります。

そんな時、コンソールには次のようなメッセージが表示されると思います。

$ ifconfig

‘ifconfig’ が入力間違いでなければ、下記のように入力することで command-not-found を利用してパッケージを検索することができます:
   cnf ifconfig

ネットワーク関連のコマンドはipやssというコマンドになったため、ifconfigはdeprecatedになっていて、システムには入っていません。

ここで私はzypper seで検索したり、ぐぐったり、と、コマンドを探しに行くわけですが、簡単にどこにあるかを探してくれるコマンドがありました。

そう、それがメッセージで親切にも教えてくれている、”cnf”です。

cnf – Command Not Found

cnfはCommand Not Foundの頭文字を並べたコマンドで、そのコマンドがどのパッケージに入っているかを探してくれたり、$PATHに設定がないのでは、などのNot Foundとなってしまう理由を表示したりしてくれます。なお、command-not-foundというコマンドも同じ模様。

$ cnf ifconfig

                        …  
プログラム ‘ifconfig’ は下記のパッケージに存在しています:
 * net-tools-deprecated [ パス: /bin/ifconfig, リポジトリ: zypp (repo-oss) ]
 * net-tools-deprecated [ パス: /usr/bin/ifconfig, リポジトリ: zypp (repo-oss) ]

下記を利用してインストールしてみてください:
   sudo zypper install net-tools-deprecated

net-tools-deprecatedパッケージにあることと、zypperコマンドでインストール可能なことが表示されました。ここでdeprecatedと名前のついているパッケージに入っているので、ぐぐる意味がでてきそうです。

コマンド名からパッケージが推測できる場合はzypper seで探すことも簡単ですが、そうでない場合などは有効ですね。たとえば、brctlなど。

ちなみに、私はbrctlを導入済みです。この状態でcnfを実行するとどうなるでしょうか。(導入済みなのに、brctlとコマンドを打ってもNot Foundとなってしまった想定)

$ cnf brctl

                     …  
プログラム ‘brctl’ は、システムにインストール済みのパッケージ ‘bridge-utils’ 内に存在します。

絶対パス ‘brctl’ は ‘/usr/sbin/brctl’ を指しています。そのため、このコマンドを実行するにはスーパーユーザ (root など) の権限が必要
かもしれません。

をを、親切にも、/usr/sbin下だから、sudoいるんじゃないの?と、アドバイスをしてくれます。

他にも、一般コマンドで試してみると、

$ cnf podman

                      …  
プログラム ‘podman’ は、システムにインストール済みのパッケージ ‘podman’ 内に存在します。

絶対パス ‘podman’ は ‘/usr/bin/podman’ を指しています。左記のパスがお使いの環境での $PATH 変数に含まれているかどうかご確認ください。

ちゃんと、$PATHに指定されているかをアドバイスしてくれます。

チュートリアルをしているときなどで、コマンドが見つからなかった場合、まずcnf叩いてみるのが有効そうですね。ただ、私の環境では1-clickで追加したリポジトリにあるパッケージを認識しなかったりしたので、ちょっとチューニングがいるのかもしれません。(Cloud:OpenStack:Masterに入っている、genisoimageなど)

まとめ

  • cnfはそのコマンドがNot Fonudとなる理由を表示するユーティリティで、これ自体は勝手に何かをインストールしたりはしないので、気軽に使える
  • コマンド名からパッケージ名の推測が難しいときや、パッケージ入れたのに使えないときに使用する
  • 認識しないリポジトリがある?←要調査
  • manを見ると、厳密にはハンドラでbashやzshに統合されてるらしい
  • 他ディストリビューションでは同様コマンドはあるのでしょうか?情報お持ちの方、是非ご教示ください