openSUSE の Proxmox LXC コンテナで、一般ユーザで ping を使うと、

ping: socktype: SOCK_RAW
ping: socket: Operation not permitted
ping: => missing cap_net_raw+p capability or setuid?

となって、動きません。しかしこれは、https://blog.ssrf.in/post/ping-does-not-require-cap-net-raw-capability/ に書いてあるように、カーネルパラメータを調整することで、通常通り使えるようになります。実際に、

# sysctl -w net.ipv4.ping_group_range="0 65534"

と入力してみたら正しく動くようになりました。
なお、/usr/bin/ping にケーパビリティの設定を
setcap cap_net_raw+p /bin/ping
ですることでも解決します。これは https://hanaokaiwa.hatenablog.jp/entry/2024/06/17/120533 に情報がありました。

Proxmox には openSUSE のLXCコンテナイメージが用意されています。そのイメージを使って openSUSE をインストールしたときには、 aaa_base-extras パッケージを入れてください。そうしないと、既定で用意されているはずの bash の alias などが使えません。
最初、openSUSE LXC コンテナにログインしたとき、ll とかの alias コマンドが使えないのに気がつきました。.bashrc が未設定なのかなと思ったのですが、.bash にも .profile にも alias コマンドの定義がありません。/etc 配下のファイルも同じでした。実際に使える、openSUSE の環境で見てみても同じです。
調べた結果、/etc/profile.d/ 配下にalias 等の定義があったのでした。が、それらは aaa_base-extras でインストールされているのですね。LXC コンテナイメージには aaa_base-extras が入っていなかったために、alias 等の定義が抜けてしまったのでした。
普段特に気にせず使っている alias 定義のコマンド、実は親切にも openSUSE があらかじめ用意していた物だったというのに気がついた次第です。

この投稿は openSUSE Advent Calendar の 11日目です。そろそろ折返しです。

まれにスクリーンロックが固まってしまい、パスワードの入力画面が表示されいことがあります。このようなときに、ロックを解除する方法があります。使用するのは systemd に含まれているコマンド、loginctl です。

ロック画面が固まってしまったら、まず行うのが仮想コンソールでのログインです。Ctrl+Alt+F1を押すとログインプロンプトが表示されるので、ユーザー名とパスワードを入力してログインしてください。

つぎに、loginctl を実行すると、セッションの一覧が表示されます。

$ loginctl
SESSION  UID USER  SEAT  TTY
     22 1000 geeko seat0 tty1
      3 1000 geeko seat0 

2 sessions listed.

セッション 22 は、TTY が tty1 なので、現在操作している仮想コンソールです。固まっているのはセッション 3 です。

ロックを解除するには、以下のコマンドを実行します:

$ loginctl unlock-session 3

これでロックが解除できました。操作している仮想コンソールを Ctrl+D で抜けて、Ctrl+Alt+F7 を押すと、デスクトップに戻ることができます。

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

前回の記事 で、omegat-textra-plugin の最新版(v2022.2.2)が動かない、と詳解したのですが、実は、omegat-textra-plugin の公式サイトは github から codeberg に引っ越していたのでした。そちらの方では引き続き開発が行われていて、最新版は v2023.2.0 になっていたのでした。このバージョンをインストールすると正常に動きました。

coreberg への引越は、少なくとも2022年7月以降と思われます。そのため、各所に散在している omegat-textra-plugin の説明資料には古い開発サイトへのリンクしかないので、新しいサイトがあることに気がつきませんでした。

この記事は openSUSE Advent Calendar 2023 の5日目です。

openSUSE 15.6 にむけて、packaeges-i18n の翻訳を始めています。翻訳は Weblate を使うのですが、対話的にWebベースで作業をすると結構手間がかかります。量が多い場合は、翻訳対象データをダウンロードし、ローカルで作業した方が速くなります。
ローカルで作業するときには、オープンソースの翻訳支援ツール OmegaT を使うのが便利です。さらに、NICT が開発した機械翻訳システム textra を併用すると翻訳効率が大幅に向上します。そのために、OmegaT 用のプラグインも用意されています。

openSUSE の packages-i10n の翻訳は、しばらく前から上記の組み合わせで作業を行っていました。Weblateから未翻訳分の行を gettext po 形式でダウンロードして OmegaT で翻訳、仕上がったら po ファイルをアップロードすれば作業は終わります。textra がかなりきれいに訳してくれるので、1日あれば数百行の翻訳をこなす事ができます。今これを書いている時点でも、カテゴリ x (先頭が x で始まるパッケージ群) の追加翻訳数百行をだいたい1日で終えています。

しかし、環境を最新のWindows11にするため、OmegaTとプラグインも最新にした所、動作エラーとなり、原因を捜すのに苦労しました。結論から言うと、OmegaT用のプラグイン最新版(v2022.2.2) では Windows10/11 環境での OmegaT では動作しません。一つ前のバージョン v2022.2.1 では動きます。もしも、他の翻訳に OmegaT+textra を使う事を考えているのであれば注意してください。

less の終了時に画面を残したい

By ribbon @ 2022-12-24 00:10

FreeBSD ではできているのに、openSUSE で、less を使ってファイルやマニュアルを表示すると、less終了後に表示された画面が消えてしまいます。結果を見ながら別の作業をしたいときには少々不便です。調べた結果、この問題を解決するにはいくつかの方法があることが分かりました。

  1. オプション -X (または –no-init) を引数として指定して起動する。
    一番簡単なやり方です。
  2. 環境変数 LESS に -X オプションを指定しておく。
    あらかじめシェルの初期設定ファイル (.bashrc とか .cshrc とか) に、
    LESS=’-X’
    を指定しておきます。
  3. terminfo の値を変更する。
    http://kurokawh.blogspot.com/2015/01/linuxcygwin-less-man.html や、https://t9md.hatenadiary.org/entry/20080802/1217655775によると、terminfo の値を修正することによっても変更出来るそうです(この方法は試していません)。

ただし、アプリケーションによっては、画面を消すことを前提としている物もあるようなので、色々テストしながら設定をするのが良さそうです。

Dolphinで即座にコンソール

By Syuta Hashimoto @ 2022-12-22 08:29

この記事は openSUSE Advent Calendar 2022 の22日目です。

ファイルマネージャーにDolphinを使ってるのですが、開いているディレクトリでコンソールを即座に使う方法を紹介します。

方法

F4を押す

以上です。

普通のDolphinはこんな感じでコンソールはありません。

F4を押すと下部に開いているディレクトリをカレントディレクトリにしたコンソールが表示されます。

もちろん、コンソールとして使えます。

ウィンドウズでアドレスバーにcmdと打つとコマンドプロンプトが立ち上がるの、地味にいいなぁと思っていて、同等機能を探していたら見つけました。

最近はPDFの表示などをDolphinからすることが多いので、その横にあるテキストファイルをcodeで開きたい、とかいう時に重宝しています。

(と思ったのですが、ファイルを右クリックで「Visual Studio Codeで開く」が出てきましたね・・・)