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

※2020/01/26 追記 この設定をしてしまうと、Dockerが動かなくなってしまいます。詳細は現在調査中。まとまりましたら報告させて頂きます。※

GeekoMagazine 2019 冬号に、仮想サーバーをさくっと建てる方法を書かせていただいております。よろしくお願いいたします。

さて、私は実際にこの方法で立てた仮想サーバーを活用しているのですが、最近、家のルーターがipv4アドレスを仮想サーバーに割り振ってくれなくなってしまいました。

結論 ホストがbridgeしたパケットをフィルタリングするのを無効にする

sysctlで以下の設定を行った所、無事、DHCPでipv4が割り振られました。

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

1行づつ、sysctl -w で設定してもよいですし、ファイルに記述して、sysctl -p でそのファイルを読み込んでもOKです。

ただ、/etc/sysctl.d/ にファイルを配置しても、起動時に読み込んでくれません・・・ここは追って調査して、記事にしたいと思います。

これらは、bridgeのフィルタリングを無効にする設定とのことです。

もしかしたら、最近のカーネルのアップデートなどで設定が消えてしまったのかもしれません。私が忘れているだけで、以前はこの設定をしていたかもしれず、記事から抜けてしまっていて申し訳ないです・・・

openSUSE Leapは、15の前は42だったんだ?

By Syuta Hashimoto @ 2019-12-21 11:46

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

今日はLeapのバージョニングについて振り返ってみたいと思います。

Leapの登場は2015年のLeap 42.1が最初のようです。この前がopenSUSE 13.2。

つまり、13.2(Leapの前) > 42.1 (以降、Leap)> 42.2 > 42.3 > 15.0 > 15.1(今年リリースの現行版)とバージョニングされています。

なお、リリースは年に一回で計画されていて、来年は15.2のリリースが予定されています。(現在開発中。)マイナーリリースは3年の計画なので、このままいけば再来年はメジャーバージョンがかわります。

はたして、素直に16にいくのでしょうか?

42?

元ネタは「銀河ヒッチハイク・ガイド」というSF小説とのことです。ある宇宙人が、「生命、宇宙、そして万物についての究極の疑問の答え」をスーパーコンピューターで計算したところ、答えが「42」だったらしいです。

ちなみに、このスーパーコンピューターは、究極の答えに対応する究極の問いが何なのかわからないため、42 の意味まではわからないのだとか。そこで、その問いを算出する為にスーパースーパーコンピューターを作って、といった所がストーリーにからんでくるようです。そのスーパースーパーコンピューターというのが、実は・・・

Leap 42.1のポータルには、次の素晴らしい一文が乗っています。

openSUSE Leap 42.1 はその重要さに合った名前に値します。

Portal:42.1

なお、15.0がリリースされたあと、「最新バージョンを取得しようとすると、42用パッケージとってきちゃうんですけど・・」「あ、数字が大きいものをとってくるようにしてるから、15じゃなくて42とってきちゃうんだね。」といったやりとりが頻発した模様。

まとめ

バージョニングに突如42をもってくるところに、私はopenSUSEプロジェクトっぽさを感じています。

  • そもそもLeapが誕生した経緯を調べたい
  • 私がopenSUSEプロジェクトに関わり始めたのはLeap 15目前のときで、42のやりとりはタイムリーには見れていないんですよね

openSUSE Advent Calendar 2019、明日はftakeさんの「 LibreOffice で OpenType フォントの機能を使う話」です。有意なお話っぽそうですね。お楽しみに!

この記事は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 夏号の原稿を書いていました。もくもく会的なところがあって、皆さんそれぞれの作業をしていました。その他、時間をとってみんなでインプットメソッドの話や、ユーザー会の運営的なところのお話などを共有しました。

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

次回

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

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