By ribbon @
2021-03-13 22:57
openSUSE のパッケージを YaST からインストールするとき、そのパッケージの説明が表示されます。ただ、残念ながら、その多くは英文のままです。パッケージの多くは OS インストール時に自動的にインストールされてしまいますので、説明文を読むことはないのですが、後から個別にインストールする場合には、日本語の説明文があるとわかりやすいですね。 そこで、まだ訳されていないパッケージの説明文を訳してみることにしました。 また、訳していると結構おなじみなソフトウェアにお目にかかることもありますが、今まで聞いたことがないような、かつ、何か面白そうなソフトウェアに出くわすこともあります。そこで、そのようなソフトウェアを試しに動かしてみて、使えそうかどうか調べて見ることにしました。
パッケージ名 wkhtmltopdf バージョン wkhtmltopdf-0.12.6-1.3 結果 △ 詳細 これは、html を pdf に変換するためのツールです。が、残念ながらうまく変換してくれませんでした。情報がごっそり落ちてしまいます。
パッケージ名 w3c-markup-validator バージョン w3c-markup-validator-1.3-10.4 結果 △ 詳細 htmlファイルが w3c のマークアップ定義に準拠しているかどうかを調べるソフトウェアです。これは apache2 のcgiとして提供され、perl で書かれています。が、すんなりと動いてくれませんでした。起動時にエラーとなります。これは、 /etc/apach2/conf.d/w3c-markup-validator.conf の46行目に、 Order Deny,Allow と言う記述があり、Apache2.4では非推奨なためです。そのため、 https://www.adminweb.jp/apache/allow/index10.html にあるように、 access_compat_module の導入が必要となります。 そこで、/etc/apache2/loadmodule.conf に下記の行を追加しました。
LoadModule access_compat_module /usr/lib64/apache2/mod_access_compat.so
が、やっぱりエラーとなります。原因は簡単で、/etc/sysconfig/apache2 の中にロードするモジュール一覧を記述するところがあり、そこに、access_compat という文字列を追加しなければならないのでした。 調べて見ると、まず最初に見るファイル、/etc/apache2/httpd.conf の内容から、openSUSEでは、apache の設定が、機能単位毎にファイルが分かれていることがわかりました。その中に、/etc/sysconfig/apache2 でモジュール設定をすることが書いてありました。動かなかったのはこういうことだったわけです。
次に、データの準備をします。w3c-markup-validation は /srv/www/w3c-markup-validation と言うディレクトリにデータをおいてくれます。今回はサクッとテストするので、これを /srv/www と置き換え(ディレクトリを1つ下げてディレクトリ名を入れ替え)てみました。これでブラウザを使ってアクセスしてみると動きました。
が、テストしてみるとやはり駄目です。
もう少し apache の設定ファイルに調整が必要なようです。 今回は、openSUSE の apacheの設定ファイルが、他のものとはかなり異なっていることが分かったというのが幸いでした。
パッケージ名 watchman バージョン watchman-4.9.0-5.4 結果 △ 詳細 ファイル変更を監視するプログラムらしいです。一応。コマンドを叩いて、サーバモードで動作することまでは動作確認が出来ました。しかし、ドキュメントを軽く読んで限りでは、使い方がよく分かりませんでした。一応試してみた方はいらっしゃるようです。
https://kore1server.com/260/ファイル監視のwatchman
パッケージ名 wcd バージョン wcd-6.0.3-1.5 結果 × norton utility の wcd クローンです。最初にディレクトリをスキャンして、すべてのサブディレクトリを内部的に保持。次回からは、ずっとずっとしたのディレクトリ名を指定すれば一気に cd ができるというもののようです。 パッケージのバイナリは、 /usr/libexec/wcd.exe 。当然のことながら、パスが通ってないので直接指定しないと動きません。オプションで -g を付けると curses ベースのグラフィック表示になります。
ここまではいい感じでした。 が、実際にやってみると cd しないのです。元のまま。というわけで使えませんでした。
パッケージ名 wdiff バージョン wdiff-1.2.2-6.8 結果 ◎ 詳細 単語レベルでの比較をする diff です。たとえば
% wdiff COPYING COPYING2 | head GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, [-1991-] {+2021+} Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this [-license document,-] {+license-documents,+} but changing it is not allowed.
のように、差分を表示してくれます。 英単語では当然のことながらちゃんと動きます。が、やはり日本語での単語切り分けは無理のようです。 ….と思ったのですが、なんと、jwdiff という日本語対応の wdiff があったのでした。
https://fumiyas.github.io/2013/12/12/jwdiff.sh-advent-calendar.html
https://github.com/fumiyas/home-commands/blob/master/jwdiff
mecab を使うところがポイントですね。 そのほかに docdiff というのもあるそうです。
https://github.com/hisashim/docdiff
パッケージ名 whohas バージョン whohas-0.29.1-1.10 結果 ◎ 詳細 これは、あるパッケージが、複数のディストリビューションに含まれているかを調べるコマンドです。たとえば、このコマンド自身を検索すると
Couldn't fetch "http://dl.fedoraproject.org/pub/fedora/linux/releases/26/Everything/x86_64/os/Packages/w/". Giving up. AUR 0.29.1-1 5 http://aur.archlinux.org 0.29.1-1 Ubuntu whohas 0.29.1-1 179K all http://packages.ubuntu.com/xenial/whohas Ubuntu whohas 0.29.1-1 179K all http://packages.ubuntu.com/bionic/whohas Ubuntu whohas 0.29.1-1 179K all http://packages.ubuntu.com/focal/whohas Ubuntu whohas 0.29.1-1 179K all http://packages.ubuntu.com/groovy/whohas Ubuntu whohas 0.29.1-1.1 179K all http://packages.ubuntu.com/hirsute/whohas NetBSD whohas 0.29.1nb2 192K 2020-09-01 misc https://pkgsrc.se/misc/whohas Couldn't fetch "http://ftp.openbsd.org/pub/OpenBSD/6.0/packages/i386/". Giving up. Source Mage whohas 0.29.1 test Source Mage whohas 0.29 stable Debian whohas 0.29-0.3 189K all http://packages.debian.org/jessie/whohas Debian whohas 0.29.1-1 180K all http://packages.debian.org/stretch/whohas Debian whohas 0.29.1-1 180K all http://packages.debian.org/buster/whohas Debian whohas 0.29.1-1.1 180K all http://packages.debian.org/bullseye/whohas Debian whohas 0.29.1-1.1 180K all http://packages.debian.org/sid/whohas
という感じで表示されます。検索は、各ディストリビューションの検索サイトを使って行い、その結果を表示するということをやっています。そのため、似たようなパッケージなども表示されるときがあります。複数のバージョンが表示されるときもあります。 対象となるディストリビューションはArch, Debian, Fedora, Gentoo, Mandriva, openSUSE, Slackware (と linuxpackages.net), Source Mage, Ubuntu, FreeBSD, NetBSD, OpenBSD, Fink, MacPorts, Cygwin and OpenMoko です。ただ、openSUSE については、うまく検索ができないようです。ソースコードが期待している結果が返ってきてないのかもしれません。 あるパッケージの移植状況などを調べるときには重宝しそうです。
パッケージ名 wmutils バージョン wmutils-1.4-1.9 結果 ◎ 詳細 X のウィンドウに対して情報を得たり種々の操作をするコマンドラインツールです。たとえば、現在のウィンドウのサイズを調べるには、pfw コマンドを使ってウィンドウの ID を取得し、wattr コマンドでサイズを取得します。
以下の機能が用意されています。
chwb - change window's borderchwso - change window's stacking orderignw - ignore/unignore windowkillw - kill windowslsw - list windowsmapw - map/unmap windowspfw - print focused windowwattr - show window's attributeswmp - move the mouse pointerwmv - move a windowwm_wtf - focus a windowwrs - resize a windowwtp - teleport a window
スクリプトなどでウィンドウの制御をするときには便利に使えそうです。
Category
openSUSE ,
Tips ,
その他 |
受け付けていません
By ribbon @
2020-12-20 00:02
めでたくTumbleweedに20201115版の日本語マニュアルが入りましたが、必ずしも最新の日本語manpage が入ったわけではありません。たとえば、 od コマンドは、日本語訳が GNU textutils のバージョン2.1なのに対し、英語版の方はcoreutils のバージョン8.32になっています。coreutils にいくつかのパッケージが集約されたことも反映されていません。
たとえば od の日本語manpage には –endian オプションが含まれていません。また、接尾辞についての記述も、 b (512倍)しか記載がありません。8.32では、KB,K(KirobyteとKibibyte),MB,Mのように、単位を示す記述についての記載もあります(Mの上、G,T,P,E,Z,Yも使えます)。
openSUSEの場合、たとえば man od とすると、同じmanpage が複数ある場合、一旦マニュアルを選択する画面が表示されます。たとえば、環境変数で LANG=ja_JP.UTF-8 というように日本語を指定する場合、そのままEnterキーを入力すると、既定で日本語のmanpage が表示されます。しかし、1+1,あるいは +1 というように指定すると、英語版のマニュアルを表示できます。ですので、マニュアルページを参照する際は、適宜英語版のマニュアルも参照して、日本語版と差がないかどうかを確認することをお勧めします。
Category
openSUSE ,
Tips ,
その他 |
受け付けていません
By ribbon @
2020-12-16 00:03
Geeko Blog » マニュアルのみのRPMファイルを作ってみた で、Sambaの日本語マニュアルパッケージを作成した時に参照したLinuxの日本語マニュアルページですが、2017年12月15日バージョンでした。これは openSUSE 15.0 から変わっていません。ちょっと古いですね。そこで、他のディストリビューションなどと比較して見ることにしました。結果は以下の通りです。なお、各ディストリビューションとも、各種コマンドでパッケージの最新化をして確認するか、配布サイトのパッケージ情報を見ています(※のもの)。
CentOS 7 20130615版 Debian10 20180315版 openSUSE 15.2 20171215版 openSUSE Thumbleweed 20191215版(※) Fedora 20200315版(※) Oracle Linux 20130615版(※) Arch Linux なし(※) Gentoo Linux 20180315版(※)
CentOS(=RedHat=Oracle Linux)はちょと古すぎますね。Fedora はやはりというか新しいです。しかし、Thumbleweed も結構新しい方でしょう。とりあえず15.2で使うのであれば、Thumbleweed版を持ってきて入れてしまうと言うのも手かもしれません。rpmファイルの中身はテキストだけなので、バイナリの互換性で引っかかることはないですから。
ちなみに、日本語マニュアルについては、Open Build Service で20201115版を作成し、更新をお願いしておきましたので、そのうちopenSUSE用の最新版が提供されるようになるのではないかと思います。
ただ、ls コマンドのマニュアルを見てみると、openSUSE 15.2 での日本語マニュアルはは GNU Fileutils のバージョンが4.1であると表示されますが、英語版は バージョン8.29 となっています。となると、日本語マニュアルに頼りすぎるのは少々危険かもしれません。
By ribbon @
2020-12-13 00:03
Samba には日本語マニュアルがあるのにパッケージ化されていません。ですので、日本語マニュアルのtar.gz ファイルを持ってきて展開することになります。このままですと管理が不便なので、RPMファイルを作ってみることにしました。ただ、一から作るのも大変なので、Linuxのコマンド日本語マニュアルのRPMファイルをベースにして作ってみることにしました。
まず、openSUSE 15.2 のSRPMファイルを入手し、rpm コマンドでインストールします。すると ホームディレクトリ配下のrpmbuild/SPECS ファイルにspecファイルが展開されます。これをベースに修正することにしました。…. が単にマニュアルファイルを所定のディレクトリにコピーするだけ、という単純なものかと思いきや、ちょっとしたテクニックが使われていました。
細かなことをやっているのは install セクション。ここでは、既存のディレクトリにインストールしようとするファイルと同じものがある場合、RPMファイルに含めない ようにしています。また、複数のパッケージの日本語マニュアルをまとめているため(たとえば sudo とか tcpdump とか)、各パッケージ毎のサブディレクトリがあり、その中にさらにmanのカテゴリ毎(man1とかman8とか)に分けて日本語マニュアルが格納されています。このままではSambaの日本語訳ファイルアーカイブとは合わないため調整しました。そうして各ファイルをインストールする部分は以下のようになりました。
%install mkdir -p %{buildroot}%{_mandir}/ja for i in find output/manpages/ -name *.* do SUBDIR=man${i##*.} mkdir -p %{buildroot}%{_mandir}/ja/$SUBDIR install -m 644 $i %{buildroot}%{_mandir}/ja/$SUBDIR done
#find の所、バッククォートがうまく入力できないのですが実際にはあります。
Samba日本語マニュアルのアーカイブはmanpages というディレクトリ配下にすべてのカテゴリ(man1からman8まで)が含まれています。そこで、カテゴリ毎に振り分けが必要です。そのため、
findでファイル一覧を作って do ループに渡す ${i##*.} で、拡張子のみを抜き出し、振り分け先のディレクトリ名を作る そこにinstall する
という形になります。拡張子のみをどうやって抜き出すかが大変なのですが、bash の変数名の後に ## を付けると、変数展開時に前方一致した部分を削除することが出来るのですね。そこで、ピリオドより前の部分を全部そぎ落としてしまえば、拡張子のみが残るというしくみです。この辺はbashシェル職人じゃないと思いつかないところですね。
後は多少調整して無事RPMファイルを作成できました。これで、openSUSE でも簡単にSamba の日本語マニュアルを参照できます。出来上がったものはSamba翻訳プロジェクト のダウンロードの所に置いておきました。 ….なのですが、openSUSE 15.2のSambaはバージョン4.11.x なので、作成したものとはバージョンが違ってました…. まあだいたいの所は同じですけれど。
参考URL https://qiita.com/t_nakayama0714/items/80b4c94de43643f4be51 https://qiita.com/mriho/items/b30b3a33e8d2e25e94a8
Category
Tips |
受け付けていません
By ribbon @
2020-12-08 00:02
仮想環境プラットフォームとしてとても便利なProxmox VEですが、バージョン6.3が出ています。
変更点は https://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_6.3 にありますが、順当に少しずつ機能が強化されてるという所でしょうか。あと今回は、Proxmox Backup Server との統合機能がメインかな。
地味にモダンなインタフェースになっているところもあります。例えば、今までプルダウンメニューで選択していたブート順の指定が、GUIのドラッグ&度ラップで出来るようになっていたりします。
日本語訳については最新版が反映されていないようです(画面ではテスト環境なので最新版になってますが、まだバグがありますね)。
そのほか、クラスタ回りとかストレージ回りで少しずつ改良がされているようです。ただ、openSUSE をゲストOSにしてテストするような場合にはあまり影響はないようです。
Category
Tips ,
サーバ ,
仮想化 |
受け付けていません
By ribbon @
2020-12-05 00:02
2020-12-08 コマンドの引数にコメントをいただき、一部修正しました。
openSUSE でインストール済みのパッケージ一覧を表示するときには、 rpm -qa コマンドを使っていました。しかし、Proxmox VE で使うコンテナイメージには rpm コマンドが含まれていませんでした。もちろんzypper コマンドで rpmコマンドを入れれば良いのですが、zypper コマンドだけで出来る方法がないか考えてみました。結果、
zypper –no-refresh se -i -t package
で代用することが出来ることが分かりました。結果はこんな感じになります。リモートリポジトリの検索を全部やめてしまえばローカルだけになる、と言う仕掛けです。
S | Name | Summary | Type —+———————————–+————————————————————————–+——– i+ | aaa_base | openSUSE Base Package | package i+ | apache2 | The Apache Web Server | package i+ | apache2-example-pages | Example Pages for the Apache 2 Web Server | package i | apache2-prefork | Apache 2 “prefork” MPM (Multi-Processing Module) | package i | apache2-utils | Apache 2 utilities | package i+ | apparmor-abstractions | AppArmor abstractions and directory structure | package i+ | apparmor-parser | AppArmor userlevel parser utility | package i | augeas | An utility for changing configuration files | package i | augeas-lenses | Official set of lenses for use by libaugeas0 | package i | bash | The GNU Bourne-Again Shell | package
By ribbon @
2020-12-04 00:02
結論から先に書きます。Proxmox VEのLXC コンテナでX をぅこかすことは出来ませんでした。
コンソールとしてSPICEクライアントやxterm.js も指定できるので、出来るかなと思ったのですが、そうは問屋が卸しませんでした。
Xはインストール出来ます。しかし、xinit で起動してみると、 /dev/tty0 がないと言ってきて起動しません。確かに、/dev/ 配下を見ると、
ls -l
total 0
crw–w—- 1 root tty 136, 0 Nov 20 10:10 console
lrwxrwxrwx 1 root root 11 Nov 20 10:03 core -> /proc/kcore
lrwxrwxrwx 1 root root 13 Nov 20 10:03 fd -> /proc/self/fd
crw-rw-rw- 1 nobody nobody 1, 7 Nov 11 08:28 full
lrwxrwxrwx 1 root root 25 Nov 20 10:03 initctl -> /run/systemd/initctl/fifo
lrwxrwxrwx 1 root root 28 Nov 20 10:03 log -> /run/systemd/journal/dev-log
drwxrwxrwt 2 nobody nobody 40 Nov 20 10:03 mqueue
crw-rw-rw- 1 nobody nobody 1, 3 Nov 11 08:28 null
crw-rw-rw- 1 root root 5, 2 Nov 20 2020 ptmx
drwxr-xr-x 2 root root 0 Nov 20 10:03 pts
crw-rw-rw- 1 nobody nobody 1, 8 Nov 11 08:28 random
drwxrwxrwt 2 root root 40 Nov 20 10:03 shm
lrwxrwxrwx 1 root root 15 Nov 20 10:03 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Nov 20 10:03 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Nov 20 10:03 stdout -> /proc/self/fd/1
crw-rw-rw- 1 nobody nobody 5, 0 Nov 15 23:26 tty
crw–w—- 1 root tty 136, 0 Nov 20 10:03 tty1
crw–w—- 1 root tty 136, 1 Nov 20 10:03 tty2
crw-rw-rw- 1 nobody nobody 1, 9 Nov 11 08:28 urandom
crw-rw-rw- 1 nobody nobody 1, 5 Nov 11 08:28 zero
となっていて、/dev/tty0 がありません。そこで以下を試してみました。
/dev/console を /dev/tty0 に ln しようとしたのですが、 Invalid cross-device link エラーで駄目 ln -s でやってみたのですが、xinit を動かしたときに parse_vt_settings: Cannot find a free VT: Inappropriate ioctl for device エラーで駄目 mknod tty0 c 136 0 でデバイスファイルを作ろうとしたのですが、 operation not permitted エラーで駄目
でした。これで行き止まり。
ちなみに、他のディストリビューションも見てみましたが、結果は同じ。そもそも tty0 がないところから同じでした。
というわけで、残念ながらコンテナ内でXを動かすのには失敗しました。
Category
openSUSE ,
Tips ,
サーバ ,
デスクトップ ,
仮想化 |
受け付けていません