Linux あれこれ

Linux 関連の備忘録です。

Kubuntu 20.04.2 LTS をUSB メモリにインストール〈H110〉

登録日: 2021-02-05 更新日: 2021-02-08

Kubuntu 20.04.2 LTS (Focal Fossa) をUSB メモリにインストールしました。その時の備忘録です。

-

実は最初に「Kubuntu 20.10」をインストールしたのですが、 残念ながら自分の古い(BIOS 立ち上げの)PC ではカーネル5.8 は NG です。 以前インストールしたGNOME と同じ ように、デスクトップ画面がうまく表示されません。

-

確実に動くと思われる、カーネル5.4 の「Kubuntu 20.04.2 LTS」を試すと、すんなりインストールできて普通に使えました。

-

-

Kubuntu 20.04.2 LTS のデスクトップ画面:

テキストエディタの「kate」を起動しています。 「kate」はウィンドウ内にコンソール表示ができます。テーマはダーク系にしました。

-

「Kubuntu 20.10」編にジャンプ

「Kubuntu 20.04」編にジャンプ

-

「目次」

先頭
    Kubuntu 20.04.2 LTS のデスクトップ画面:
-
    1. Kubuntu 20.10 をインストールしました
        Kubuntu 20.10 のダウンロード:
        チェックサム:
        ライブUSB メモリで立ち上げて、インストールしてみると、

    2. Kubuntu 20.04 をインストールしました
        Kubuntu 20.04.2 のダウンロード:
        チェックサム:
        インストール
            ライブUSB メモリで立ち上げるとブート時に停止:
            追記:
            ライブUSB メモリの立ち上げメニューが表示
            デスクトップ画面が表示
            インストーラ画面が表示
                日本語を選択
                キーボード: Japanese
                「通常のインストール」にチェック
                ディスクのセットアップ:
                レガシーBIOS 立ち上げの場合:
                UEFI 立ち上げの場合:
            画面の下の Boot loader:
            タイムゾーン:
            ユーザ情報:

        インストールの結果:
        再起動
            レガシーBIOS 立ち上げの場合:
            UEFI 立ち上げの場合:
                UEFI 立ち上げの場合の復旧:
            自分のPC(AMI BIOS、UEFI のみ対応)の場合:
            自分のPC(SeaBIOS、UEFI F/W置換)の場合:

        ログイン画面表示
        デスクトップ画面表示
        日本語入力:
            日本語オン/オフのキーを別々に割り当て:
            パネルのキーボードアイコンを減らしました:
            システム更新:

    3. パネルの時計の表示を変更:

    4. テキストエディタ「kate」の設定:
        kate のスキーマを新しく作成してみました:
        念の為に、作成したスキーマを保存:

    5. テキストエディタ「featherpad」のインストール:
        挿入する日付の書式:
        開いていたファイルを起動時に開く設定にします:
        ヘルプファイルの利用:
        ファイル履歴を消せない時:

    6. 「KolourPaint」のインストール
        起動:

    7. 「Okular」の利用:
        起動:
        ドキュメントの表示:
        ドキュメントの変換:

    8. 「qpdfview」のインストール
        qpdfview を日本語化:
            1. 翻訳ツールのインストール:
            2. ソースのダウンロード:
            3. 好みの翻訳(言い回し)に編集:
            4. コンパイル:
            5. 配置:
            6. 動作確認:
-
    まとめ

-


1. Kubuntu 20.10 をインストールしました

-


Kubuntu 20.10 のダウンロード:

Kubuntu 20.10 ダウンロード:

-

チェックサム:

$ sha256sum kubuntu-20.10-desktop-amd64.iso
8518739255ea4a89bcc4ca9240d6ef0c83e6991a0096e7943f75bb7a620cc56e  kubuntu-20.10-desktop-amd64.iso

-


ライブUSB メモリで立ち上げて、インストールしてみると、

1. ライブUSB メモリの立ち上げメニューで、1番上の「Kubuntu」だと、「Welcome」画面後に、 画面真っ暗でカーソルのみ表示されたまま、デスクトップ画面が表示されません。

→カーソルを動かすと、カーソルの形状が変化するので、表示は見えませんが何かしらのアプリが起動されています。

-

2. 立ち上げメニューで、2番めの「Kubuntu (Safe graphics)」を選ぶと、 画面の解像度は低くなります(文字が大きく表示)が、デスクトップ画面が立ち上がりました。 インストーラを起動して日本語の選択もできます。

-

3. ストレージの設定では、EFI パーティションが作成されるのがデフォルトのようです。

ここで、不具合と思える仕様(システムにEFI パーティションはひとつのみ許可)があり、EFI パーティションが複数存在(/dev/sda を含めて)すると、EFI パーティションの選択が表示されないこと、および、BIOS 立ち上げなのにEFI パーティションを欲するので(インストール完了する直前に)「grub-install」のエラー(EFI機能なしかファイルなし)となります。

GRUB を /dev/sdc にインストールできません。
'grub-install /dev/sdc' の実行に失敗しました。
これは致命的なエラーです。

UEFI 立ち上げが前提です。表示とは裏腹に固定的?にEFI パーティションとして /dev/sda のパーティションが使われるみたい。 うまく行くときは、/dev/sdc ではなく、/dev/sda のEFI パーティションが/boot/efi にマウントされていました。

インストーラの中で、強制的にEFI パーティション指定の代わりに「fat32 で/boot/efi のマウントポイント」にすると、/dev/sda のEFI パーティションが存在する場合、同じマウントポイントがあると拒否され、前に進めません。

-

4. エラーで停止しましたがインストールは完了していました。

BIOS 立ち上げのPC だと、ブートローダーは作られており、ログイン画面までは立ち上がりました。

UEFI 立ち上げのPC だと、ファイルが見つからずに立ち上がりませんでした。

-

5. ログインできても、画面真っ暗のまま、デスクトップ画面は表示されません。

  • Ctrl+Alt+F2 でコンソール画面に切り替えするとコマンド操作はできます。日本語フォントはひし形に化けてます。

-

6. 自分のPC では、インストールできても、デスクトップ画面が表示されないので使えません。使用を断念。

→たぶん、最近のPC ならばデスクトップ画面の表示の問題は出ないと思われます。逆に、grub-install の問題は多いかも…。

-


2. Kubuntu 20.04 をインストールしました

  • カーネルは5.4 になります。

  • Kubuntu 20.04 は、2023年4月までサポートされます。

-


Kubuntu 20.04.2 のダウンロード:

Kubuntu 20.04.2 LTS 2021-02-04 2.5G

-

チェックサム:

$ sha256sum kubuntu-20.04.2-desktop-amd64.iso
adab69e0237e3cc8592bd08f6dfd12ea8ffc8af6daba659287ce65fd91e6a08d  kubuntu-20.04.2-desktop-amd64.iso

-


インストール

-

ライブUSB メモリで立ち上げるとブート時に停止:

  • 自分の古いPC(SeaBIOS、レガシーBIOS に置換) は、Gfxboot に対応していません。

(Graphic card: Intel Corporation Haswell-ULT Integrated Graphics Controller)

-

Graphics initalization failed
Error Setting up gfxboot
boot: 

→「Tab」キー

→「live」と入れて、Enter

-

追記:

レガシーBIOS から、UEFI 立ち上げのFW に書き換えて(次回の投稿)試すと、上記の立ち上げ時のエラーは表示されなくなりました。gfxboot の機能(カラフルな青画面)はEFI の立ち上げ画面(白黒)では使われていないので当然のことでした。

-

ライブUSB メモリの立ち上げメニューが表示

1番上の「Kubuntu」を選んで Enter

「Welcome」画面にて、日本語を選択

Kubuntu を試す」をクリック

-

デスクトップ画面が表示

インストール先となるUSB メモリ(fat32 でフォーマット済)を挿入。

「Install Kubuntu 20.04.1 LTS」アイコンをダブルクリック

-


インストーラ画面が表示

-

日本語を選択

-

キーボード: Japanese

→「続ける」

-

「通常のインストール」にチェック

Kubuntu のインストール中にアップデートをダウンロードする」にチェック

「グラフィックとWi-Fi ハードウェア...」にチェック

→「続ける」

-

ディスクのセットアップ:

Kubuntu をどこにインストールしますか?

「sdc1」(USB メモリ)が選ばれていることを確認

「手動」にチェック

→「続ける」

-

「/dev/sdc1 fat32」を選んで、

「削除」ボタン

-

レガシーBIOS 立ち上げの場合:

「空き領域」を選ぶと、「新しいパーティションの作成」画面表示

基本パーティション
62742
この領域の始点
ext4 ジャーナリングファイルシステム
Mount Point 「/」を選択

→「OK」

-

UEFI 立ち上げの場合:

1. 「空き領域」を選ぶと、「新しいパーティションの作成」画面表示

基本パーティション
512 MiB
この領域の始点
EFI パーティションシステム(マウントポイントは指定できません)

→「OK」

-

2. 残りの「空き領域」を選ぶと、「新しいパーティションの作成」画面表示

基本パーティション
残りすべて
この領域の始点
ext4 ジャーナリングファイルシステム
Mount Point 「/」を選択

→「OK」

-

画面の下の Boot loader:

ブートローダをインストールするデバイス「/dev/sdc」を選択

→「インストール」

「ディスクに変更を書き込みますか?」画面表示

→「sdc」であることを確認して、

→「続ける」

-

(インストールと並行して、質問に答えます)

-

タイムゾーン:

どこに住んでいますか?

地域: 「アジア」、 タイムゾーン: 「日本時間」

→「続ける」

-

ユーザ情報:

あなたの情報を入力してください

あなたの名前:

ユーザー名の入力:

パスワードの入力: (2回)

コンピューターの名前:

「ログイン時にパスワードを要求する」にチェック

→「続ける」

-

しばらく時間がかかります。

→インストール完了

-


インストールの結果:

  • レガシーBIOS 立ち上げの場合は、正常に終了。

  • UEFI 立ち上げの場合は、「grub-install」でエラーが発生。

-

再起動

ライブUSB メモリだけ抜いて、立ち上げ

-

レガシーBIOS 立ち上げの場合:

正常に立ち上がりました。

-

UEFI 立ち上げの場合:

ブート時にファイルが見つからずに立ち上がりません。

-

UEFI 立ち上げの場合の復旧:

1. ライブUSB メモリで立ち上げてから、インストール先のUSB メモリを挿入(/dev/sdc)

2. firefox ブラウザを立ち上げて「grub boot-repair」で検索。

参考:

UbuntuのGRUBブートローダーをBoot Repairで修復する手順

3. 端末を立ち上げて、上記を参考に「boot-repair」をインストール:

$ sudo add-apt-repository ppa:yannubuntu/boot-repair
$ sudo apt install -y boot-repair

4. メニュー →「アプリケーション」→システム →「Boot Repair」にて、「Boot Repair」を起動

「高度なオプション」→「GRUB の位置」タブ

  • デフォルトで起動するOS: 「sdc2(Ubuntu 20.04.2)」

  • 「別パーティションに /boot/efi を構成」にチェック、「sdc1」を選択

→「Apply」

sdc1/EFI/ubuntu/shimx64.efi のファイルが使われると表示されましたが、 実際は、/boot/efi/EFI/ubuntu/shimx64.efi となるみたい。

5. シャットダウン

-

6. 立ち上げ

-

自分のPC(AMI BIOSUEFI のみ対応)の場合:

USB メモリのEFI パーティションの認識には、なぜか電源コンセントの抜き差しが必要です。

F11+電源オン

ブートデバイスEFI パーティション)の選択メニューが表示

→「USB: SanDisk Extreme」を選択

-

自分のPC(SeaBIOS、UEFI F/W置換)の場合:

USB メモリのEFI パーティションから起動させます。

Esc +電源オン(一瞬うさぎの画面表示)

Boot Menu →「USB: SanDisk Extreme」を選択

Enter

-


ログイン画面表示

-


デスクトップ画面表示

→システム更新が来ています。

-


日本語入力:

  • 何もしなくても「半角/全角」キーを押すだけで、日本語オン/オフができ、日本語入力できました。
$ apt list fcitx-mozc
一覧表示... 完了
fcitx-mozc/focal,now 2.23.2815.102+dfsg-8ubuntu1 amd64 [インストール済み]

→「fcitx-mozc」がインストールされています。

-

-


日本語オン/オフのキーを別々に割り当て:

ひげの付いたキーボードアイコンを右クリック→「Configure Input Method」→「入力メソッド - システム設定モジュール」画面

「全般の設定」タブ→下にある「拡張オプションの表示」にチェック

Activate input methid の左側のボックスをクリック→「ひらがな」キー

Inactivate Input Methid の左側のボックスをクリック→「無変換」キー

→「適用」

→「OK」

-


パネルのキーボードアイコンを減らしました:

日本語オンにしてから、「Hide あ」(Hide JP) だけ残して、以下のアイコンを右クリックで選んで消しました:

- Hide Toggle Virtual Keyboard:「仮想キーボードの表示切り替え」
- Hide Fcitx
- Hide Mozc
- Hide ツール

表示:

-


システム更新:

→システム更新が来ていたので、GUI 操作で実行。

多くの更新があるときは、コマンドで実行したほうが早いです:

$ sudo apt update
$ sudo apt upgrade

-

再起動

-

$ uname -r
5.4.0-65-generic

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

$ cat /var/log/installer/media-info
Kubuntu 20.04.1 LTS "Focal Fossa" - Release amd64 (20200731)

-


3. パネルの時計の表示を変更:

パネルの右下の時計を右クリック→「デジタル時計を設定」

「Show date」にチェック

Date format:

「Custom」を選んでから、

「yyyy-MM-dd ddd」

→「適用」

→「OK」

   16:22
2021-02-05 金

表示:

-


4. テキストエディタ「kate」の設定:

「kate」を起動します。

設定→「Color Theme」→「Breeze Dark」

→ウィンドウ枠がダーク系の色使いに変わりました。

-

設定→「Kate を設定」→「表示」タブ

  • Whitespaces: None →「All」に変更

  • 「字下げを示す線を表示する」にチェック

-

「フォントと色」タブ

Kate のデフォルトのスキーマ: 「Breeze Dark」を選択

→「適用」

→「OK」

→ウィンドウの中がダーク系の色使いに変わりました。

-

kate のスキーマを新しく作成してみました:

設定→「Kate を設定」→「フォントと色」タブ

スキーマ: 「Breeze Dark」を選択 →「Export...」

→ファイルの保存先: 「~/ダウンロード/Kateのスキーマ/Breeze Dark.kateschema」→「保存」

-

スキーマ: 「新規」をクリック

名前: 「Custom」(任意の名前)

→「OK」

-

設定→「Kate を設定」→「フォントと色」タブ

スキーマ: 「Custom」を選択 →「Import...」

→ファイル指定: 「~/ダウンロード/Kateのスキーマ/Breeze Dark.kateschema」→「開く」

和訳:

スキーマをどのようにインポートしますか?

- 現在のスキーマを置き換えますか?

- 既存のスキーマ (BreezeDark) を置き換えます

- 新しいshcemaとしてインポート: 

→「Custom」が選択されていることを確認して、

一番上の「Replace current schema?」にチェック→「OK」

-

Kate のデフォルトのスキーマ: 「Custom」を選択

→「適用」

→「OK」

-

念の為に、作成したスキーマを保存:

-

設定→「Kate を設定」→「フォントと色」タブ

スキーマ: 「Custom」を選択 →「Export...」

→ファイルの保存先: 「~/ダウンロード/Kateのスキーマ/Custom.kateschema」→「保存」

→「OK」

-

  • ちなみに、「kate」だとセキュリティの問題から「sudo」での起動ができないようです。
$ sudo kate /usr/share/featherpad/help_ja_JP
Executing Kate with sudo is not possible due to unfixable security vulnerabilities.

-


5. テキストエディタ「featherpad」のインストール:

  • sudo で使えるテキストエディタをインストールしておきます。

  • Qt5 アプリなのでKubuntu とは相性がいいはずです。

  • featherpad は、Markdown のハイライトが見やすいのが特徴です。 背景を黒(ダーク系)に設定すると空白(半角スペース)やTab が見やすいです。

$ sudo apt install featherpad
:
以下のパッケージが新たにインストールされます:
  featherpad featherpad-l10n

$ featherpad --version
FeatherPad 0.12.1

→日本語化されています。このバージョンでは日本語化するためのパッケージが本体と分離されています。

-

挿入する日付の書式:

オプション→設定→「テキスト」タブ

日付と時刻の書式:

yyyy-MM-dd hh:mm

-

開いていたファイルを起動時に開く設定にします:

オプション→設定→「ファイル」タブ

「最後のウィンドウのファイルを開いて起動する」にチェック

→「閉じる」

-

ヘルプファイルの利用:

ヘルプファイルはテキストファイルそのものです。Ctrl+H ですぐに呼び出せ、色違いで、書き込み保護されていることを利用して、ヘルプ以外の用途(備忘録、よく使うコマンドの貼り付け用)にも使えます。

$ sudo featherpad /usr/share/featherpad/help_ja_JP

→バージョン 0.15.0 からは「help_ja」に変更されているので注意。

-

ファイル履歴を消せない時:

~/.config/featherpad/fp.conf を削除か、リネーム

-


6. 「KolourPaint」のインストール:

  • 投稿用の画像を簡単に加工できるのでよく使います。Qt アプリです。
$ sudo apt install kolourpaint

-

起動:

メニュー →「アプリケーション」→グラフィックス →「KolourPaint」

もしくは、

画像ファイルを右クリック→「KolourPaint」

-


7. 「Okular」の利用:

  • 単なるPDF ビュワーではありません。ドキュメントビュワーと言えます。ドキュメントの変換ができるのも便利です。

-

起動:

メニュー →「アプリケーション」→オフィス →「Okular」

-

ドキュメントの表示:

ファイルマネージャで「Markdown」ファイルを右クリック→「Okular で開く」

→ブログの編集画面や、PDF ファイルを開いたように表示できます。

-

ドキュメントの変換:

ファイル→エクスポート

  • プレーンテキスト

  • PDF

  • ODF

  • HTML

-


8. 「qpdfview」のインストール:

  • 個人的によく使うPDF ビュワーです。 表紙付きの見開きページが表示できます。そして、右とじ、左とじに対応(読む方向を指定)できます。 両方の機能があるビュワーは少ないです。バラバラの書式になる自炊本の閲覧に便利。
$ sudo apt install qpdfview

-

qpdfview を日本語化:

メニューを日本語化したほうが使いやすいです。

-

1. 翻訳ツールのインストール:

$ sudo apt install qttools5-dev-tools
:
以下のパッケージが新たにインストールされます:
  libclang1-10 libllvm10 libqt5designercomponents5 qdoc-qt5 qhelpgenerator-qt5
  qt5-assistant qtattributionsscanner-qt5 qttools5-dev-tools

$ which lrelease
/usr/bin/lrelease

-

2. ソースのダウンロード:

Downloads 「qpdfview-0.4.18.tar.gz 」

日本語の翻訳に貢献された方々に感謝 !!

右クリック→「展開」→「ここにアーカイブを展開」→「qpdfview-0.4.18」フォルダが作成されます。

-

3. 好みの翻訳(言い回し)に編集:

$ cd ~/ダウンロード/qpdfview-0.4.18/translations/

$ featherpad qpdfview_ja.ts

→例えば、ブックマークなど

-

4. コンパイル:

$ lrelease qpdfview_ja.ts

-

5. 配置:

$ sudo cp qpdfview_ja.qm /usr/share/qpdfview/qpdfview_ja.qm

-

6. 動作確認:

メニュー →「アプリケーション」→オフィス →「qpdfview」

-

日本語化された画面:

-

-


まとめ

Kubuntu 20.04」は重たいイメージがありましたが、思っていたよりも軽い上に、アプリも安定しています。

他のディストリビューションだと、Qt アプリで日本語入力関連で問題があったりしますが、今のところ使えてます。 最初から「fcitx-mozc」がインストールされており、検証されているのが大きいと思われます。

-

USB メモリにインストールする場合で問題があっても、簡単に修復できる「Boot Repair」ツールがあるので安心です。 この問題は、Kubuntu だけでなくUbuntu でも発生しているようです。検索するとけっこうな数がヒットしました。 どちらかというと、BIOS 立ち上げのほうがすんなりインストールが完了します。

LTS 版なので、2023年4月までのサポートなのが利点。しばらくは使えそう。

-

-


目次

先頭

-


-

Lubuntu 20.10 にて、GitHub のプルリクエストで「SSH」接続を使う準備を行う〈H109〉

登録日: 2021-01-29 更新日: 2021-01-29

「Lubuntu 20.10」をUSB メモリにインストール しました。

前回 は「Lubuntu 20.10」にて「Update Notifier」と「Apply Full Upgrade」の国際化をプルリクエストしました。そのとき「git clone」でのURL 指定は、いつものように「HTTPS」のURL を使いました。(「HTTPS」で接続)

-

今年の夏あたり、GitHub の認証方式の強化があるようです。 それに伴い、端末からの「git push」時に、GitHub のアカウントのパスワードを使っての認証が使えなくなりそう。

「git clone」で「SSH」接続のURL を使うと、今まで通りにプルリクエストができるようなので、 「SSH」接続での準備のやり方を調べてみました。その備忘録です。

-

ちなみに、ダウンロード目的の「git clone」など、プルリクエストをしない使い方なら影響はなさそう。

-

-

「目次」

-


しばらくすると、Git 操作の認証でアカウントパスワードが使えなくなるみたい:

前回、端末から「git (2.27.0)」コマンドを使用してパスワード入力を伴う「git push」を使いましたが、その操作についての注意勧告のメールが来ました。

2021年8月13日以降、Git のパスワードを使用した基本認証は廃止され、まもなく機能しなくなるらしく、 アカウントの「2要素認証」を有効にしなさいとのこと。

Token authentication requirements for Git operations

ちなみに、Manjaro だと:

$ git --version
git version 2.30.0

→「Lubuntu 20.10」のgit のバージョンは低いようです。アップするとコマンドのパスワード入力時に「個人アクセストークン」を入れられるようになるのかな。

-

影響を受けるワークフロー

-

推奨される回避策:

  • HTTPS(推奨)←GUI での場合?

  • SSHキーを使用

  • 2要素認証: テキストメッセージ(ケータイによるSMS メッセージ受信)によるコード入力

  • 2要素認証: スマホにTOTP アプリをインストール

  • 有料プラン

-

とりあえずは、SSH キーをパソコンに追加登録しておくと安心かな:

GitHub に SSH で接続する

-

SSH キーがすでに存在するかを確認:
$ ls -1 ~/.ssh
ls: '/home/ubn/.ssh' にアクセスできません: そのようなファイルやディレクトリはありません

ファイルが存在する場合:

$ ls -1 ~/.ssh
id_ed25519
id_ed25519.pub
known_hosts

-

別のSSH キーを使いたいか、まだ持っていない場合は、新しいSSH キーを生成します:
$ ssh-keygen -t ed25519 -C "GitHub のメールアドレス"

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/ubn/.ssh/id_ed25519): ←(Enter キー)デフォルトの場所にファイルを保存
Created directory '/home/ubn/.ssh'.
Enter passphrase (empty for no passphrase):       ←(パスワード入力)
Enter same passphrase again:                       ←(パスワード入力)
Your identification has been saved in /home/ubn/.ssh/id_ed25519
Your public key has been saved in /home/ubn/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxx GitHubのメールアドレス
The key's randomart image is:
+--[ED25519 256]--+
|             o*=.|
|      E   . o=o*+|
|       . ..+ooB+o|
|        ....o.=O=|
|        S   +o=B=|
|           . ===.|
|            =o+.o|
|             =...|
|              ...|
+----[SHA256]-----+

→~/.ssh に入力したメールアドレスをラベルに使った新しい SSH キーが作成されます。

-

ssh-agent を開始しておきます:
$ eval "$(ssh-agent -s)"
Agent pid 2515

-

SSH プライベートキーを ssh-agent に追加:
$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/ubn/.ssh/id_ed25519:        ←(パスワードを入力)
Identity added: /home/ubn/.ssh/id_ed25519 (GitHubのメールアドレスが表示)

-

SSH キーを GitHub アカウントに追加

-

SSH 公開鍵」を表示:
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAxxxxxxxx〜xxxxxxxxxxxxxxx/h GitHubメールアドレス

→表示された「SSH 公開鍵」を範囲選択して、右クリック→「コピー」としてクリップボードにコピーします:

-

GithUB の任意のページでサインイン

GithUB の任意のページをブラウザで開きます。

ページ右上の「横3本」をクリック→「Sign in」→「Sign in to GitHub」画面

→登録している「Eメールアドレス」と「パスワード」を入力して、サインインします。

→サインインされると、画面右上に自分が登録した、自分のアイコン(アバター)が表示されます。

-

右上の自分のアイコン(アバター)をクリック

「Settings」→「Public profile」画面

左側の「Account settings」にある「SSH and GPG keys」をクリック

右の緑色の「New SSH key」または 「Add SSH key」をクリック

SSH keys / Add new」画面

[Title]に、使っているパソコンがわかりやすい説明を追加:

Manjaro Xfce GitHub

[Key]にて、右クリック→「貼り付け」で、クリップボードにコピーした「キー」を貼り付け:

ssh-ed25519 AAAxxxxxxxx〜xxxxxxxxxxxxxxx/h GitHubのメールアドレス

[Add SSH key] をクリック

-

SSH 接続をテストします

SSH 接続をテストする

SSH キーをセットアップして GitHub のアカウントに追加した後の接続をテストします。

$ ssh -T git@github.com

The authenticity of host 'github.com (52.69.186.44)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

→表示されるメッセージのフィンガープリントがGitHubRSA公開鍵フィンガープリントと一致することを確認します。

  • GitHub の公開鍵のフィンガープリントは次のとおりです。
    SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 (RSA)
    SHA256:br9IjFspm1vxR3iA35FWE+4VTyz1hYVLIE2t1/CeyWQ (DSA)

→含まれている場合は、yesと入力します。

「yes」

Warning: Permanently added 'github.com,13.114.40.48' (RSA) to the list of known hosts.
Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.

和訳:

警告:既知のホストのリストに「github.com、13.114.40.48」(RSA)を恒久的に追加しました。 こんにちは「ユーザー名」! 認証に成功しましたが、GitHub はシェルアクセスを提供していません。

→Hi ユーザー名! のメッセージが表示されれば公開鍵の設定はOK で、SSH 接続もできました。

-


端末から、SSH 接続を使ってみます:

参考:

(初心者向け)GitHubアカウントにターミナルでログイン(SSH接続)する

-

Git の初期設定:
$ git config --global user.name "githubに登録したユーザー名"
$ git config --global user.email "githubに登録したメールアドレス"

-

Git の初期設定の確認:
$ git config -l

user.email=入力したメールアドレス
user.name=入力したユーザー名

-

URL の与え方で「SSH」で接続するか、「HTTPS」で接続するかを指定します。

-

「git clone」時に、HTTPS で接続したい場合:
  • 指定するURL は github のサイトにて、HTTP をクリック、右のボタンでコピーできます。
$ cd ~/Git2/
[~/Git2]$ git clone https://github.com/ユーザー名/lubuntu-update-notifier.git

→push する時にユーザー名とパスワードを求められるので、github のユーザー名とログインパスワードを入力します。

-

「git clone」時に、SSH で接続したい場合:
  • 指定するURL は github のサイトにて、SSH をクリック、右のボタンでコピーできます。
$ cd ~/Git2/
$ git clone git@github.com:ユーザー名/lubuntu-update-notifier.git

→push する時にパスワードを求められるので、SSH の公開鍵を作成した時のパスワードを入力します。

-

1. 後から、「git push」などのリモートリポジトリとのやりとりをSSH 接続に変更したいとき:
$ git remote set-url origin git@github.com:ユーザー名/lubuntu-update-notifier.git

-

2. 後から、「git push」などのリモートリポジトリとのやりとりをHTTPS 接続に変更したいとき:
$ git remote set-url origin https://github.com/ユーザー名/lubuntu-update-notifier.git

-

正しく登録できたかの確認:

$ cd ~/Git2/
$ git remote -v

-

-


まとめ

GitHub でプルリクエストすることも少なくなりました。 ただ、自分のアカウントページにpush することはありそうなので、備忘録として残しました。

-

-


目次

先頭

-


-

Lubuntu 20.10 の「Update Notifier」と「Apply Full Upgrade」の国際化をプルリクエスト〈H108〉

登録日: 2021-01-21 更新日: 2021-01-29

「Lubuntu 20.10」をUSB メモリにインストール しました。

前回 は「Lubuntu 20.10」にてシステム更新を通知する「Update Notifier」と「Apply Full Upgrade」を独自に国際化対応してみました。

調べると、公式の GitHub でも、国際化は進んでいました:

lubuntu-team/lubuntu-update-notifier - GitHub

やり方も翻訳対象にする文字列も少し違いました。 少しでも貢献できればと前回の成果を反映できるかトライして、プルリクエストしました。

-

GitHub でのプルリクエストのやり方の例を後半に記述しました。 git 操作は奥が深くてリスクが高いので、記憶が薄れて忘れないための個人的な備忘録です。

git 操作での、下手な操作は自分だけでなく、他の人にも影響を与えるリスクがあることに注意です。 自己責任です。

-

「目次」

-

日本語化された「Update Notifier」画面:

↓ (呼び出し)

-

日本語化された「Apply Full Upgrade」画面:

-


GitHub での国際化:

参考:

lubuntu-team/lubuntu-update-notifier - GitHub

-

git clone で使うアドレス:

https://github.com/lubuntu-team/lubuntu-update-notifier.git

-

プログラム処理の流れ:

data/upg-notifier-autostart.desktop
↓
/usr/libexec/lubuntu-update-notifier/lubuntu-upg-notifier.sh
↓
/usr/lib/update-notifier/apt-check  ←(別パッケージ)
↓
/usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py
↓
(/usr/share/applications/upg-apply.desktop) ←(メニューに登録あり)
↓
/usr/bin/lubuntu-upgrader

-


GitHub の「lubuntu-team/lubuntu-update-notifier」のソースをダウンロード:

-

1. 作業用に、~/Git/ フォルダ作成(任意)

$ cd
$ mkdir Git

-

2. git があるか確認:

$ git --version
git version 2.27.0

-

3. ソースをダウンロード:

$ cd ~/Git/

[~/Git]$ git clone https://github.com/lubuntu-team/lubuntu-update-notifier.git

[~/Git]$ cd ~/Git/lubuntu-update-notifier/

[~/Git/lubuntu-update-notifier]$ ls -a
.       helper                   po
..      lubuntu-notifier.py      resources
.git    lubuntu-update-notifier  setup.cfg
data    lubuntu-upg-notifier.sh  setup.py
debian  lubuntu-upgrader         translation_helper

→git コマンドを使う場合、「.git 」があるのがポイントです。 git コマンドを使うときに重要になるので、コマンドプロンプトにワーキングディレクトリ名も表記。

-


「data/upg-apply.desktop」への反映:

$ cp ~/Git/lubuntu-update-notifier/data/upg-apply.desktop ~/ダウンロード/翻訳/upg-apply.desktop
$ featherpad ~/ダウンロード/翻訳/upg-apply.desktop

下記の2行を追記:

Name[ja]=すべてのアップグレードの適用 (Apply Full Upgrade)
Comment[ja]=すべてのアップグレードの検索と適用

[Desktop Entry]
Exec=lxqt-sudo /usr/bin/lubuntu-upgrader --cache-update --full-upgrade
Name=Apply Full Upgrade
Name[ja]=すべてのアップグレードの適用 (Apply Full Upgrade)
GenericName=Apply Full Upgrade
Comment=Search and Apply Full Upgrade
Comment[ja]=すべてのアップグレードの検索と適用
Icon=system-software-update
Type=Application
Version=0.1
Categories=System;Settings;
Keywords=upgrade;update
Terminal=false

-


「lubuntu-notifier.py」への反映:

-

~/Git/lubuntu-update-notifier/lubuntu-notifier.py の差分の確認:

  • Lubuntu 20.10 を国際化したときに比べ、どれくらい修正がされているかを確認:
$ diff ~/ダウンロード/翻訳/lubuntu-notifier.py-ORG ~/Git/lubuntu-update-notifier/lubuntu-notifier.py

100,103c116,127
<                     pkg_upgrade.append(p.name)
<             text = "There are upgrades available. Do you want to do a system"
<             text += " upgrade?\nThis will mean packages could be upgraded,"
<             text += " installed, or removed."
---
>                     pkg_upgrade.append([p, self.depcache.get_candidate_ver(p)])
>             text = _("There are upgrades available. Do you want to do a system"
>                      " upgrade?")
>             text += "\n"
>             text += _("This will mean packages could be upgraded, installed or"
>                       " removed.")
>             if self.security_upgrades > 0:
>                 text += "\n" + str(self.security_upgrades)
>                 if self.security_upgrades == 1:
>                     text += _(" is a security upgrade.")
>                 else:
>                     text += _(" are security upgrades.")

197a237,242
>     localesApp = "lubuntu-update-notifier"
>     localesDir = "/usr/share/locale"
>     gettext.bindtextdomain(localesApp, localesDir)
>     gettext.textdomain(localesApp)
>     _ = gettext.gettext
> 

→上記は表示された差分を前回作成の「lubuntu-notifier-CHG.py」と比較して翻訳対象の同じ文字列を除去したものです。

少しだけ翻訳対象の文字列が増えていました。翻訳しやすい位置に同じように行分割されています。国際化のやり方は少し違い、ドメイン名は「lubuntu-update-notifier」です。

  • これなら、翻訳対象の追加をする必要はないみたい。

-


「lubuntu-upgrader」への反映:

-

1. 「~/Git/lubuntu-update-notifier/lubuntu-upgrader」の差分の確認:

$ diff ~/ダウンロード/翻訳/lubuntu-upgrader-ORG ~/Git/lubuntu-update-notifier/lubuntu-upgrader

- 下記の「of」は翻訳しないでおくのがベターかも

186,187c186,187
<             if self.detailText != "Fetching " + str(
<                     current_items) + " of " + str(total_items):
---
>             if self.detailText != _("Fetching") + str(
>                     current_items) + " " + _("of") + " " + str(total_items):

189,190c189,190
<                     "Fetching " + str(current_items) + " of "
<                     + str(total_items)
---
>                     _("Fetching") + " " + str(current_items) + " " + _("of") +
>                     " " + str(total_items)

199,200c199,200
<             if self.detailText != "Downloaded " + str(
<                     current_items) + " of " + str(total_items):
---
>             if self.detailText != _("Downloaded") + " " + str(
>                     current_items) + " " + _("of") + " " + str(total_items):

202,203c202,203
<                     "Downloaded " + str(current_items) + " of "
<                     + str(total_items)
---
>                     _("Downloaded") + " " + str(current_items) + " " +
>                     _("of") + " " + str(total_items)

-

378a379,384
>     localesApp ="lubuntu-update-notifier"
>     localesDir ="/usr/share/locale"
>     gettext.bindtextdomain(localesApp, localesDir)
>     gettext.textdomain(localesApp)
>     _ = gettext.gettext
> 

→上記は、表示された差分を前回作成した「lubuntu-upgrader-CHG.py」と比較して翻訳対象の同じ文字列を除去したものです。

国際化のやり方は違い、ドメイン名は「lubuntu-update-notifier」です。 日本語での翻訳が難しい対象が含まれています。 「of」は前後の語順が固定だと、そのまま「の」に翻訳されると意味が反転します。 ここでは「が実行中でそれが含まれるのは」の意味。「 / 」に翻訳したけどどうなのかな。 翻訳時に前後が見えないかもしれないので、再び「の」に戻されるとつらいところ。

-

2. 先頭のライセンス部分を表示:

$ cat ~/Git/lubuntu-update-notifier/lubuntu-upgrader

#!/usr/bin/python3
# coding=utf-8

# Copyright (C) 2019 Hans P. Möller <hmollercl@lubuntu.me>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

-

3. 翻訳対象を増やしました:

$ cp ~/Git/lubuntu-update-notifier/lubuntu-upgrader ~/ダウンロード/翻訳/lubuntu-upgrader-Git-ORG
$ cp ~/Git/lubuntu-update-notifier/lubuntu-upgrader ~/ダウンロード/翻訳/lubuntu-upgrader-Git

$ ls ~/ダウンロード/翻訳/lubuntu-upgrader-Git*          
/home/ubn/ダウンロード/翻訳/lubuntu-upgrader-Git                     
/home/ubn/ダウンロード/翻訳/lubuntu-upgrader-Git-ORG

$ featherpad ~/ダウンロード/翻訳/lubuntu-upgrader-Git

-

下記の差分を見ながら修正:
$ diff ~/Git/lubuntu-update-notifier/lubuntu-upgrader ~/ダウンロード/翻訳/lubuntu-upgrader-Git  ←(実行不要)

239c239
<         self.errors.append("Eror Code: " + str(error_code))
---
>         self.errors.append("Error Code: " + str(error_code))
243,244c243,244
<         print("ECode: " + str(error_code) + "\n")
<         print("EDetail: " + error_details + "\n")
---
>         print(_("ECode: ") + str(error_code) + "\n")
>         print(_("EDetail: ") + error_details + "\n")
269c269
<             print("Warning: install transaction not completed successfully:"
---
>             print(_("Warning: install transaction not completed successfully:")
313c313
<             print("Status Details:" + details)
---
>             print(_("Status Details:") + details)
345c345
<             print("Warning: install transaction not completed successfully:"
---
>             print(_("Warning: install transaction not completed successfully:")

-


「po/lubuntu-update-notifier.pot」への反映:

「translation_helper」ファイルに書かれた内容を参考にして、2つのPython プログラムをまとめてPOT ファイル「po/lubuntu-update-notifier.pot」を作成します。

-

1. 「.pot ファイル」の作成:

$ cd ~/ダウンロード/翻訳/
$ mkdir translations
$ cd ~/ダウンロード/翻訳/translations/
$ mkdir ja

$ cp ~/Git/lubuntu-update-notifier/lubuntu-notifier.py lubuntu-notifier.py
$ cp ~/ダウンロード/翻訳/lubuntu-upgrader-Git lubuntu-upgrader
$ ls
lubuntu-notifier.py  lubuntu-upgrader  ja

$ xgettext lubuntu-upgrader lubuntu-notifier.py --language=Python
$ mv messages.po ja/lubuntu-update-notifier.pot
$ ls ja/
lubuntu-update-notifier.pot

→2つのPython プログラムをまとめてPOT ファイル「po/lubuntu-update-notifier.pot」を作成。

-

2. 「.pot ファイル」の修正:

$ cd ~/ダウンロード/翻訳/translations/ja/
$ featherpad lubuntu-update-notifier.pot

17 行目を修正:

"Content-Type: text/plain; charset=CHARSET\n"

"Content-Type: text/plain; charset=UTF-8\n"

→コード指定していないとコンパイルのときに停止します。

-


「po/ja.po」への反映:

-

1. 「.po ファイル」を翻訳(編集)

$ cd ~/ダウンロード/翻訳/translations/ja/
$ cp lubuntu-update-notifier.pot lubuntu-update-notifier.po

$ featherpad lubuntu-update-notifier.po

→先頭のコメント部は大幅に削除:

-

2. 翻訳後の確認:

$ cat ~/ダウンロード/翻訳/translations/ja/lubuntu-update-notifier.po

msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-19 22:14+0900\n"
"PO-Revision-Date: 2021-01-19 23:30+0900\n"
"Last-Translator: FuRuYa7\n"
"Language-Team: Japanese\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: lubuntu-upgrader:129
msgid "Updating cache..."
msgstr "キャッシュを更新中..."

#: lubuntu-upgrader:186 lubuntu-upgrader:189
msgid "Fetching"
msgstr "読み出し中"

#: lubuntu-upgrader:187 lubuntu-upgrader:189 lubuntu-upgrader:200
#: lubuntu-upgrader:203
# "「の」に翻訳すると意味が反転するので注意"
msgid "of"
msgstr " / "

#: lubuntu-upgrader:199 lubuntu-upgrader:202
msgid "Downloaded"
msgstr "ダウンロード済みです"

#: lubuntu-upgrader:214 lubuntu-notifier.py:204
msgid "Upgrade finished"
msgstr "アップグレードが完了しました"

#: lubuntu-upgrader:218 lubuntu-notifier.py:169 lubuntu-notifier.py:173
#: lubuntu-notifier.py:208
msgid "Reboot required"
msgstr "再起動が必要です"

#: lubuntu-upgrader:222
msgid "With some Errors"
msgstr "いくつかのエラーがあります"

#: lubuntu-upgrader:223
msgid "Error Resume:"
msgstr "エラー再開:"

#: lubuntu-upgrader:243
msgid "ECode: "
msgstr "エラーコード: "

#: lubuntu-upgrader:244
msgid "EDetail: "
msgstr "エラーの詳細: "

#: lubuntu-upgrader:269 lubuntu-upgrader:345
msgid "Warning: install transaction not completed successfully:"
msgstr "警告: インストール処理が正常に完了しませんでした:"

#: lubuntu-upgrader:274
msgid "Update Cache Finished"
msgstr "キャッシュの更新が完了しました"

#: lubuntu-upgrader:313
msgid "Status Details:"
msgstr "ステータスの詳細:"

#: lubuntu-upgrader:369
msgid ""
"Please run this software with administrative rights.To do so, run this "
"program with lxqt-sudo."
msgstr "管理者権限で実行してください。lxqt-sudo を使用して実行します。"

#: lubuntu-upgrader:391
msgid "Update Cache Before Upgrade"
msgstr "アップグレード前にキャッシュを更新します"

#: lubuntu-upgrader:396
msgid "Full upgrade same as dist-upgrade"
msgstr "dist-upgrade と同じ完全アップグレード"

#: lubuntu-notifier.py:54
#, python-format
msgid "Error: Opening the cache (%s)"
msgstr "エラー: キャッシュ (%s) を開いています"

#: lubuntu-notifier.py:71 lubuntu-notifier.py:77
msgid "Affected Packages"
msgstr "影響を受けるパッケージ"

#: lubuntu-notifier.py:72
msgid "Security"
msgstr "セキュリティ"

#: lubuntu-notifier.py:117
msgid "There are upgrades available. Do you want to do a system upgrade?"
msgstr "利用可能なアップグレードがあります。システムのアップグレードを行いますか?"

#: lubuntu-notifier.py:120
msgid "This will mean packages could be upgraded, installed or removed."
msgstr "パッケージがアップグレード、インストール、または削除されます。"

#: lubuntu-notifier.py:125
msgid " is a security upgrade."
msgstr " 個がセキュリティのアップグレードです。"

#: lubuntu-notifier.py:127
msgid " are security upgrades."
msgstr " 個がセキュリティのアップグレードです。"

#: lubuntu-notifier.py:130
msgid "Remove"
msgstr "削除"

#: lubuntu-notifier.py:137
msgid "Install"
msgstr "インストール"

#: lubuntu-notifier.py:152
msgid "Upgrade"
msgstr "アップグレード"

#: lubuntu-notifier.py:194
msgid "Upgrading..."
msgstr "アップグレード中..."

#: lubuntu-notifier.py:247
msgid "Define software/app to open for upgrade"
msgstr "アップグレードで開くソフトウェア/アプリを定義します"

#: lubuntu-notifier.py:252
msgid "How many upgrades are available"
msgstr "利用可能なアップグレードの数"

#: lubuntu-notifier.py:257
msgid "How many security upgrades are available"
msgstr "利用可能なセキュリティアップグレードの数"

-

3. 「.mo ファイル」にコンパイル

$ cd ~/ダウンロード/翻訳/translations/ja/
$ msgfmt lubuntu-update-notifier.po -o lubuntu-update-notifier.mo

→出力ファイル名を指定しないと「messages.mo」になります。

$ ls -1
lubuntu-update-notifier.mo
lubuntu-update-notifier.po
lubuntu-update-notifier.pot

-

4. 「.mo ファイル」を配置:

$ cd ~/ダウンロード/翻訳/translations/ja/
$ sudo cp lubuntu-update-notifier.mo /usr/share/locale/ja/LC_MESSAGES/

確認:

$ ls /usr/share/locale/ja/LC_MESSAGES/lubuntu*

/usr/share/locale/ja/LC_MESSAGES/lubuntu-notifier2.mo      ←(前回 1/2)
/usr/share/locale/ja/LC_MESSAGES/lubuntu-update-notifier.mo ←(今回はひとつのファイルのみ)
/usr/share/locale/ja/LC_MESSAGES/lubuntu-upgrader2.mo  ←(前回 2/2)

-


動作テストのための配置:

  • 動作を確認には、プログラムの配置が必要です。Git フォルダでそのまま行うと、プルリクエストする前にソースのフォルダが汚れてしまいます。すでに配置が終わっているファイルもありますが、整理するため、再度実施しました。
$ cd /usr/libexec/lubuntu-update-notifier/
$ ls ~/ダウンロード/翻訳/lubuntu-upg-notifier.sh-ORG
$ sudo cp lubuntu-upg-notifier.sh ~/ダウンロード/翻訳/lubuntu-upg-notifier.sh-ORG  ←(最初の1回のみ)

$ sudo cp ~/Git/lubuntu-update-notifier/lubuntu-upg-notifier.sh lubuntu-upg-notifier.sh
$ sudo cp ~/Git/lubuntu-update-notifier/lubuntu-notifier.py lubuntu-notifier.py
$ sudo cp ~/ダウンロード/翻訳/lubuntu-upgrader-Git /usr/bin/lubuntu-upgrader
$ sudo cp ~/ダウンロード/翻訳/upg-apply.desktop /usr/share/applications/upg-apply.desktop

$ cd ~/ダウンロード/翻訳/translations/ja/
$ sudo msgfmt lubuntu-update-notifier.po -o /usr/share/locale/ja/LC_MESSAGES/lubuntu-update-notifier.mo

再起動

-

動作テスト

作業中に、システム更新の通知があったら、システム更新せずに閉じておきます。 そうすれば、再起動してすぐか、 1時間ほどで通知のダイアログが表示されると思います。

-

もしくは、

設定→「すべてのアップグレードの適用」→「すべてのアップグレード」画面

→日本語化されていることを確認。

-


動作確認できたので、成果をソースに反映:

$ cd ~/ダウンロード/翻訳/
$ sudo cp upg-apply.desktop ~/Git/lubuntu-update-notifier/data/upg-apply.desktop
$ sudo cp lubuntu-upgrader-Git ~/Git/lubuntu-update-notifier/lubuntu-upgrader

$ cp translations/ja/lubuntu-update-notifier.pot ~/Git/lubuntu-update-notifier/po/
$ cp translations/ja/lubuntu-update-notifier.po ~/Git/lubuntu-update-notifier/po/ja.po

-

git の状態を確認:

$ cd ~/Git/lubuntu-update-notifier/
[~/Git/lubuntu-update-notifier]$

[~/Git/lubuntu-update-notifier]$ git status
ブランチ master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   data/upg-apply.desktop
        modified:   lubuntu-upgrader
        modified:   po/lubuntu-update-notifier.pot

追跡されていないファイル:
  (use "git add <file>..." to include in what will be committed)
        po/ja.po

no changes added to commit (use "git add" and/or "git commit -a")

→修正が 3個、追加が 1個になっています。

-


参考: 反映されたソースからの国際化:

  • 最終的には、反映されたソース(もしくはダウンロード直後のソースに po/ja.po を追加するだけでも可)から国際化できます。
$ cd ~/Git/lubuntu-update-notifier/
$ sudo cp lubuntu-upg-notifier.sh /usr/libexec/lubuntu-update-notifier/lubuntu-upg-notifier.sh
$ sudo cp lubuntu-notifier.py /usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py
$ sudo cp lubuntu-upgrader /usr/bin/lubuntu-upgrader
$ sudo cp data/upg-apply.desktop /usr/share/applications/upg-apply.desktop

$ sudo msgfmt po/ja.po -o /usr/share/locale/ja/LC_MESSAGES/lubuntu-update-notifier.mo

-


プルリクエストを行う準備:

日本語で表示できることを確認できたら、 「プルリクエストすることを前提」にしたやり方で git clone しました。

-

1. プルリクエスト用のフォルダを準備:

$ cd
$ mkdir Git2
$ cd ~/Git2/

→今までとフォルダ名が違うことに注目。

-

2. 対象の「GitHubリポジトリ」(GitHub の該当サイト)をブラウザで開きます

lubuntu-team/lubuntu-update-notifier - GitHub

-

3. GitHub アカウントにサインイン

今回は「GitHub アカウント」が必要です。(すでに作成済みとします)

-

ページ右上の「横3本」をクリック→「Sign in」→「Sign in to GitHub」画面

→登録している「Eメールアドレス」と「パスワード」を入力して、サインインします。

→サインインされると、画面右上に自分が登録した、自分のアイコン(アバター)が表示されます。

表示が変わらない時は、先程のメールを確認して下さい。コードを控えて待機画面に入力。

-

4. 「Fork」ボタンを押すことで、自分のアカウントに対象のリポジトリをFork :

→しばらく待つと、画面が自分の画面に変わります。

 lubuntu-team / lubuntu-update-notifier 

↓ 画面が自分の画面に変わります。

MY_NAME / lubuntu-update-notifier
forked from lubuntu-team/lubuntu-update-notifier 

→自分の「MY_NAME / lubuntu-update-notifier」のサイトのアドレス、および、clone のアドレスを控えておきます。 ブラウザのブックマークに登録してもよいです。

https://github.com/MY_NAME/lubuntu-update-notifier
https://github.com/MY_NAME/lubuntu-update-notifier.git

-

5. 自分のPC で、作成された自分のリモートリポジトリを指定して git clone :

自分のリモートリポジトリから、(その時点で)最新のソースを入手:

$ cd ~/Git2/
[~/Git2]$ git clone https://github.com/MY_NAME/lubuntu-update-notifier.git

clone(ローカルに保存)したディレクトリに移動:

[~/Git2]$ cd ~/Git2/lubuntu-update-notifier/
[~/Git2/lubuntu-update-notifier]$ git status
ブランチ master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

→通常は「origin/Master」であることが多いです。

-

6. プルリクエスト用に Branch「develop」を作成:

何かあったときの他の人への影響を少なくできます。 また、自分の位置の確認にもなります。

[~/Git2/lubuntu-update-notifier]$ git checkout -b develop
Switched to a new branch 'develop'

[~/Git2/lubuntu-update-notifier]$ git status
ブランチ develop
nothing to commit, working tree clean

→「develop」に変わったことを確認。現在はコミットできるものはなし、作業ツリーは空です。

-

7. この時点から、Cloneしたディレクトリにある(関連する)ファイルを編集できます:

-


成果を git clone したソース(~/Git2/lubuntu-update-notifier/) に反映:

  • 変更(diff)を少なくするため、さわるファイルは最小限にします。 日時で更新を確認できます。

-

1. 成果をソースに反映:

$ cd ~/ダウンロード/翻訳/
$ sudo cp upg-apply.desktop ~/Git2/lubuntu-update-notifier/data/upg-apply.desktop
$ sudo cp lubuntu-upgrader-Git ~/Git2/lubuntu-update-notifier/lubuntu-upgrader

$ cp translations/ja/lubuntu-update-notifier.pot ~/Git2/lubuntu-update-notifier/po/
$ cp translations/ja/lubuntu-update-notifier.po ~/Git2/lubuntu-update-notifier/po/ja.po

-

2. git を確認:

$ cd ~/Git2/lubuntu-update-notifier/
[~/Git2/lubuntu-update-notifier]$ git status

ブランチ develop
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   data/upg-apply.desktop
        modified:   lubuntu-upgrader
        modified:   po/lubuntu-update-notifier.pot

追跡されていないファイル:
  (use "git add <file>..." to include in what will be committed)
        po/ja.po

no changes added to commit (use "git add" and/or "git commit -a")

→赤色が修正したファイル数と同じであれば、OK。

  • エディタの「~」付きのバックアップファイルがないか確認。

→あったら削除しておきます。 ファイルマネージャでCtrl+H すれば表示されるので、削除。

-

日本語の表題:
日本語対応のための修正が 3つ、追加が 1つあります。

1. 「.desktop」ファイルは、日本語を追加しました。
2. 「.desktop」ファイルは、翻訳対象の文字列を追加しました。
3. 「.pot」ファイルは、「charset=UTF-8」に修正して、追加も含めて再作成しました。
4. 日本語の「.po」ファイルを追加しました。

-

英訳:
There are 3 fixes and 1 addition for Japanese support.

1. Japanese has been added to the "data/upg-apply.desktop" file.

2. The "lubuntu-upgrader" file has added the character string to be translated.

3. The "po/lubuntu-update-notifier.pot" file was modified to "charset = UTF-8" and recreated, including additions.

4. Added Japanese "po/ja.po" file.

→早めに英文を作成しておきます。

-

6. 編集したファイルを add:

  • 「編集エリア」(working tree) から「ステージングエリア」に移します。
[~/Git2/lubuntu-update-notifier]$ git add -A

[~/Git2/lubuntu-update-notifier]$ git status
ブランチ develop
コミット予定の変更点:
  (use "git restore --staged <file>..." to unstage)
        modified:   data/upg-apply.desktop    ←(4個すべてが緑色に変わりました)
        modified:   lubuntu-upgrader
        new file:   po/ja.po
        modified:   po/lubuntu-update-notifier.pot

-

7. commit の前に、git の環境設定をしておきます:

登録は最初に 1回やるだけ:

[~/Git2/lubuntu-update-notifier]$ git config --global user.email "MY_EMAIL@MAIL.com"
[~/Git2/lubuntu-update-notifier]$ git config --global user.name "MY_NAME"

-

8. 編集したファイルを commit:

  • 「ステージングエリア」から「本番エリア」に移します:
[~/Git2/lubuntu-update-notifier]$ git commit -m "There are 3 fixes and 1 addition for Japanese support."

[develop d3ea83f] There are 3 fixes and 1 addition for Japanese support.
 4 files changed, 195 insertions(+), 21 deletions(-)
 create mode 100644 po/ja.po

→和訳: 日本語サポートには 3つの修正と1つの追加があります。

[~/Git2/lubuntu-update-notifier]$ git status
ブランチ develop
nothing to commit, working tree clean

→commit がうまくいくと、送るもの(commit できるもの)がなくなります。

-

9. 「developブランチ」から、Github上の「originブランチ」にpush します

ローカルで編集したレポジトリをオンライン上に渡します:

$ git push origin develop

Username for 'https://github.com': MY_NAME  ←(ユーザ名入力)
Password for 'https://MY_NAME@github.com':   ←(パスワード入力)

Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 2 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 2.12 KiB | 2.12 MiB/s, done.
Total 8 (delta 5), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (5/5), completed with 4 local objects.
remote: 
remote: Create a pull request for 'develop' on GitHub by visiting:
remote:      https://github.com/MY_NAME/lubuntu-update-notifier/pull/new/develop
remote: 
To https://github.com/MY_NAME/lubuntu-update-notifier.git
 * [new branch]      develop -> develop

→develop ブランチの使用の初回のメッセージが表示されます。2回目からは表示が短くなります。

-

10. 確認:

$ git log

→リモートリポジトリとの更新履歴が見れます。 最新は上の方に表示されます。下方向は過去の履歴です。 スペースで改ページ。

commit d36483f65172f61b1e838639257258a9705baff654 (HEAD -> develop, origin/develop)
Author: MY_NAME <abcxxx@xxxxxxx.com>
Date:   Wed Jan 20 22:45:31 2021 +0900

    There are 3 fixes and 1 addition for Japanese support.

commit 73448df6db773ab26e26445e28d4e3ed296d0948 (origin/master, origin/HEAD, master)
Author: Hans P. Möller <hmollercl@lubuntu.me>
Date:   Sun Nov 8 16:20:05 2020 -0300

    update changelog
:

→半角の「q」で終了。

-


Github 上で、PullRequest します

  • ブラウザで自分のリポジトリ(MY_NAME / lubuntu-update-notifier) のサイトを開きます。

→ブックマークを登録しておけば楽です。

-

1. 右中(develop の行の右)の大きな緑色の「Compare & pull request」ボタンをクリック

→本家リポジトリ「lubuntu-team/lubuntu-update-notifier」のサイトに切り替わるので注意。

  • 最近、GitHub の表示フォーマットが変わって、ちょっと探してしまいます。でも使いやすくなったみたい。

  • もしなければ、master を develop に切り替えて、「Compare」ボタンをクリック

→Base: をダウンロードしたブランチ(MY_NAME-develope) に切り替えます。

  • 何度もCommente を入力すると、いくつもコメントが出来ておかしくなります。注意。

  • 修正したファイルごとにある「Load diff」ボタンを押して、差分を確認。

→今回は、下にスクロールするだけで、ボタン無しで確認できました。

-

2. どういった変更を加えたのかを説明する内容(コメント)を英語で記入

  • 表題は、先程のcommit のメッセージが登録されています。
There are 3 fixes and 1 addition for Japanese support.
  • 中身だけ記入します。記入は任意です。
There are 3 fixes and 1 addition for Japanese support.

1. Japanese has been added to the "data/upg-apply.desktop" file.

2. The "lubuntu-upgrader" file has added the character string to be translated.

3. The "po/lubuntu-update-notifier.pot" file was modified to "charset = UTF-8" and recreated, including additions.

4. Added Japanese "po/ja.po" file.

→いつもなら、表題だけで意味が通るので記入は不要ですが、今回は複数のファイルを同時に送ったので、ファイルごとに何を行ったか追記しました。フォルダ名も記入しています。後で自分で見直すときもコメントがあると便利です。

-

3. どのブランチからどのブランチにpull request されるかを確認します。

コメントを付けた上段の表示を確認。(2段表示に変更されたみたい)

[master] <--- [develop]

→※develop ブランチからmaster ブランチへのpull request

自分は「develop」で作業しているのでわかりやすいです。

-

4. 右下の緑色の「Create pull request」ボタンを押して、Pull Request を作成します。

-

5. あとは、ヘタに触りません。数日後のメールを待ちます。

「レポジトリ管理者」がコードを確認、OK ならMerge (取り込み)を実行してくれます。 忘れたころにメールは来ます。翌週だったり、2ヶ月後だったり、メールが来なかったりです。

  • 修正依頼が来るかもしれないので、プルリクエストに使った「~/Git2/」フォルダは触らずに保存しておきます。 今回、自分が修正した内容などの記録をメモとして残しておくとよいです。(自分はブログに残しました) 最初に作成した動作確認用の「~/Git/」フォルダは自由に操作できます。

-

-


まとめ

GitHub で進められている国際化にプルリクエストしてみました。送れたのはせいぜい.po ファイルくらいですが、少しでも貢献できればと思います。

プルリクエストも最近行っていないので記憶が飛んでいます。 備忘録も兼ねて、投稿しました。最近の翻訳は翻訳サイトで行うことが多いので、プルリクエストの回数も減りました。

ただし、今回のように翻訳対象を増やすなどのアプリ側の修正が伴うときはプルリクエストが必要です。

-

SSH」接続でプルリクエストするときは「こちら 」も参照。

-

-


目次

先頭

-


-

Lubuntu 20.10 にて「Update Notifier」と「Apply Full Upgrade」を独自に国際化〈H107〉

録日: 2021-01-18 更新日: 2021-01-19

「Lubuntu 20.10」をUSB メモリにインストール しました。

前回 は「Lubuntu 20.10」にてシステム更新を通知する「Update Notifier」と「Apply Full Upgrade」の日本語化を試しました。そのときは python プログラムの表示文字列を直接日本語に修正するやり方で行いました。

今回は、前回の成果を参考に、python プログラムを独自に国際化対応して翻訳してみました。 そのときの備忘録です。自己責任です。

-

「目次」

-

日本語化された「Update Notifier」画面:

↓ (呼び出し)

-

日本語化された「Apply Full Upgrade」画面:

-


参考: gettext による国際化

gettext --- 多言語対応に関する国際化サービス より抜粋:

-

ソースコード: Lib/gettext.py

gettext モジュールは、Python モジュールおよびアプリケーションに国際化(I18N)およびローカリゼーションL10N)サービスを提供します。

-

通常はアプリの中の文字列を _() 関数の呼び出しに包み込んで、翻訳対象候補であることを示します:

print(_('This string will be translated.'))

-


飜訳対象の文字列を抽出するツール:

オリジナルの「GNU gettext」は C と C++ソースコードしかサポートしませんが、拡張版の「xgettext」は python を含めた多くの言語で書かれたコードを読み取り、飜訳できる文字列を見つけます。

python には「pygettext.py」および「msgfmt.py」という名前の pure-python 版プログラムがあります。

「xgettext」や「pygettext」のようなツールは、メッセージカタログである .po ファイルを生成します。

「msgfmt」にてパソコンが読み込みやすい .mo バイナリカタログファイルへとコンパイルされます。 この .mo が gettext モジュールによる実行時の実際の飜訳処理で使われます。

-

pygettext

→「xgettext」の現在のバージョンは、Python を含む多くの言語をサポートしており、 「pygettext」は非推奨になっています。

-

xgettext

groovy (1) xgettext.1.gz

提供: gettext_0.19.8.1-10build1_amd64

xgettext - ソースからgettext 文字列を抽出します

-

「xgettext」でサポートされている言語:
C、C++、ObjectiveC、C#、GCC-source、PO、Shell、「Python」、
Lisp、Java、JavaProperties、JavaScript、awk、Perl、PHP、
EmacsLisp、librep、Scheme、Smalltalk、Tcl、NXStringTable、
RST、YCP、Glade、Lua、Vala、Desktop

→「Python」はありますが、Go 言語は見当たりません。

-

インストールされているかの確認:
$ apt list gettext* | grep インストール済み
:
gettext-base/groovy,now 0.19.8.1-10build1 amd64 [インストール済み、自動]
gettext/groovy,now 0.19.8.1-10build1 amd64 [インストール済み、自動]

$ xgettext --version
xgettext (GNU gettext-tools) 0.19.8.1

$ msgfmt --version
msgfmt (GNU gettext-tools) 0.19.8.1

→インストールされていました。

-

.po ファイルを生成するツール:

ヘルプ表示:

$ xgettext --help

使用法: xgettext [オプション] [入力ファイル]...

与えられた入力ファイルから翻訳可能な文字列を取り出します.

入力ファイルの指定:
  INPUTFILE ...               入力ファイル
  -f, --files-from=FILE       入力ファイルのリストを FILE から取得
  -D, --directory=DIRECTORY   入力ファイルの検索リストに DIRECTORY を追加
入力ファイルが - の場合は標準入力が読み込まれます.

出力ファイルの指定:
  -d, --default-domain=NAME   出力に NAME.po を使用 (message.po の代わり)
  -o, --output=FILE           指定されたファイルに出力
  -p, --output-dir=DIR        ディレクトリ DIR にファイルを出力
出力ファイルが - の場合は標準出力に結果が書き出されます.

入力ファイル言語の選択:
  -L, --language=NAME         指定された言語を認識
                                (C, C++, ObjectiveC, PO, Shell, Python, Lisp,
                                EmacsLisp, librep, Scheme, Smalltalk, Java,
                                JavaProperties, C#, awk, YCP, Tcl, Perl, PHP,
                                GCC-source, NXStringTable, RST, Glade, Lua,
                                JavaScript, Vala, Desktop)

標準で言語は入力ファイルの拡張子で識別されます.
標準では, 入力ファイルは ASCII と仮定されます.

言語指定オプション:

  -kWORD, --keyword=WORD      追加キーワードとして WORD を検索
  -k, --keyword               標準のキーワードは使わない

:(省略)

-

.mo ファイルにコンパイルするツール:

ヘルプ表示:

$ msgfmt --help

使用法: msgfmt [オプション] filename.po ...

バイナリメッセージカタログを原文の翻訳の記述から生成.

入力ファイルの指定:
  filename.po ...             入力ファイル
  -D, --directory=DIRECTORY   入力ファイルの検索リストに DIRECTORY を追加
入力ファイルが - の場合は標準入力が読み込まれます.

出力ファイルの指定:
  -o, --output-file=FILE      指定したファイルに出力
      --strict                厳密な Uniforum モードを有効に
出力ファイルが - の場合は標準出力に結果が書き出されます.

:(省略)

-


Lubuntu 20.10 にも国際化されたアプリがあり、参考になります

実際の使用例:

$ cat /usr/lib/update-notifier/apt_check.py

import gettext
:
def _(msg):
    return gettext.dgettext("update-notifier", msg)

    if upgrades > 0 or security_updates > 0 or esm_updates > 0:
        outstream.write("\n")
        outstream.write(gettext.dgettext("update-notifier",
                                         "To see these additional updates "
                                         "run: apt list --upgradable"))

# 例外処理の中で

    # gettext
    APP = "update-notifier"
    DIR = "/usr/share/locale"
    gettext.bindtextdomain(APP, DIR)
    gettext.textdomain(APP)
:
                      help=_("Show the packages that are "
                             "going to be installed/upgraded"))

翻訳ファイルの在り処:

$ ls /usr/share/locale/ja/LC_MESSAGES/update-notifier.mo
/usr/share/locale/ja/LC_MESSAGES/update-notifier.mo

-


「Update Notifier」の国際化対応

「/usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py」の国際化対応

  • ファイルの配置や内容がLubuntu 20.04 とは少し変わりました。

  • Lubuntu 20.10 では、定期的に自動でシステム更新があるかをチェック、システム更新があると「/usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py」から「/usr/bin/lubuntu-upgrader」が呼び出されて、更新を実行するかダイアログが表示されます。

  • プログラムは「Python 3」スクリプトで書かれており、国際化されていません。

  • 前回は直接、日本語に翻訳しました。今回は国際化にトライします。

「Update Notifier」画面 →「アップデートの通知」画面 に翻訳されます。

-

1. 国際化対応

$ cd ~/ダウンロード/翻訳/
$ cp /usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py-ORG lubuntu-notifier.py-ORG
$ cp lubuntu-notifier.py-ORG lubuntu-notifier-CHG.py

$ featherpad lubuntu-notifier-CHG.py

ポイント (33 行目に挿入) :

import gettext
gettext.install('lubuntu-notifier2', '/usr/share/locale')

-

2. 先頭のライセンス部分を表示:

$ cat /usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py

#!/usr/bin/python3
# coding=utf-8

# Copyright (C) 2019 Hans P. Möller <hmollercl@lubuntu.me>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

-

3. 差分表示の見方:

66,67c68,69                          ←(置換前の行、置換後の行は3行ズレ)
<         lubuntu-notifier.py-ORG(原本のファイル)       ←(置換前)
---
>         lubuntu-notifier-CHG.py(国際化対応したファイル)         ←(置換後)

-

4. 差分を見ながら、修正します:

$ cd ~/ダウンロード/翻訳/             ←(実行不要)
$ diff lubuntu-notifier.py-ORG lubuntu-notifier-CHG.py     ←(実行不要)

32a33,34    ←(32 行目に下記の 2行挿入したので、以降の行がズレます)
> import gettext
> gettext.install('lubuntu-notifier2', '/usr/share/locale')

66,67c68,69
<         self.upgradeBtn = QPushButton("Upgrade")
<         self.closeBtn = QPushButton("Close")
---
>         self.upgradeBtn = QPushButton(_("Upgrade"))
>         self.closeBtn = QPushButton(_("Close"))
86c88
<         self.setWindowTitle("Update Notifier")
---
>         self.setWindowTitle(_("Update Notifier"))

101,103c103,105    ←(分割される位置を翻訳しやすい位置に修正しました)
<             text = "There are upgrades available. Do you want to do a system"
<             text += " upgrade?\nThis will mean packages could be upgraded,"
<             text += " installed, or removed."
---
>             text = _("There are upgrades available.")
>             text += _(" Do you want to do a system upgrade?\n")
>             text += _("This will mean packages could be upgraded, installed, or removed.")
129c131
<                 text = "Reboot is needed"
---
>                 text = _("Reboot is needed")
132c134
<                 text = text + "\nReboot is needed"    ←(コンパイル時にエラーしないよう改行と分割)
---
>                 text = text + "\n" + _("Reboot is needed")
151c153
<         self.label.setText("Upgrading...")
---
>         self.label.setText(_("Upgrading..."))
166c168
<             text = "Upgrade finished"
---
>             text = _("Upgrade finished")
170c172
<                 text = text + "\n" + "Restart required"
---
>                 text = text + "\n" + _("Restart required")
202c204
<                         help="Define software/app to open for upgrade",
---
>                         help=_("Define software/app to open for upgrade"),
207c209
<                         help="How many upgrades are available",
---
>                         help=_("How many upgrades are available"),
212c214
<                         help="How many security upgrades are available",
---
>                         help=_("How many security upgrades are available"),

→一部、日本語では翻訳しづらい分割になる行と、エラーが発生する行を修正しました。

-

5. 国際化を反映:

スクリプトなのでコピーするだけです。

$ cd /usr/libexec/lubuntu-update-notifier/
$ sudo cp ~/ダウンロード/翻訳/lubuntu-notifier-CHG.py lubuntu-notifier.py

-

6. 「.pot」ファイルを生成

$ cd ~/ダウンロード/翻訳/
$ ls -1 lubuntu-notifier*
lubuntu-notifier-CHG.py
lubuntu-notifier.py-ORG
lubuntu-notifier_ja.py

$ cp lubuntu-notifier-CHG.py lubuntu-notifier.py
$ xgettext lubuntu-notifier.py -o lubuntu-notifier2.pot
$ ls -1 *.pot
lubuntu-notifier2.pot

-

7. 「.pot」ファイルの修正:

$ cd ~/ダウンロード/翻訳/
$ featherpad lubuntu-notifier2.pot

17 行目を修正:

"Content-Type: text/plain; charset=CHARSET\n"

"Content-Type: text/plain; charset=UTF-8\n"

→コード指定していないとコンパイルのときに停止します。

-

8. 「.po」ファイルを編集(翻訳)

$ cd ~/ダウンロード/翻訳/
$ cp lubuntu-notifier2.pot lubuntu-notifier2.po
$ featherpad lubuntu-notifier2.po

→先頭のコメント部は大幅に削除しました。

-

9. 翻訳後の確認:

$ cat lubuntu-notifier2.po

msgid ""
msgstr ""
"POT-Creation-Date: 2021-01-18 18:40+0900\n"
"Last-Translator: FuRuYa7\n"
"Language: Japanese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: lubuntu-notifier.py:68
msgid "Upgrade"
msgstr "アップグレード"

#: lubuntu-notifier.py:69
msgid "Close"
msgstr "閉じる"

#: lubuntu-notifier.py:88
msgid "Update Notifier"
msgstr "アップデートの通知"

#: lubuntu-notifier.py:103
msgid "There are upgrades available."
msgstr "利用可能なアップグレードがあります。"

#: lubuntu-notifier.py:104
msgid " Do you want to do a system upgrade?\n"
msgstr " システムのアップグレードを行いますか?\n"

#: lubuntu-notifier.py:105
msgid "This will mean packages could be upgraded, installed, or removed."
msgstr "パッケージをアップグレード、インストール、または削除できます。"

#: lubuntu-notifier.py:131 lubuntu-notifier.py:134
msgid "Reboot is needed"
msgstr "再起動が必要です"

#: lubuntu-notifier.py:153
msgid "Upgrading..."
msgstr "アップグレードしています..."

#: lubuntu-notifier.py:168
msgid "Upgrade finished"
msgstr "アップグレードが完了しました"

#: lubuntu-notifier.py:172
msgid "Restart required"
msgstr "再起動が必要です"

#: lubuntu-notifier.py:204
msgid "Define software/app to open for upgrade"
msgstr "アップグレードのために開くソフトウェア/アプリを定義します"

#: lubuntu-notifier.py:209
msgid "How many upgrades are available"
msgstr "利用可能なアップグレードの数"

#: lubuntu-notifier.py:214
msgid "How many security upgrades are available"
msgstr "利用可能なセキュリティアップグレードの数"

-

10. 「.mo」ファイルにコンパイル

$ cd ~/ダウンロード/翻訳/
$ msgfmt lubuntu-notifier2.po -o lubuntu-notifier2.mo

→出力ファイル名を指定しないと「messages.mo」になります。

$ ls *.mo
lubuntu-notifier2.mo

-

11. 「.mo」ファイルを配置:

$ cd ~/ダウンロード/翻訳/
$ sudo cp lubuntu-notifier2.mo /usr/share/locale/ja/LC_MESSAGES/

$ ls /usr/share/locale/ja/LC_MESSAGES/lubuntu*
/usr/share/locale/ja/LC_MESSAGES/lubuntu-notifier2.mo

-

12. 再起動

-

13. 確認:

作業中に、システム更新の通知があったら、システム更新せずに閉じておきます。そうすれば、再起動してすぐか、 1時間ほどで通知のダイアログが表示されると思います。

→日本語化されていることを確認。

-

14. 動作が確認できたので、次のプログラム更新に備えコピーしました:

$ cd /usr/libexec/lubuntu-update-notifier/
$ sudo cp ~/ダウンロード/翻訳/lubuntu-notifier-CHG.py lubuntu-notifier-CHG.py


$ ls -l /usr/libexec/lubuntu-update-notifier/
:
-rwxr-xr-x 1 root root 8144  1月 18 18:55 lubuntu-notifier-CHG.py  ←(国際化対応)
-rwxr-xr-x 1 root root 8144  1月 18 18:40 lubuntu-notifier.py      ←(実行ファイル)
-rwxr-xr-x 1 root root 8025  1月 16 21:53 lubuntu-notifier.py-ORG  ←(オリジナル)
-rwxr-xr-x 1 root root 8284  1月 16 22:23 lubuntu-notifier_ja.py   ←(直接日本語化)
-rwxr-xr-x 1 root root 1217  8月 19 23:23 lubuntu-upg-notifier.sh

-


「Apply Full Upgrade」の国際化対応

「/usr/bin/lubuntu-upgrader」の国際化対応

  • ファイルの配置や内容はLubuntu 20.04 と変わっていません。

  • プログラムは「Python 3」スクリプトで書かれており、国際化されていません。

  • 前回は直接、日本語に翻訳しました。今回は国際化にトライします。

-

1. 国際化対応

$ cd ~/ダウンロード/翻訳/
$ cp /usr/bin/lubuntu-upgrader-ORG lubuntu-upgrader-ORG
$ cp lubuntu-upgrader-ORG lubuntu-upgrader-CHG.py

$ featherpad lubuntu-upgrader-CHG.py

ポイント (42 行目に挿入) :

import gettext
gettext.install('lubuntu-upgrader2', '/usr/share/locale')

-

2. 先頭のライセンス部分を表示:

$ cat /usr/bin/lubuntu-upgrader

#!/usr/bin/python3
# coding=utf-8

# Copyright (C) 2019 Hans P. Möller <hmollercl@lubuntu.me>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

-

3. 差分表示の見方:

69c70     置換前の行、置換後の行
<         lubuntu-upgrader-ORG(原本のファイル)  ←(置換前)
---
>         lubuntu-upgrader-CHG.py(翻訳したファイル)  ←(置換後)

-

4. 差分を見ながら、修正します:

$ cd ~/ダウンロード/翻訳/                                ←(実行不要)
$ diff lubuntu-upgrader-ORG lubuntu-upgrader-CHG.py  ←(実行不要)

42c42,43    ←(42 行目に下記の 2行挿入したので、以降の行がズレてます)
< 
---
> import gettext
> gettext.install('lubuntu-upgrader2', '/usr/share/locale')

69c70
<             self.setWindowTitle('Full Upgrade')
---
>             self.setWindowTitle(_('Full Upgrade'))
84c85
<         self.closeBtn = QPushButton("Close")
---
>         self.closeBtn = QPushButton(_("Close"))
105c106
<         self.setWindowTitle('Upgrade')
---
>         self.setWindowTitle(_('Upgrade'))
129c130
<         self.label.setText("Updating cache...")
---
>         self.label.setText(_("Updating cache..."))
214c215
<         text = "Upgrade finished"
---
>         text = _("Upgrade finished")
218c219
<             text = text + "\n" + "Restart required"
---
>             text = text + "\n" + _("Restart required")

222c223
<             text = text + "\n With some Errors"    ←(コンパイル時にエラーしないよう改行と分割)
---
>             text = text + "\n" + _(" With some Errors")
239c240
<         self.errors.append("Eror Code: " + str(error_code))
---
>         self.errors.append("Error Code: " + str(error_code))
243,244c244,245
<         print("ECode: " + str(error_code) + "\n")
<         print("EDetail: " + error_details + "\n")
---
>         print(_("ECode: ") + str(error_code) + "\n")
>         print(_("EDetail: ") + error_details + "\n")
269c270
<             print("Warning: install transaction not completed successfully:"
---
>             print(_("Warning: install transaction not completed successfully:")
274c275
<         self.label.setText("Update Cache Finished")
---
>         self.label.setText(_("Update Cache Finished"))
291,292c292,293
<         self.label.setText("Status:" + get_status_string_from_enum(status))
<         print("Status:" + get_status_string_from_enum(status) + " " + status
---
>         self.label.setText(_("Status:") + get_status_string_from_enum(status))
>         print(_("Status:") + get_status_string_from_enum(status) + " " + status
313c314
<             print("Status Details:" + details)
---
>             print(_("Status Details:") + details)
345c346
<             print("Warning: install transaction not completed successfully:"
---
>             print(_("Warning: install transaction not completed successfully:")
369,371c370,372
<         text = "Please run this software with administrative rights."
<         text += "To do so, run this program with lxqt-sudo."
<         title = "Need administrative powers"
---
>         text = _("Please run this software with administrative rights.")
>         text += _("To do so, run this program with lxqt-sudo.")
>         title = _("Need administrative powers")
385c386
<                         help="Update Cache Before Upgrade")
---
>                         help=_("Update Cache Before Upgrade"))
390c391
<                         help="Full upgrade same as dist-upgrade")
---
>                         help=_("Full upgrade same as dist-upgrade"))

-

5. 国際化を反映:

$ sudo cp ~/ダウンロード/翻訳/lubuntu-upgrader-CHG.py /usr/bin/lubuntu-upgrader

-

6. 「.pot」ファイルを生成

$ cd ~/ダウンロード/翻訳/
$ ls -1 lubuntu-upgrader*
lubuntu-upgrader-CHG.py
lubuntu-upgrader-ORG
lubuntu-upgrader_ja

$ cp lubuntu-upgrader-CHG.py lubuntu-upgrader.py
$ xgettext lubuntu-upgrader.py -o lubuntu-upgrader2.pot

$ ls -1 *.pot
lubuntu-notifier2.pot
lubuntu-upgrader2.pot

-

7. 「.pot」ファイルの修正:

$ cd ~/ダウンロード/翻訳/
$ featherpad lubuntu-upgrader2.pot

17 行目を修正:

"Content-Type: text/plain; charset=CHARSET\n"

"Content-Type: text/plain; charset=UTF-8\n"

→コード指定していないとコンパイルのときに停止します。

-

8. 「.po」ファイルを編集(翻訳)

$ cd ~/ダウンロード/翻訳/
$ cp lubuntu-upgrader2.pot lubuntu-upgrader2.po

$ featherpad lubuntu-upgrader2.po

→先頭のコメント部は大幅に削除しました。

-

9. 翻訳後の確認:

$ cat lubuntu-upgrader2.po

msgid ""
msgstr ""
"POT-Creation-Date: 2021-01-18 20:19+0900\n"
"Last-Translator: FuRuYa7\n"
"Language: Japanese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: lubuntu-upgrader.py:70
msgid "Full Upgrade"
msgstr "すべてのアップグレード"

#: lubuntu-upgrader.py:85
msgid "Close"
msgstr "閉じる"

#: lubuntu-upgrader.py:106
msgid "Upgrade"
msgstr "アップグレード"

#: lubuntu-upgrader.py:130
msgid "Updating cache..."
msgstr "キャッシュを更新しています..."

#: lubuntu-upgrader.py:215
msgid "Upgrade finished"
msgstr "アップグレードが完了しました"

#: lubuntu-upgrader.py:219
msgid "Restart required"
msgstr "再起動が必要です"

#: lubuntu-upgrader.py:223
msgid " With some Errors"
msgstr " いくつかのエラーがあります"

#: lubuntu-upgrader.py:244
msgid "ECode: "
msgstr "エラーコード: "

#: lubuntu-upgrader.py:245
msgid "EDetail: "
msgstr "エラー詳細: "

#: lubuntu-upgrader.py:270 lubuntu-upgrader.py:346
msgid "Warning: install transaction not completed successfully:"
msgstr "警告: インストール処理が正常に完了していません:"

#: lubuntu-upgrader.py:275
msgid "Update Cache Finished"
msgstr "キャッシュの更新が完了しました"

#: lubuntu-upgrader.py:292 lubuntu-upgrader.py:293
msgid "Status:"
msgstr "ステータス: "

#: lubuntu-upgrader.py:314
msgid "Status Details:"
msgstr "詳細なステータス: "

#: lubuntu-upgrader.py:370
msgid "Please run this software with administrative rights."
msgstr "このソフトウェアは管理者権限で実行してください。"

#: lubuntu-upgrader.py:371
msgid "To do so, run this program with lxqt-sudo."
msgstr "そのためには、このプログラムをlxqt-sudo を使い実行します。"

#: lubuntu-upgrader.py:372
msgid "Need administrative powers"
msgstr "管理者権限が必要です"

#: lubuntu-upgrader.py:386
msgid "Update Cache Before Upgrade"
msgstr "アップグレード前にキャッシュを更新します"

#: lubuntu-upgrader.py:391
msgid "Full upgrade same as dist-upgrade"
msgstr "dist-upgrade と同じ完全アップグレード"

-

10. 「.mo」ファイルにコンパイル

$ cd ~/ダウンロード/翻訳/
$ msgfmt lubuntu-upgrader2.po -o lubuntu-upgrader2.mo

→出力ファイル名を指定しないと「messages.mo」になります。

$ ls -1 *.mo
lubuntu-notifier2.mo
lubuntu-upgrader2.mo

-

11. 「.mo」ファイルを配置:

$ cd ~/ダウンロード/翻訳/
$ sudo cp lubuntu-upgrader2.mo /usr/share/locale/ja/LC_MESSAGES/

$ ls /usr/share/locale/ja/LC_MESSAGES/lubuntu*
/usr/share/locale/ja/LC_MESSAGES/lubuntu-notifier2.mo
/usr/share/locale/ja/LC_MESSAGES/lubuntu-upgrader2.mo

→2つの.mo ファイルが追加されました。

-

12. 再起動

-

13. 確認:

設定→「すべてのアップグレードの適用」→「すべてのアップグレード」画面

→日本語化されていることを確認。

-

14. 動作が確認できたので、更新に備えコピーしました:

$ sudo cp ~/ダウンロード/翻訳/lubuntu-upgrader-CHG.py /usr/bin/lubuntu-upgrader-CHG.py

$ ls -l /usr/bin/lubuntu-upgrader*
-rwxr-xr-x 1 root root 16566  1月 18 20:09 /usr/bin/lubuntu-upgrader           ←(実行ファイル)
-rwxr-xr-x 1 root root 16566  1月 18 20:45 /usr/bin/lubuntu-upgrader-CHG.py    ←(国際化対応)
-rwxr-xr-x 1 root root 16429  1月 16 00:16 /usr/bin/lubuntu-upgrader-ORG        ←(オリジナル)
-rwxr-xr-x 1 root root 16708  1月 16 00:56 /usr/bin/lubuntu-upgrader_ja        ←(直接日本語化)

-

-


まとめ

「Update Notifier」と「Apply Full Upgrade」の国際化にトライしてみました。他のアプリとの兼ね合いもあるし、やり方も色々で迷ってしまいます。個人的なやり方ですが日本語化できました。

アプリを国際化に対応させ翻訳ファイルを準備することで、その後の翻訳の敷居を低くできたと思います。

-

追記:

ネットで確認するとGitHub で国際化は進んでいるようです:

lubuntu-team/lubuntu-update-notifier - GitHub

→当然ながらやり方も翻訳対象の文字列も違います。二度手間なので早く気付けば良かったですね。ドメイン名が重なるので念の為、こちら側を修正しました。

たぶん、しばらくすれば正式な国際化に対応したバージョンに更新されるのではと思います。

-

-


目次

先頭

-


-

Lubuntu 20.10 にて「Update Notifier」と「Apply Full Upgrade」を日本語に翻訳〈H106〉

登録日: 2021-01-16 更新日: 2021-01-21

「Lubuntu 20.10」をUSB メモリにインストール しました。

システム更新を通知する「Update Notifier」アプリが登場して便利になっていますが日本語化されていません。

-

以前も「Lubuntu 20.04」にて 「Update Notifier」「Apply Full Upgrade」 の日本語化の投稿をしたことがあります。

-

今回は「Lubuntu 20.10」にて「Update Notifier」と「Apply Full Upgrade」の日本語化を試してみました。 そのときの備忘録です。自己責任です。

-

「目次」

-

日本語化された「Update Notifier」画面:

-

日本語化された「Apply Full Upgrade」画面:

-


メインメニューの日本語化

デスクトップファイルを修正:

$ sudo featherpad /usr/share/applications/upg-apply.desktop

↓ 下記の2行をお尻に追加:

Name[ja]=すべてのアップグレードの適用 (Apply Full Upgrade)
Comment[ja]=すべてのアップグレードの検索と適用

ログアウト→ログイン

-

ちなみに、

Exec=lxqt-sudo /usr/bin/lubuntu-upgrader --cache-update --full-upgrade
Name=Apply Full Upgrade

-


「Update Notifier」の日本語化

「/usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py」の日本語化

  • ファイルの配置や内容がLubuntu 20.04 とは少し変わっています。

  • Lubuntu 20.10 では、定期的に自動でシステム更新があるかをチェック、システム更新があると「/usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py」から「/usr/bin/lubuntu-upgrader」が呼び出されて、更新を実行するかダイアログが表示されます。

  • プログラムは「Python 3」スクリプトで書かれており、国際化されていません。

  • 直接、日本語に翻訳しました。(できたら国際化したいところです)

「Update Notifier」画面 →「アップデートの通知」画面 に翻訳されます。

-

1. 原本の退避:

$ cd /usr/libexec/lubuntu-update-notifier/
$ sudo cp lubuntu-notifier.py lubuntu-notifier.py-ORG

$ ls -l /usr/libexec/lubuntu-update-notifier/
:
-rwxr-xr-x 1 root root 8025  8月 19 23:23 lubuntu-notifier.py
-rwxr-xr-x 1 root root 8025  1月 16 21:53 lubuntu-notifier.py-ORG
-rwxr-xr-x 1 root root 1217  8月 19 23:23 lubuntu-upg-notifier.sh

-

2. 翻訳作業:

$ cd ~/ダウンロード/
$ mkdir 翻訳

$ cd /usr/libexec/lubuntu-update-notifier/
$ cp lubuntu-notifier.py ~/ダウンロード/翻訳/lubuntu-notifier_ja.py

$ featherpad ~/ダウンロード/翻訳/lubuntu-notifier_ja.py

→安全と思われる部分だけを翻訳しました。

-

ファイルの差分表示:

先頭のライセンス部分を表示しておきます:

$ cat /usr/libexec/lubuntu-update-notifier/lubuntu-notifier_ja.py

#!/usr/bin/python3
# coding=utf-8

# Copyright (C) 2019 Hans P. Möller <hmollercl@lubuntu.me>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

-

差分表示の見方:
66,67c66,67                          ←(置換前の行、置換後の行)
<         lubuntu-notifier.py-ORG(原本のファイル)       ←(置換前)
---
>         lubuntu-notifier.py(翻訳したファイル)         ←(置換後)

-

差分表示:
$ cd /usr/libexec/lubuntu-update-notifier/             ←(実行不要)
$ diff lubuntu-notifier.py-ORG lubuntu-notifier.py     ←(実行不要)

66,67c66,67                         ←(66 と 67 行目を置換、66 と 67 行目の結果)
<         self.upgradeBtn = QPushButton("Upgrade")       ←(66 行目 の置換前)
<         self.closeBtn = QPushButton("Close")           ←(67 行目 の置換前)
---
>         self.upgradeBtn = QPushButton("アップグレード")  ←(66 行目 の置換後)
>         self.closeBtn = QPushButton("閉じる")           ←(67 行目 の置換後)
86c86
<         self.setWindowTitle("Update Notifier")
---
>         self.setWindowTitle("アップデートの通知")
101,103c101,103
<             text = "There are upgrades available. Do you want to do a system"
<             text += " upgrade?\nThis will mean packages could be upgraded,"
<             text += " installed, or removed."
---
>             text = "利用可能なアップグレードがあります。"
>             text += "システムのアップグレードを行いますか? \nパッケージ"
>             text += "をアップグレード、インストール、または削除できます。"
129c129
<                 text = "Reboot is needed"
---
>                 text = "再起動が必要です"
132c132
<                 text = text + "\nReboot is needed"
---
>                 text = text + "\n再起動が必要です"
151c151
<         self.label.setText("Upgrading...")
---
>         self.label.setText("アップグレードしています...")
166c166
<             text = "Upgrade finished"
---
>             text = "アップグレードが完了しました"
170c170
<                 text = text + "\n" + "Restart required"
---
>                 text = text + "\n" + "再起動が必要です"
202c202
<                         help="Define software/app to open for upgrade",
---
>                         help="アップグレードのために開くソフトウェア/アプリを定義します",
207c207
<                         help="How many upgrades are available",
---
>                         help="利用可能なアップグレードの数",
212c212
<                         help="How many security upgrades are available",
---
>                         help="利用可能なセキュリティアップグレードの数",

-

3. 反映:

スクリプトなのでコピーするだけです。

$ cd /usr/libexec/lubuntu-update-notifier/
$ sudo cp ~/ダウンロード/翻訳/lubuntu-notifier_ja.py lubuntu-notifier.py

-

4. 確認:

再起動

作業中に、システム更新の通知があったら、システム更新せずに閉じておきます。そうすれば、再起動してすぐか、 1時間ほどで通知のダイアログが表示されると思います。

→日本語化されていることを確認。

-

動作が確認できたので、次のプログラム更新に備えコピーしました:

$ cd /usr/libexec/lubuntu-update-notifier/
$ sudo cp ~/ダウンロード/翻訳/lubuntu-notifier_ja.py lubuntu-notifier_ja.py

$ ls -l /usr/libexec/lubuntu-update-notifier/
:
-rwxr-xr-x 1 root root 8284  1月 16 22:11 lubuntu-notifier.py
-rwxr-xr-x 1 root root 8025  1月 16 21:53 lubuntu-notifier.py-ORG
-rwxr-xr-x 1 root root 8284  1月 16 22:23 lubuntu-notifier_ja.py
-rwxr-xr-x 1 root root 1217  8月 19 23:23 lubuntu-upg-notifier.sh

→lubuntu-notifier_ja.py のサイズ(8284) に着目。lubuntu-notifier.py のサイズが変わったら、更新された合図です。 その場合は、コピーで戻すのでなく参考にしての修正を行います。

-


「Apply Full Upgrade」の日本語化

「/usr/bin/lubuntu-upgrader」の日本語化

  • ファイルの配置や内容はLubuntu 20.04 と変わっていません。

  • プログラムは「Python 3」スクリプトで書かれており、国際化されていません。

  • 直接、日本語に翻訳しました。(できたら国際化したいところです)

-

1. 原本「/usr/bin/lubuntu-upgrader」の退避:

$ sudo cp /usr/bin/lubuntu-upgrader /usr/bin/lubuntu-upgrader-ORG
$ ls -l /usr/bin/lubuntu-upgrader*
-rwxr-xr-x 1 root root 16429  8月 23  2019 /usr/bin/lubuntu-upgrader
-rwxr-xr-x 1 root root 16429  5月  9 10:29 /usr/bin/lubuntu-upgrader-ORG

-

2. 翻訳作業:

$ cp /usr/bin/lubuntu-upgrader ~/ダウンロード/翻訳/lubuntu-upgrader_ja
$ featherpad ~/ダウンロード/翻訳/lubuntu-upgrader_ja

→安全と思われる部分だけを翻訳しました。

  • 下記のファイルの差分表示を見ながら、行番号を目安に修正します。

-

3. ファイルの差分表示:

先頭のライセンス部分を表示しておきます:

$ cat /usr/bin/lubuntu-upgrader-ja

#!/usr/bin/python3
# coding=utf-8

# Copyright (C) 2019 Hans P. Möller <hmollercl@lubuntu.me>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

-

差分表示の見方:
69c69     置換前の行、置換後の行
<         lubuntu-upgrader-ORG(原本のファイル)  ←(置換前)
---
>         lubuntu-upgrader_ja(翻訳したファイル)  ←(置換後)

-

差分表示:
$ diff /usr/bin/lubuntu-upgrader-ORG /usr/bin/lubuntu-upgrader_ja  ←(実行不要)

69c69                                        ←(69 行目 を置換、69 行目の結果)
<             self.setWindowTitle('Full Upgrade')        ←(69 行目 の置換前)
---
>             self.setWindowTitle('すべてのアップグレード')  ←(69 行目 の置換後)
84c84
<         self.closeBtn = QPushButton("Close")
---
>         self.closeBtn = QPushButton("閉じる")
105c105
<         self.setWindowTitle('Upgrade')
---
>         self.setWindowTitle('アップグレード')
129c129
<         self.label.setText("Updating cache...")
---
>         self.label.setText("キャッシュを更新しています...")
214c214
<         text = "Upgrade finished"
---
>         text = "アップグレードが完了しました"
218c218
<             text = text + "\n" + "Restart required"
---
>             text = text + "\n" + "再起動が必要です"
222c222
<             text = text + "\n With some Errors"
---
>             text = text + "\n いくつかのエラーがあります"
239c239
<         self.errors.append("Eror Code: " + str(error_code))
---
>         self.errors.append("Error Code: " + str(error_code))
243,244c243,244
<         print("ECode: " + str(error_code) + "\n")
<         print("EDetail: " + error_details + "\n")
---
>         print("エラーコード: " + str(error_code) + "\n")
>         print("エラー詳細: " + error_details + "\n")
269c269
<             print("Warning: install transaction not completed successfully:"
---
>             print("警告: インストール処理が正常に完了していません:"
274c274
<         self.label.setText("Update Cache Finished")
---
>         self.label.setText("キャッシュの更新が完了しました")
291,292c291,292
<         self.label.setText("Status:" + get_status_string_from_enum(status))
<         print("Status:" + get_status_string_from_enum(status) + " " + status
---
>         self.label.setText("ステータス: " + get_status_string_from_enum(status))
>         print("ステータス: " + get_status_string_from_enum(status) + " " + status
313c313
<             print("Status Details:" + details)
---
>             print("詳細なステータス: " + details)
345c345
<             print("Warning: install transaction not completed successfully:"
---
>             print("警告: インストール処理が正常に完了していません:"
369,371c369,371
<         text = "Please run this software with administrative rights."
<         text += "To do so, run this program with lxqt-sudo."
<         title = "Need administrative powers"
---
>         text = "このソフトウェアは管理者権限で実行してください。"
>         text += "そのためには、このプログラムをlxqt-sudo を使い実行します。"
>         title = "管理者権限が必要"

-

4. 反映:

$ sudo cp ~/ダウンロード/翻訳/lubuntu-upgrader_ja /usr/bin/lubuntu-upgrader

-

5. 確認:

再起動

設定→「すべてのアップグレードの適用」→「すべてのアップグレード」画面

→日本語化されていることを確認。

-

6. 動作が確認できたので、更新に備えコピーしました:

$ sudo cp ~/ダウンロード/翻訳/lubuntu-upgrader_ja /usr/bin/lubuntu-upgrader_ja

$ ls -l /usr/bin/lubuntu-upgrader*
-rwxr-xr-x 1 root root 16708  1月 16 00:54 /usr/bin/lubuntu-upgrader
-rwxr-xr-x 1 root root 16429  1月 16 00:16 /usr/bin/lubuntu-upgrader-ORG
-rwxr-xr-x 1 root root 16708  1月 16 00:56 /usr/bin/lubuntu-upgrader_ja

→lubuntu-upgrader_ja のサイズ(16708) に着目。lubuntu-upgrader のサイズが変わったら、更新された合図です。 その場合は、コピーで戻すのでなく参考にしての修正を行います。修正しやすいように差分を表示させました。

-

-


まとめ

「Update Notifier」と「Apply Full Upgrade」が日本語化され、システム更新の表示がわかりやすくなりました。

(英語のままでも支障はありません…。だから国際化が進んでいないのでしょうね)

アプリが国際化に対応することで、どこの国でも翻訳しやすくなるといいですね。

-

-


目次

先頭

-


-

Lubuntu 20.10 の安定のため「lightdm」と「xfce4-screensaver」に入替え〈H105〉

登録日: 2021-01-15 更新日: 2021-01-16

「Lubuntu 20.10」をUSB メモリにインストールしました。

前回 のインストール後の設定の続きです。そのときの備忘録です。

-

カーネル「5.8」だと自分の古いPC だと描画系の不具合が発生します。 自分のPC で不安定になる要因をなくすように、よく使われているオーソドックスな構成にカスタマイズしました。

  • 「sddm」を「lightdm」に入替え

  • 「Xscreensaver」を「xfce4-screensaver」に入替え

  • 「Discover」をメニューに表示しないようにして、代わりに「Synaptic」を使用

-

ついでに、ゲームもインストールしました。

-

-

「目次」

-

「Lubuntu 20.10」デスクトップのカスタマイズ後の画面:

→シンプルなデザインです。LightDM に切り替えたときにデスクトップの外観がクリアされたので再設定しました。元のアイコンテーマが見つからないので、以前のLubuntu のアイコンを使用。作業前にアイコンテーマは保存しておいたほうがいいかも。

-


「LightDM」をインストール:

-

参考:

Linuxのログイン画面を変更する

-

現在のディスプレイマネージャを確認:

$ apt list sddm* | grep インストール済み 
:
sddm-theme-lubuntu/groovy,groovy,now 20.10.3 all [インストール済み]
sddm/groovy,now 0.18.1-1ubuntu3 amd64 [インストール済み]

-

「xscreensaver」を無効化:

設定→「Xスクリーンセーバー」→「XScreenSaverの設定」画面

「表示モード」タブ

モード: 「セーバーを無効にする」を選択

ウィンドウの右上の「x」で閉じます

-

「lightdm」を検索:

$ apt search lightdm
:
lightdm/groovy 1.30.0-0ubuntu3.1 amd64
  Display Manager

lightdm-settings/groovy,groovy 1.4.2+dfsg.1-1 all
  LightDM Settings Configuration Tool

slick-greeter/groovy 1.4.1+dfsg.1-1ubuntu1 amd64
  Slick-looking LightDM greeter

-

「lightdm」をインストール:

$ sudo apt install lightdm
:
以下のパッケージが新たにインストールされます:
  accountsservice-ubuntu-schemas activity-log-manager apg
  aptdaemon-data bamfdaemon cheese-common docbook-xml
  evolution-data-server evolution-data-server-common
  gir1.2-dbusmenu-glib-0.4 gir1.2-vte-2.91 gkbd-capplet
  gnome-bluetooth gnome-control-center gnome-control-center-data
  gnome-control-center-faces gnome-desktop3-data gnome-menus
  gnome-online-accounts gnome-power-manager gnome-screensaver
  gnome-session-bin gnome-session-common gnome-settings-daemon
  gnome-settings-daemon-common gnome-startup-applications
  gnome-user-docs gsettings-ubuntu-schemas gstreamer1.0-clutter-3.0
  indicator-applet indicator-application indicator-appmenu
  indicator-bluetooth indicator-common indicator-datetime
  indicator-keyboard indicator-messages indicator-power
  indicator-printers indicator-session indicator-sound jayatana
  language-selector-gnome libaccounts-glib0 libbamf3-2
  libcamel-1.2-62 libcanberra-gtk3-0 libcanberra-gtk3-module
  libcanberra-pulse libcheese-gtk25 libcheese8 libclutter-1.0-0
  libclutter-1.0-common libclutter-gst-3.0-0 libclutter-gtk-1.0-0
  libcogl-common libcogl-pango20 libcogl-path20 libcogl20
  libcolord-gtk1 libdee-1.0-4 libebackend-1.2-10 libebook-1.2-20
  libebook-contacts-1.2-3 libecal-2.0-1 libedata-book-1.2-26
  libedata-cal-2.0-1 libedataserver-1.2-25 libedataserverui-1.2-2
  libfcitx-config4 libfcitx-gclient1 libfcitx-utils0 libgee-0.8-2
  libgeoclue-2-0 libgeocode-glib0 libgeonames-common libgeonames0
  libgnome-bluetooth13 libgnome-desktop-3-19 libgnome-menu-3-0
  libgnome-panel0 libgnomekbd-common libgnomekbd8
  libgoa-backend-1.0-1 libgsound0 libgssdp-1.2-0 libgtop-2.0-11
  libgtop2-common libgupnp-1.2-0 libgupnp-av-1.0-2
  libgupnp-dlna-2.0-3 libgweather-3-16 libgweather-common
  libhandy-1-0 libido3-0.1-0 libindicator3-7 liblightdm-gobject-1-0
  libmediaart-2.0-0 libmessaging-menu0 libphonenumber7
  librygel-core-2.6-2 librygel-db-2.6-2 librygel-renderer-2.6-2
  librygel-server-2.6-2 libtimezonemap-data libtimezonemap1
  libunity-control-center1 libunity-gtk2-parser0
  libunity-gtk3-parser0 libunity-settings-daemon1
  libwhoopsie-preferences0 libwnck-3-0 libwnck-3-common
  libxklavier16 libxres1 libyelp0 libzeitgeist-2.0-0 lightdm
  mousetweaks nautilus-data policykit-1-gnome
  python3-aptdaemon.gtk3widgets python3-macaroonbakery python3-nacl
  python3-protobuf python3-pymacaroons python3-rfc3339 python3-tz
  rygel session-migration sgml-base sgml-data ubuntu-docs
  ubuntu-system-service ubuntu-touch-sounds unity-control-center
  unity-greeter unity-gtk-module-common unity-gtk2-module
  unity-gtk3-module unity-settings-daemon
  unity-settings-daemon-schemas whoopsie-preferences xml-core yelp
  yelp-xsl zeitgeist-core

→余計なパッケージがたくさん入ったみたい。

-

途中で、「lightdm を設定しています」の画面が表示:

上下矢印キーで「lightdm」を選び、Tab キー

<了解> が選ばれた状態で、Enter キー

-

再起動

ログイン画面が「LightDM」に切り替わるはずが、

→「sddm」のログイン画面です。残念ながら切り替わりません。

-

確認:

$ apt list *dm | grep インストール済み
:
lightdm/groovy,now 1.30.0-0ubuntu3.1 amd64 [インストール済み]
sddm/groovy,now 0.18.1-1ubuntu3 amd64 [インストール済み]

→インストールされています。

とりあえず、次のステップに進みます。

-

設定ツールの「ログイン画面」と「Slick Greeter」をインストール:

  • Linux Mint で使われている組み合わせです。
$ sudo apt install lightdm-settings slick-greeter
:
以下のパッケージが新たにインストールされます:
  lightdm-settings python3-psutil python3-setproctitle python3-xapp
  slick-greeter

-

インストールされている「lightdm」用のgreeter を確認

$ ls -1 /usr/share/xgreeters/
slick-greeter.desktop
unity-greeter.desktop  ←(lightdm のデフォルト?)

-

$ apt search greeter | grep インストール済み
:
lightdm/groovy,now 1.30.0-0ubuntu3.1 amd64 [インストール済み]
lightdm-settings/groovy,groovy,now 1.4.2+dfsg.1-1 all [インストール済み]
slick-greeter/groovy,now 1.4.1+dfsg.1-1ubuntu1 amd64 [インストール済 み]
unity-greeter/groovy,now 18.04.0+20.04.20200312-0ubuntu2 amd64 [インストール済み、自動]

-

$ apt search screensaver | grep インストール済み
:
gnome-screensaver/groovy,now 3.6.1-11ubuntu4 amd64 [インストール済み、自動]
gnome-settings-daemon/groovy,now 3.38.0-1ubuntu1 amd64 [インストール 済み、自動]
libpam-gnome-keyring/groovy,now 3.36.0-1ubuntu1 amd64 [インストール済み、自動]
unity-settings-daemon/groovy,now 15.04.1+20.04.20200325-0ubuntu1 amd64 [インストール済み、自動]
xdg-utils/groovy-updates,groovy-updates,groovy-security,groovy-security,now 1.1.3-2ubuntu1.20.10.2 all [インストール済み、自動]
xfce4-screensaver/groovy,now 0.1.10-1 amd64 [インストール済み]

→「Lightdm」のインストールで「gnome-screensaver」と「xdg-utils」が入りました

$ apt search sddm | grep インストール済み
:
sddm/groovy,now 0.18.1-1ubuntu3 amd64 [インストール済み]
sddm-theme-lubuntu/groovy,groovy,now 20.10.3 all [インストール済み]

$ which sddm-greeter
/usr/bin/sddm-greeter

→「sddm-greeter」のパッケージは見つかりません。「sddm」パッケージに「sddm-greeter」は含まれていて、インストールすることでバイナリが入るみたい。

-

lightdm で使うgreeter を指定します:

$ sudo featherpad /etc/lightdm/lightdm.conf

↓ 以下の内容を記述:

[Seat:*]
greeter-session=slick-greeter

-

確認:

$ cat /etc/lightdm/lightdm.conf

-

再起動

-


ディスプレイマネージャを「lightdm」に変更:

-

1. 現在のディスプレイマネージャを確認:

$ ls -l /etc/systemd/system/display-manager.service
lrwxrwxrwx 1 root root 32  1月 11 18:15 /etc/systemd/system/display-manager.service -> /lib/systemd/system/sddm.service

→sddm です。

-

2. 現在のディスプレイマネージャを無効にします:

$ sudo systemctl disable sddm.service
:
Synchronizing state of sddm.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable sddm
Removed /etc/systemd/system/display-manager.service.

-

3. lightdm を有効にします:

  • 「$ sudo systemctl enable lightdm.service」では有効になりませんでした。

-

$ sudo dpkg-reconfigure lightdm

「lightdm」のインストール時に表示された、 ディスプレイマネージャを選ぶための「lightdm を設定しています」の画面が表示:

上下矢印キーで「lightdm」を選び、Tab キー

<了解> が選ばれた状態で、Enter キー

-

4. 現在のディスプレイマネージャを確認:

$ ls -l /etc/systemd/system/display-manager.service
lrwxrwxrwx 1 root root 35  1月 11 22:34 /etc/systemd/system/display-manager.service -> /lib/systemd/system/lightdm.service

→「lightdm」にリンクが貼られました。インストール前にsddm を無効にしておかないと有効化できないみたい。でも、インストールが成功するかはわからないので、事前に無効にするのはリスクがあります。

-

5. 再起動

ダーク系の(クリアされた状態の)新しいログイン画面に変わりました。

パスワードを入れ、ログインすると、デスクトップ画面が表示。

→こちらはとりあえず、壁紙だけ変更した画面です。

デスクトップの設定がクリアされています。一部の設定は残っています。

パネルのテーマや、初期設定で登録されていたブラウザとファイルマネージャの登録が解除され「ここにアプリケーションアイコンをドロップします」が代わりに表示されています。パネルバーが真っ黒な色です。

デスクトップにあるアイコンのテーマも以前のLubuntu で使われていたアイコンになりました。

-


ログイン画面の外観の設定:

設定→「ログイン画面」→パスワード入力→「ログイン画面」表示

「外観」タブ

背景画像: 空 →任意の画像を選択

「ユーザのデスクトップ背景を表示」をオフ

-


デスクトップの外観が変わったので見直し:

設定→「LXQt 設定」→「外観」→「LXQt Appearance Configuration」画面表示

Widget Style」タブ

Qt Style: Fusion ←(そのまま)

-

「Icons Theme」タブ

Icons Theme: Oxygen (Oxygen Team) ←(そのまま)

-

「LXQt Theme」タブ

LXQt Theme: Frost →「Lubuntu Arc」に変更

-


「Xscreensaver」を「xfce4-screensaver」に入替え:

-

1. 「xscreensaver」が、自分のPC で安定動作する基本のセーバのみかを確認:

$ apt search xscreensaver | grep インストール済み
:
xscreensaver/groovy,now 5.42+dfsg1-1ubuntu1 amd64 [インストール済み]
xscreensaver-data/groovy,now 5.42+dfsg1-1ubuntu1 amd64 [インストール済み、自動]

→基本のセーバはパッケージ 2つです。

上記以外(2つ以上のパッケージ)のときは、基本のパッケージ以外は削除:

$ sudo apt remove xscreensaver-data-extra xscreensaver-gl-extra xscreensaver-gl
:
以下のパッケージは「削除」されます:
  lubuntu-desktop xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra

-

2. 「xfce4-screensaver」のインストール:

$ sudo apt install xfce4-screensaver
:
以下のパッケージが新たにインストールされます:
  libgarcon-1-0 libgarcon-common libxfce4ui-1-0 libxfce4ui-2-0
  libxfce4ui-common libxfce4util-bin libxfce4util-common
  libxfce4util7 libxfconf-0-3 xfce4-screensaver xfconf

-

3. インストールされているセーバ(設定ツール)を確認:

$ ls -1 /usr/share/applications/
:
gnome-screensaver.desktop
xfce4-screensaver-preferences.desktop
xscreensaver-properties.desktop

-

4. セーバの設定ツール(xfce4-screensaver-preferences) がメニューに表示されるように修正:

$ sudo featherpad /usr/share/applications/xfce4-screensaver-preferences.desktop

↓ 表示制限をコメント化:

# OnlyShowIn=XFCE;

再起動

メニュー →設定 に、「スクリーンセーバー」が表示されました。

-

5. スクリーンセーバのファイル構成を確認:

$ ls -1 /usr/share/applications/screensavers/
abstractile.desktop
binaryring.desktop
cwaves.desktop
deco.desktop
distort.desktop
fiberlamp.desktop
fuzzyflakes.desktop
galaxy.desktop
hexadrop.desktop
m6502.desktop
metaballs.desktop
penrose.desktop
ripples.desktop
shadebobs.desktop
slidescreen.desktop
swirl.desktop
tessellimage.desktop
xfce-floaters.desktop
xfce-personal-slideshow.desktop
xfce-popsquares.desktop
xlyap.desktop

→xscreensaver が入っているときに、xfce4-screensaver をインストールしたので、 「xscreensaver」と「xfce4-screensaver」の両方のセーバの .desktop ファイルが登録されています。

もしも空なら、一度スクリーンセーバを起動させないと生成されないのかもしれません。

-

6. 実行ファイルの置かれている場所:

$ ls -1 /usr/libexec/xfce4-screensaver/
floaters
popsquares
slideshow

$ ls -1 /usr/lib/xscreensaver/
abstractile
binaryring
cwaves
deco
distort
fiberlamp
fuzzyflakes
galaxy
hexadrop
m6502
metaballs
penrose
popsquares
ripples
shadebobs
slidescreen
swirl
tessellimage
xlyap

-

7. 「xfce4-screensaver」のセーバの実行ファイルをホームに保存:

$ cd ~/ダウンロード/
$ mkdir saver-SAVE
$ cp -r /usr/libexec/xfce4-screensaver/ ~/ダウンロード/saver-SAVE/

$ ls -1 ~/ダウンロード/saver-SAVE/xfce4-screensaver/
floaters
popsquares
slideshow

-

8. 「xscreensaver」の基本のセーバの実行ファイルをホームに保存:

$ cp -r /usr/lib/xscreensaver/ ~/ダウンロード/saver-SAVE/

$ ls -1 ~/ダウンロード/saver-SAVE/xscreensaver/
abstractile
binaryring
cwaves
deco
distort
fiberlamp
fuzzyflakes
galaxy
hexadrop
m6502
metaballs
penrose
popsquares
ripples
shadebobs
slidescreen
swirl
tessellimage
xlyap

-

参考: 「xscreensaver」のフルインストール時(基本+拡張)の実行ファイル:
$ ls /usr/libexec/xscreensaver/
abstractile    engine          juggler3d        rotzoomer
anemone        epicycle        julia            rubik
anemotaxis     eruption        kaleidescope     rubikblocks
antinspect     esper           kaleidocycle     sballs
antmaze        etruscanvenus   klein            scooter
antspotlight   euler2d         kumppa           shadebobs
apollonian     fadeplot        lament           sierpinski
apple2         fiberlamp       lavalite         sierpinski3d
atlantis       filmleader      lcdscrub         skytentacles
attraction     fireworkx       ljlatest         slidescreen
atunnel        flame           lockward         slip
barcode        flipflop        loop             sonar
binaryring     flipscreen3d    m6502            speedmine
blaster        fliptext        maze             spheremonics
blinkbox       flow            maze3d           splitflap
blitspin       fluidballs      memscroller      splodesic
blocktube      flurry          menger           spotlight
boing          flyingtoasters  metaballs        sproingies
bouboule       fontglide       mirrorblob       squiral
bouncingcow    fuzzyflakes     moebius          stairs
boxed          galaxy          moebiusgears     starfish
boxfit         gears           moire            starwars
braid          geodesic        moire2           stonerview
bsod           geodesicgears   molecule         strange
bubble3d       gflux           morph3d          substrate
bumps          gibson          mountain         superquadrics
cage           glblur          munch            surfaces
carousel       glcells         nerverot         swirl
ccurve         gleidescope     noof             tangram
celtic         glhanoi         noseguy          tessellimage
circuit        glitchpeg       pacman           thornbird
cityflow       glknots         pedal            timetunnel
cloudlife      glmatrix        peepers          topblock
companioncube  glplanet        penetrate        triangle
compass        glschool        penrose          tronbit
coral          glslideshow     petri            truchet
crackberg      glsnake         phosphor         twang
crumbler       gltext          photopile        unicrud
crystal        goop            piecewise        unknownpleasures
cube21         grav            pinion           vermiculate
cubenetic      gravitywell     pipes            vfeedback
cubestack      greynetic       polyhedra        vidwhacker
cubestorm      halftone        polyominoes      vigilance
cubetwist      halo            polytopes        voronoi
cubicgrid      handsy          pong             wander
cwaves         helix           popsquares       webcollage
cynosure       hexadrop        projectiveplane  webcollage-helper
dangerball     hexstrut        providence       webcollage.original
decayscreen    hilbert         pulsar           whirlwindwarp
deco           hopalong        pyro             winduprobot
deepstars      hydrostat       qix              wormhole
deluxe         hypertorus      quasicrystal     xanalogtv
demon          hypnowheel      queens           xflame
discoball      ifs             raverhoop        xjack
discrete       imsmap          razzledazzle     xlyap
distort        interaggregate  rd-bomb          xmatrix
drift          interference    ripples          xrayswarm
dymaxionmap    intermomentary  rocks            xspirograph
endgame        jigglypuff      romanboy         zoom
energystream   jigsaw          rorschach

→多くのセーバが入っています。どのような動作かは、公式サイト でレビューを確認できます。

-

9. 「xscreensaver」の基本のセーバの .desktop ファイルをホームに保存:

$ cp -r /usr/share/applications/screensavers/ ~/ダウンロード/saver-SAVE/

-

10. 好みではないセーバの拡張子は「.desktop-除外」に変更しました:

$ cd ~/ダウンロード/saver-SAVE/screensavers/

$ mv cwaves.desktop cwaves.desktop-除外
$ mv deco.desktop deco.desktop-除外
$ mv m6502.desktop m6502.desktop-除外
$ mv penrose.desktop penrose.desktop-除外
$ mv swirl.desktop swirl.desktop-除外
$ mv tessellimage.desktop tessellimage.desktop-除外
$ mv xlyap.desktop xlyap.desktop-除外

-

11. 画像を使うセーバの拡張子は「.desktop-画像使用」に変更しました:

  • 残念ながら、「xfce4-screensaver」からだと、「Xscreensaver」の画像を使うセーバでの画像の設定ができません。

画像の指定が必要なセーバを使いたいたいときは「Xscreensaver」アプリの削除はせずに基本だけ残し「無効」に設定しておくのが良さそうです。画像の設定もでき、セーバの退避や配置も要りません。でも、安定度を考えると、できるだけ削除したいところ。

$ cd ~/ダウンロード/saver-SAVE/screensavers/

$ mv distort.desktop distort.desktop-画像使用
$ mv ripples.desktop ripples.desktop-画像使用
$ mv slidescreen.desktop slidescreen.desktop-画像使用

-

確認:
$ ls -1 ~/ダウンロード/saver-SAVE/screensavers/
abstractile.desktop
binaryring.desktop
cwaves.desktop-除外
deco.desktop-除外
distort.desktop-画像使用
fiberlamp.desktop
fuzzyflakes.desktop
galaxy.desktop
hexadrop.desktop
m6502.desktop-除外
metaballs.desktop
penrose.desktop-除外
ripples.desktop-画像使用
shadebobs.desktop
slidescreen.desktop-画像使用
swirl.desktop-除外
tessellimage.desktop-除外
xfce-floaters.desktop            ←(xfce4-screensaver)
xfce-personal-slideshow.desktop  ←(xfce4-screensaver)
xfce-popsquares.desktop          ←(xfce4-screensaver)
xlyap.desktop-除外

-

.desktop の内容(xscreensaver の例):
$ cat ~/ダウンロード/saver-SAVE/screensavers/abstractile.desktop

[Desktop Entry]
Name=Abstractile
Exec=/usr/lib/xscreensaver/abstractile -root
TryExec=/usr/lib/xscreensaver/abstractile
Comment=Generates mosaic patterns of interlocking tiles. Written by Steve Sundstrom.
StartupNotify=false
Terminal=false
Type=Application
Categories=Screensaver;
OnlyShowIn=MATE;

→実行指定で「-root」を付けているのがポイント。これがないとレビュー枠内に表示されず、別のウィンドウでレビューが開きます。

-

.desktop の内容(xfce4-screensaver の例):
$ cat /usr/share/applications/screensavers/xfce-floaters.desktop
[Desktop Entry]
Name=Floating Xfce
Name[ja]=フローティングXfce
Comment=Bubbles the Xfce logo around the screen
Comment[ja]=Xfceロゴを画面の周りに泡立てる
Exec=/usr/libexec/xfce4-screensaver/floaters /usr/share/pixmaps/xfce-logo-white.svg
TryExec=/usr/libexec/xfce4-screensaver/floaters
StartupNotify=false
Terminal=false
Type=Application
Categories=Screensaver;
OnlyShowIn=XFCE;
Hidden=true

→ちょっとコメントの日本語が変。

-

12. 「Slideshow」テーマのアプリ名を日本語に修正:

$ sudo featherpad ~/ダウンロード/saver-SAVE/screensavers/xfce-personal-slideshow.desktop

-

Name=Slideshow

↓ 1 行追記:

Name=Slideshow
Name[ja]=スライドショー

確認:

$ cat ~/ダウンロード/saver-SAVE/screensavers/xfce-personal-slideshow.desktop
[Desktop Entry]
Name=Slideshow
Name[ja]=スライドショー
Comment=Display a slideshow from your Pictures folder
Comment[ja]=画像フォルダーからスライドショーを表示
:
Exec=/usr/libexec/xfce4-screensaver/slideshow
TryExec=/usr/libexec/xfce4-screensaver/slideshow
StartupNotify=false
Terminal=false
Type=Application
Categories=Screensaver;X-XFCE;
OnlyShowIn=XFCE;
Hidden=true

-

13. 「フローティングXfce」テーマの飛び回る「マウス」を「LXQt」に変更:

$ sudo featherpad ~/ダウンロード/saver-SAVE/screensavers/xfce-floaters.desktop

-

(1) ロゴの変更:

Exec=/usr/libexec/xfce4-screensaver/floaters /usr/share/pixmaps/xfce-logo-white.svg

# Exec=/usr/libexec/xfce4-screensaver/floaters /usr/share/pixmaps/xfce-logo-white.svg
Exec=/usr/libexec/xfce4-screensaver/floaters /usr/share/icons/hicolor/scalable/places/start-here-lxqt.svg

-

(2) タイトルを「フローティングLXQt」に変更:

Name[ja]=フローティングXfce

Name[ja]=フローティングLXQt

-

(3) コメントを修正:

Comment[ja]=Xfceロゴを画面の周りに泡立てる

Comment[ja]=ロゴが画面の周りを飛び回る

確認:

$ cat ~/ダウンロード/saver-SAVE/screensavers/xfce-floaters.desktop
[Desktop Entry]
Name=Floating Xfce
Name[ja]=フローティングLXQt
Comment=Bubbles the Xfce logo around the screen
Comment[ja]=ロゴが画面の周りを飛び回る
:
# Exec=/usr/libexec/xfce4-screensaver/floaters /usr/share/pixmaps/xfce-logo-white.svg
Exec=/usr/libexec/xfce4-screensaver/floaters /usr/share/icons/hicolor/scalable/places/start-here-lxqt.svg
TryExec=/usr/libexec/xfce4-screensaver/floaters
StartupNotify=false
Terminal=false
Type=Application
Categories=Screensaver;X-XFCE;
OnlyShowIn=XFCE;
Hidden=true

-


14. 「ポップアートスクウェア」テーマのデスクトップファイルも確認:

$ cat /usr/share/applications/screensavers/xfce-popsquares.desktop
[Desktop Entry]
Name=Pop art squares
Name[ja]=ポップアートスクウェア
:
Comment=A pop-art-ish grid of pulsing colors.
Comment[ja]=パルス色のポップアート風のグリッド
Exec=/usr/libexec/xfce4-screensaver/popsquares
TryExec=/usr/libexec/xfce4-screensaver/popsquares
StartupNotify=false
Terminal=false
Type=Application
Categories=Screensaver;X-XFCE;
OnlyShowIn=XFCE;
Hidden=true

-


15. 「xscreensaver」を削除:

  • 画像の指定が必要な「xscreensaver」のセーバを使いたいときは、画像の指定ができなくなるので、「xscreensaver」アプリの削除はせずに「無効」に設定しておきます。
$ sudo apt remove xscreensaver
:
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libglade2-0 libjpeg-turbo-progs xscreensaver-data
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
  xscreensaver

残骸の削除:

$ sudo apt autoremove

-

16. 保存していた「xscreensaver」のセーバをシステムに配置:

$ sudo cp -r ~/ダウンロード/saver-SAVE/xscreensaver /usr/lib/

$ ls -1 /usr/lib/xscreensaver/
abstractile
binaryring
cwaves
deco
distort
fiberlamp
fuzzyflakes
galaxy
hexadrop
m6502
metaballs
penrose
popsquares
ripples
shadebobs
slidescreen
swirl
tessellimage
xlyap

$ ls -1 /usr/libexec/xfce4-screensaver/
floaters
popsquares
slideshow

-

17. 「xscreensaver」のセーバの .desktop ファイルをシステムに配置:

$ ls -1 /usr/share/applications/screensavers/
xfce-floaters.desktop
xfce-personal-slideshow.desktop
xfce-popsquares.desktop

$ sudo cp ~/ダウンロード/saver-SAVE/screensavers/*.desktop /usr/share/applications/screensavers/

$ ls -1 /usr/share/applications/screensavers/
abstractile.desktop
binaryring.desktop
fiberlamp.desktop
fuzzyflakes.desktop
galaxy.desktop
hexadrop.desktop
metaballs.desktop
shadebobs.desktop
xfce-floaters.desktop
xfce-personal-slideshow.desktop
xfce-popsquares.desktop

→好みではないセーバ(.desktop-除外)と画像を使うセーバ(.desktop-画像使用)は入れてません。

-

18. スクリーンセーバー「xfce4-screensaver」にテーマが追加されたか確認:

設定→「スクリーンセーバー」→「スクリーンセーバーの設定」画面 →「スクリーンセーバー」タブ

テーマ:

- ブランク画面
- ランダム
- 「xscreensaver」のセーバ
- スライドショー
- フローティングLXQt
- ポップアートスクウェア
- 画面のロック

→複数の「xscreensaver」のセーバが追加されました。レビューで動作を確認。

-

19. 残念ながら、「xfce4-screensaver」からは「xscreensaver」の画像を使うセーバでの画像の設定ができません。

  • 画像の指定が必要なセーバを使いたいたいときは「Xscreensaver」アプリの削除はしないで残すのが無難です。でも、できたら削除したいところ。

-

20. 「xfce4-screensaver」を自動起動に登録:

メニュー →「設定」→「LXQt 設定」→「セッション」

自動起動」タブ→「追加」ボタンをクリック

名称: xfce4-screensaver
コマンド: xfce4-screensaver

→「閉じる」

-

下記のファイルが自動的に作成されます:
$ which xfce4-screensaver
/usr/bin/xfce4-screensaver

$ ls ~/.config/autostart/
xfce4-screensaver.desktop

$ cat ~/.config/autostart/xfce4-screensaver.desktop
[Desktop Entry]
Exec=xfce4-screensaver
Name=xfce4-screensaver
Type=Application
Version=1.0

再起動

-


「画面のロック」での問題

-

問題: メニュー→「画面のロック」が起動できず、下記のエラーダイアログが表示されます:

-

スクリーンセーバーのエラー

"xdg-screensaver lock"の実行に失敗しました。
xdg-screensaver 互換のロッカーまたはスクリンセーバーが
インストールされ実行されているか確認して下さい。

確認:

$ which xdg-screensaver
/usr/bin/xdg-screensaver

→lightdm のインストールで依存として「xdg-utils」は入っています。

-

ヘルプ表示:
$ xdg-screensaver --help
xdg-screensaver - command line tool for controlling the screensaver

Synopsis
xdg-screensaver suspend WindowID
xdg-screensaver resume WindowID
xdg-screensaver { activate | lock | reset | status }
xdg-screensaver { --help | --manual | --version }

Use 'man xdg-screensaver' or 'xdg-screensaver --manual' for additional info.

→コマンドはありますが、動作しません。

-

問題: 画面ロックに「xdg-screensaver lock」を使っても何も起こりません

$ xdg-screensaver lock

→何も起こりません。何かを動かさないとダメなのかも。

-

問題: 画面ロックに「dm-tool lock」を使うと解除時にエラー表示、OK とすると強制ログアウト:

$ dm-tool lock

1回めのロック画面でパスワード入力すると、「"xdg-screensaver lock" の実行に失敗しました。」が表示され、OK とすると2回めのロック画面になります。パスワード入力にてロック解除すると、新規ログインと同じく、アプリがデータ保存されずに終了しています。なので致命的。たぶん、2回めは強制ログアウトだろうと思います。

-

参考: 「light-locker」は使えませんでした

シンプルなロッカー (gnome-screensaver のフォーク)。セッションをロックするために LightDM を使っています。

-

検索:
$ apt search light-locker
:
light-locker/groovy 1.8.0-1ubuntu1 amd64
  simple screen locker for lightDM display manager

light-locker-settings/groovy,groovy 1.5.0-0ubuntu4 all
  simple configuration tool for light-locker

-

インストール:
$ sudo apt install light-locker light-locker-settings
:
以下のパッケージが新たにインストールされます:
  light-locker light-locker-settings

-

ヘルプ表示:
$ light-locker-command --help

用法:
  light-locker-command [オプション…]

ヘルプのオプション:
  -h, --help                 ヘルプのオプションを表示する

アプリケーションのオプション:
  -q, --query                Query the state of the locker
  -t, --time                 Query the length of time the locker has been active
  -l, --lock                 Tells the running locker process to lock the screen immediately
  -a, --activate             Turn the screensaver on (blank the screen)
  -d, --deactivate           If the screensaver is active then deactivate it (un-blank the screen)
  -p, --poke                 Poke the running locker to simulate user activity
  -i, --inhibit              Inhibit the screensaver from activating. Terminate the light-locker-command process to end inhibition.
  -n, --application-name     The calling application that is inhibiting the screensaver
  -r, --reason               The reason for inhibiting the screensaver
  -V, --version              このアプリケーションのバージョンを表示する

-

画面ロック:
$ light-locker-command -l

** Message: 23:43:08.685: Received error message from the locker: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ScreenSaver was not provided by any .service files

→使えないのでアンインストール。

-

参考: 「画面のロック」には「lxqt-leave --lockscreen」が使われていました

$ which lxqt-leave
/usr/bin/lxqt-leave

$ lxqt-leave --help
使い方: lxqt-leave [オプション]
LXQt Leave

オプション:
  -h, --help     Displays help on commandline options.
  --help-all     Displays help including Qt specific options.
  -v, --version  バージョン情報を表示する。
  --logout       ログアウトする。
  --lockscreen   画面をロックする。
  --suspend      サスペンドする。
  --hibernate    ハイバネートする。
  --shutdown     シャットダウンする。
  --reboot       再起動する。

-

問題: メニュー→「終了」→「離席しますか?」→「画面のロック」でのエラーは修正できず

メニュー→「終了」→「離席しますか?」(終了ダイアログ)→「どの操作を選択しますか」画面 (lxqt-leave)

で表示される「画面のロック」(lxqt-leave --lockscreen) はバイナリ(lxqt-leave) からの呼び出しなので、これだけを非表示にするのは難しいです。修正できませんでした。

-

また、エラー表示から、「lxqt-leave --lockscreen」にて「xdg-screensaver lock」が呼び出されているのがわかります。

-

単体操作での「画面ロック」は下記のコマンドでは実現できませんでした:

xdg-screensaver lock
light-locker-command -l
xflock4
dm-tool lock
lxqt-leave --lockscreen

-

参考: 「xfce4-screensaver」にある「画面のロック」のセーバなら正常に使えます

タイマーでの画面ロックは可能です。 コマンドでの起動方法がわかれば利用できそうです。

-

追記: 「xfce4-screensaver」の「画面ロック」コマンドを見つけました:

$ ls /usr/bin/xfce4-screensaver*
xfce4-screensaver
xfce4-screensaver-command
xfce4-screensaver-configure
xfce4-screensaver-preferences

-

コマンドのヘルプ表示:
$ xfce4-screensaver-command --help
用法:
  xfce4-screensaver-command [オプション…]

ヘルプのオプション:
  -h, --help                 ヘルプのオプションを表示する

アプリケーションのオプション:
  --exit                     スクリーンセーバーを正常に終了させる
  -q, --query                スクリーンセーバーの状態を問い合わせる
  -t, --time                 スクリーンセーバーがアクティブになっていた時間を問い合わせる
  -l, --lock                 実行中のスクリーンセーバープロセスに画面をすぐにロックするよう指示する
  -c, --cycle                スクリーンセーバーがアクティブな場合は別のグラフィックデモに切り替えます
  -a, --activate             スクリーンセーバーをオンにする(画面をブランクにする)
  -d, --deactivate           スクリーンセーバーがアクティブになっている場合は非アクティブにする(画面の非ブランク化を解除する)
  -p, --poke                 実行中のスクリーンセーバーをつついて、ユーザーアクティビティをシミュレートする
  -i, --inhibit              スクリーンセーバーのアクティブ化を禁止します。禁止されている間はコマンドをブロックします。
  -n, --application-name     スクリーンセーバーを禁止している呼び出し元アプリケーション
  -r, --reason               スクリーンセーバーを禁止する理由
  -V, --version              このアプリケーションのバージョン

-

画面のロック:
$ xfce4-screensaver-command -l

-


「画面のロック」のショートカットキーを設定:

  • Windows+L で「画面のロック」されるように設定し直しました。

メニュー→「設定」→「LXQt 設定」→「ショートカットキー」→「グロオーバル・アクションの管理」画面表示

-

「Xscreensaver」の場合:

ショートカット: Ctrl+Alt+L
説明: lockscreen
タイプ: コマンド
情報: xdg-screensaver lock

↓ 変更:

-

「xfce4-screensaver」の場合:

ショートカット: Meta+L (Windows+L )
説明: lockscreen
タイプ: コマンド
情報: xfce4-screensaver-command -l

-


メニュー →「画面のロック」が実行できるように修正:

-

メニューファイルの確認:

$ ls ~/.cache/menus/
d3d7808657978cd871f9c653aeb26140

→元のメニューファイルは「/etc/xdg/menus/lxqt-applications.menu」

-

メニューファイルの内容を確認:

$ cat ~/.cache/menus/d3d7808657978cd871f9c653aeb26140

:
-lxqt-lockscreen.desktop
画面のロック
画面をロックします
system-lock-screen

8
画面のロック
lxqt-leave --lockscreen

-

メニュー →「画面のロック」が実行できるように修正:

$ sudo featherpad /usr/share/applications/lxqt-lockscreen.desktop

修正:

Exec=lxqt-leave --lockscreen

# Exec=lxqt-leave --lockscreen
Exec=xfce4-screensaver-command -l

再起動

-


「Discover」をメニューに表示しないように設定:

システムと連携している可能性があるのでアンインストールせずに、メニューに表示されないように設定。誤って起動されないようにしました。

$ sudo featherpad /usr/share/applications/org.kde.discover.desktop
  1. [Desktop Entry] の最終行に追加:
# ↓ 追加: メニュー表示なし:
OnlyShowIn=XFCE;
  1. [Desktop Action Updates] の最終行に追加:
# ↓ 追加: メニュー表示なし:
OnlyShowIn=XFCE;

再起動

メニュー →「システムツール」→「Discover」が見当たりません。

-


Lubuntu 20.10 でゲーム

-

1. マインスイーパ:

$ sudo apt install kmines

→多くのパッケージがインストールされます。

-

実行時の画面:

→隣接する爆弾の数のヒントを頼りに、怪しいコマは右クリックしてマーク(旗)。 爆弾ではないと思ったコマは左クリックでめくって行きます。

-

2. ソリティアクロンダイク):

  • カードゲーム集
$ sudo apt install aisleriot

実行時の画面:

-

3. 上海 (KMahjongg):

  • 立体的に置かれたパイから同じパイを取っていくゲーム
$ sudo apt install kmahjongg
:
以下のパッケージが新たにインストールされます:
  kmahjongg

-

実行時の画面:

-

4. 四川省 (Shisen-Sho):

  • 2コーナーまでに結ばれた同じパイを取っていくゲーム
$ sudo apt install kshisen
:
以下のパッケージが新たにインストールされます:
  kshisen
  libkf5kmahjongglib5

→最初の起動にて、下記の注意勧告のメッセージ「Error Loading Tiles -- Shisen-Sho」が2回表示されます。

「An error occurred when loading the tileset. /usr/share/kmahjongglib/tilesets/default.desktop and the default tileset have been tried. Please install the KMahjongg library.」

和訳:

「タイルセットのロード中にエラーが発生しました。 /usr/share/kmahjongglib/tilesets/default.desktop とデフォルトのタイルセットが試されました。 KMahjonggライブラリをインストールしてください。」

→「libkf5kmahjongglib5 (4:17.08.3-1)」にて牌(パイ)と背景のデータをロードするみたい。「kmahjongg」を先にインストールしているので正常に動作します。

-

実行時の画面:

下のパイがなくなると上のパイは落ちてきます。 取る順番が問われますが、すべてのパイを取れるとは限りません。

-

5. 麻雀 (kajongg):

  • 音声付きの英語での麻雀

日本語化されているのはメニューバーくらいです。「捨てたパイ名、ポン、チー、カン」が外国の男女(ロボット)の声で英語です。あがりは「マージャン」でした。おもしろいですね。ルールは中国式で戸惑います。

花パイがあり、点棒はなし(点数は帳簿に記入らしい)。流れたときテンパイしている必要はありません。リーチがなく、8点以上の手でなければあがれないみたい。8点しばりとリーチがないのは初心者にはつらいところ。

ルールについては、中国麻雀 を参照。 ヘルプもあるけど英語なので面倒。

$ sudo apt install kajongg
:
提案パッケージ:
  python-attr-doc python3-tk python3-pampy python3-qt4
  python3-serial python3-wxgtk2.8 python3-twisted-bin-dbg
以下のパッケージが新たにインストールされます:
  kajongg python3-attr python3-automat python3-constantly
  python3-hamcrest python3-hyperlink python3-incremental
  python3-pyasn1 python3-pyasn1-modules python3-pyqt5.qtsvg
  python3-service-identity python3-twisted python3-twisted-bin
  python3-zope.interface

→多くのパッケージがインストールされます。

-

実行時の画面:

メニューバー →「Play」→ユーザ名、ルールの選択 →「OK」→ゲーム開始

自分の番になると自動でツモってきます。捨てるときは、パイを選んで「Discard」をクリック。

「Quit Kajongg」で終了。

和訳:

「Discard」: パイを捨てます

「No Claim」: 申告なし(スキップ)→待たずに次に早く進みたいとき

→連続クリックは気をつけないと、「Discard」に変わっていて、大事なパイを捨ててしまいます。

-

Kajongg のプレイ開始でエラー表示。音声が出ません。

「No voices will be heard because the program ogg123 is missing」表示され、音声が出ません。

-

不足のパッケージをインストール:
$ sudo apt install vorbis-tools
:
以下のパッケージが新たにインストールされます:
  vorbis-tools

→エラーは出なくなりましたが、音声は出ません。まだ不足しているのか…。

-

「kajongg」をアンインストールしてインストールし直し、再起動で音声が出ました。
$ sudo apt remove kajongg
$ sudo apt install kajongg

再起動

-

ついでに、ゲームのメニューを修正:

1. マインスイーパ:
$ sudo featherpad /usr/share/applications/org.kde.kmines.desktop

↓ 追記または修正:

Name[ja]=KMines マインスィーパ
GenericName[ja]=地雷ゲーム

-

2. ソリティアクロンダイク
$ sudo featherpad /usr/share/applications/sol.desktop

↓ 追記または修正:

Name[ja]=sol ソリティア(クロンダイク)
GenericName[ja]=多くのソリティアゲーム集

-

3. 上海 (KMahjongg):
$ sudo featherpad /usr/share/applications/org.kde.kmahjongg.desktop

↓ 追記または修正:

Name[ja]=KMahjongg 上海
GenericName[ja]=マージャン牌ゲーム

-

4. 四川省 (Shisen-Sho):
$ sudo featherpad /usr/share/applications/org.kde.kshisen.desktop

↓ 追記または修正:

Name[ja]=kshisen 四川省 (Shisen-Sho)
GenericName[ja]=マージャン牌ゲーム

-

5. 麻雀 (kajongg):
$ sudo featherpad /usr/share/applications/org.kde.kajongg.desktop

↓ 追記または修正:

Name[ja]=kajongg 四人麻雀
GenericName[ja]=中国式の四人麻雀

-

ログアウト→ログイン

-

-


まとめ

思っていた以上に安定しています。パーフォーマンスも下がっていません。

「画面のロック」も実行できるようになりました。これで運用しようと思います。

もしかしたら、古いPC を使っていて、スクリーンセーバーからの復帰で画像が真っ暗とかの現象が出ているときの参考になるかもしれません。

-

-


目次

先頭

-


-

Lubuntu 20.10 にて「featherpad 0.17.1」と「audacious 4.0.5」をビルドしてインストール〈H104〉

登録日: 2021-01-11 更新日: 2021-01-11

「Lubuntu 20.10」をUSB メモリにインストールしました。

前回 のインストール後の設定の続きです。そのときの備忘録です。

-

「qpdfview」を日本語化。そして、要望のあった最新の「featherpad」と「audacious」をビルドしてインストールしてみました。

-

-

「目次」

-

「Lubuntu 20.10」デスクトップのカスタマイズ後の画面:

→シンプルなデザインです。右に開いているウィンドウは標準で入っている「featherpad 0.12.1」です。

-


「qpdfview」

自炊本の閲覧によく使っているPDF ビュワーです。

表紙付きの見開きページが表示できます。そして、右とじ、左とじに対応(読む方向を指定)できます。 両方の機能が使えるビュワーは少ないです。感謝。

-

Lubuntu 20.10 には、すでにインストールされています:

$ apt list qpdfview
:
qpdfview/groovy,now 0.4.18-1build1 amd64 [インストール済み]

-

qpdfview の起動:

メニュー →オフィス →「qpdfview」

-

qpdfview を日本語化:

-

1. qpdfview のソースをダウンロード

(1). qpdfview のサイトをブラウザで開きます。

公式サイト: qpdfview

(2). 右にある、Downloads 「qpdfview-0.4.18.tar.gz 」をクリック。

→Downloads Latest version is 0.4.18 (2019-07-24)

(3). ダウンロードした「qpdfview-0.4.18.tar.gz」を右クリック→「ここに展開」

→ 「~/ダウンロード/qpdfview-0.4.18」フォルダが新しく作られました。

-

2. 翻訳に使うツール(lrelease)の準備:

「Qt ツール」のインストール:

$ sudo apt install qttools5-dev-tools
:
以下のパッケージが新たにインストールされます:
  libclang1-10 libllvm10 libqt5designercomponents5 qdoc-qt5
  qhelpgenerator-qt5 qt5-assistant qtattributionsscanner-qt5
  qtchooser qttools5-dev-tools

確認:

$ lrelease --version
Usage:
    lrelease [options] project-file
    lrelease [options] ts-files [-qm qm-file]
:

-

3. 好みの翻訳(言い回し)に修正:

$ cd ~/ダウンロード/qpdfview-0.4.18/translations/

$ pluma qpdfview_ja.ts

→例: 「しおり」→「ブックマーク」へ一括置換。このあたりは好み。自己責任。さわらなくてもOK。

-

問題: 端末から「featherpad 0.12.1」を起動すると、ワーキングディレクトリが無視されてホームに作成されます

ファイルマネージャから右クリックで開くとOK でした。この手順だと pluma を使うのが良さそう。 featherpad でもパス付きでファイル指定すれば問題ありません。

ちなみに、ビルドしてインストールした「featherpad 0.17.1」だと、この問題は解決していました。

-

4. コンパイル:

$ lrelease qpdfview_ja.ts

-

5. 配置:

$ sudo cp qpdfview_ja.qm /usr/share/qpdfview/qpdfview_ja.qm

-

6. 動作確認:

-

日本語化された画面:

→ヘルプファイルはHTML ファイルで、英語のままです。

-


「featherpad」

Lubuntu 20.10 の標準のテキストエディタです。軽くてハイライト表示が見やすいです。 少しずつ強化されています。日々の努力に感謝。

Lubuntu 20.10 には、すでに「featherpad」はインストールされています:

$ apt list featherpad
:
featherpad/groovy,now 0.12.1-1build1 amd64 [インストール済み]

$ featherpad --version
FeatherPad 0.12.1

$ ls -1 /usr/share/featherpad/
help
help_ja_JP
translations

$ ls -1 ~/.config/featherpad/
fp.conf
fp_last_cursor_pos.conf

→日本語化されています。「_ja_JP」指定になっていることに注意。

-


featherpad をソースからビルドしてインストール:

-

事前準備としてアンインストール:

  • 通常なら上書きインストールで良いと思いますが、現在使っているバージョンと最新とではファイル構成が違います。 混乱しないように、アンインストールして、残っている設定ファイルも削除しました。

-

まずは、別のテキストエディタ「pluma」が使えることを確認

-

featherpad をアンインストール:

$ sudo apt remove featherpad
:
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  featherpad-l10n
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
  featherpad

→翻訳ファイルは別のパッケージ(言語パック)になっているみたい。依存で削除されず、取り残されています。

-

残骸の削除:

$ sudo apt autoremove

$ cd ~/.config/
$ rm -r featherpad

→取り残されたパッケージを削除。設定ファイルはフォルダごと削除。配下のファイルを削除しても可。

-

公式サイト:

tsujan/FeatherPad

-

ビルドとインストール、翻訳の手順:

INSTALL

-

1. 作業用に、~/Git/ フォルダ作成(任意)

$ cd
$ mkdir Git

-

2. git があるか確認:

$ git --version
git version 2.27.0

-

3. ビルドの依存関係をインストール:

Debian ベースの場合:

$ sudo apt update
$ sudo apt install g++ libx11-dev libxext-dev qtbase5-dev libqt5x11extras5-dev libqt5svg5-dev libqt5svg5-dev libhunspell-dev qttools5-dev-tools
:
qttools5-dev-tools はすでに最新バージョン (5.14.2-3) です。
以下のパッケージが新たにインストールされます:
  binutils binutils-common binutils-x86-64-linux-gnu g++ g++-10 gcc
  gcc-10 libasan6 libatomic1 libbinutils libc-dev-bin libc6-dev
  libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libegl-dev
  libgcc-10-dev libgl-dev libglu1-mesa-dev libglx-dev
  libhunspell-dev libitm1 liblsan0 libnsl-dev libpthread-stubs0-dev
  libqt5opengl5 libqt5opengl5-dev libqt5svg5-dev
  libqt5x11extras5-dev libstdc++-10-dev libtirpc-dev libtsan0
  libubsan1 libvulkan-dev libx11-dev libxau-dev libxcb1-dev
  libxdmcp-dev libxext-dev linux-libc-dev manpages-dev qt5-qmake
  qt5-qmake-bin qtbase5-dev qtbase5-dev-tools rpcsvc-proto
  x11proto-core-dev x11proto-dev x11proto-xext-dev
  xorg-sgml-doctools xtrans-dev

→「qpdfview」の日本語化で入っているパッケージがあります。

-

4. ソースをダウンロード:

$ cd ~/Git/

[~/Git]$ git clone https://github.com/tsujan/FeatherPad.git

[~/Git]$ cd ~/Git/FeatherPad/

[~/Git/FeatherPad]$ ls -a
.     CMakeLists.txt  INSTALL    cmake       screenshots
..    COPYING         NEWS       featherpad
.git  ChangeLog       README.md  fp.pro

→git コマンドを使う場合、「.git 」があるのがポイントです。 コマンドプロンプトにワーキングディレクトリ名も表記したのは、git コマンドを使うときに重要だからです。

-


5. cmake を使ってビルドする場合

  • もし、ビルドに失敗したら、「~/Git/FeatherPad」にある「build」フォルダを削除して、5-2. cmake からやり直します。

→失敗するようなら、依存パッケージの不足が考えられます。

-

5-1. ビルドのツールが準備できているか確認:

-

make をインストール:
$ sudo apt install make
:
以下のパッケージが新たにインストールされます:
  make

$ make --version
GNU Make 4.3

-

cmake をインストール:
$ sudo apt install cmake
:
以下のパッケージが新たにインストールされます:
  cmake cmake-data libjsoncpp1 librhash0

$ cmake --version
cmake version 3.16.3

-

5-2. cmake を実行:

$ cd ~/Git/FeatherPad/
[~/Git/FeatherPad]$ mkdir build && cd build

→「build」フォルダを作成、そこに出力して作業エリアを分離しているので、汚れません。

-

[~/Git/FeatherPad/build]$ cmake ..

-- The C compiler identification is GNU 10.2.0
-- The CXX compiler identification is GNU 10.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Found HUNSPELL: /usr/lib/x86_64-linux-gnu/libhunspell-1.7.so (found suitable version "1.7.0", minimum required is "1.6") 
-- Found X11: /usr/include   
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubn/Git/FeatherPad/build

→これは使われるツール類がそろっているかのチェックです。エラーがないことを確認。 エラー表示されるなら依存パッケージが不足しています。

[~/Git/FeatherPad/build]$ ls

CMakeCache.txt  CMakeFiles  Makefile  cmake_install.cmake  featherpad

→新しく作られた「build」フォルダは空でしたが、多くのファイルが作られました。

-

5-3. make を実行:

[~/Git/FeatherPad/build]$ make

make[1]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
Scanning dependencies of target featherpad_autogen
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
[  2%] Automatic MOC and UIC for target featherpad
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
[  2%] Built target featherpad_autogen
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
[  5%] Automatic RCC for data/fp.qrc
Scanning dependencies of target featherpad
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
[  7%] Building CXX object featherpad/CMakeFiles/featherpad.dir/featherpad_autogen/mocs_compilation.cpp.o
[ 10%] Building CXX object featherpad/CMakeFiles/featherpad.dir/main.cpp.o                                   
:
[ 94%] Building CXX object featherpad/CMakeFiles/featherpad.dir/featherpad_autogen/QYFM2Z2WYQ/qrc_fp.cpp.o
[ 97%] Linking CXX executable featherpad
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
[ 97%] Built target featherpad
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
Scanning dependencies of target fpad_symlink
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
[100%] Creating fpad as a symlink to featherpad
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
[100%] Built target fpad_symlink
make[1]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます

確認:

[~/Git/FeatherPad/build]$ ls
CMakeCache.txt  CMakeFiles  Makefile  cmake_install.cmake  featherpad

[~/Git/FeatherPad/build]$ ls featherpad/
CMakeFiles  cmake_install.cmake  featherpad_autogen
Makefile    featherpad           fpad

→以前のバージョンだと、このディレクトリに「featherpad_ja.qm」が作成されました。最新では分離されてます。

[~/Git/FeatherPad/build]$ ls featherpad/featherpad_autogen/
EWIEGA46WW  QYFM2Z2WYQ  include  moc_predefs.h  mocs_compilation.cpp

-

5-4. インストール

[~/Git/FeatherPad/build]$ sudo make install

[sudo]  パスワード:
make[1]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
[  2%] Automatic MOC and UIC for target featherpad
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
[  2%] Built target featherpad_autogen
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
[ 97%] Built target featherpad
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' に入ります
[100%] Creating fpad as a symlink to featherpad
make[2]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
[100%] Built target fpad_symlink
make[1]: ディレクトリ '/home/ubn/Git/FeatherPad/build' から出ます
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/bin/featherpad
-- Installing: /usr/share/applications/featherpad.desktop
-- Installing: /usr/share/icons/hicolor/scalable/apps/featherpad.svg
-- Installing: /usr/share/featherpad/help
-- Installing: /usr/share/featherpad/help_ja
-- Installing: /usr/share/featherpad/help_pt_BR
-- Installing: /usr/bin/fpad

→インストールが完了しました。どこにどのファイルが配置されたかが表示されています。

  • 以前のバージョンだと、ここで下記のように「featherpad_ja.qm」がシステムに配置されました:
-- Installing: /usr/share/featherpad/translations/featherpad_ja.qm

→最新だと実行されません。つまり、翻訳ファイルは別のパッケージに分離されています。 アプリを日本語化するには別途インストールが必要です。

-

5-5. 確認:

$ featherpad --version
FeatherPad 0.17.1

$ which featherpad
/usr/bin/featherpad

$ whereis featherpad
featherpad: /usr/bin/featherpad /usr/share/featherpad

$ ls /usr/share/featherpad/
help  help_ja  help_pt_BR

→翻訳ファイルと違いヘルプファイルは分離されていません。翻訳ファイルが分離前の時点で、ヘルプが翻訳されていたのは日本とブラジルのみだったと予想されます。この help_ja は初版で、それ以降は翻訳ファイルのパッケージに含まれます。

翻訳ファイルのパッケージをインストールすると、そこからヘルプファイルは上書きされます。できるだけアプリ本体と翻訳ファイルのバージョンを合わせるのがベター。ただし、違っても追加機能の翻訳が漏れるくらい。

-


6. 参考: featherpad の設定ファイル:

$ ls ~/.config/featherpad/

→インストール直後だと、配下にファイルは作成されていません。

-

アプリの起動後:

$ ls ~/.config/featherpad/
fp.conf

→アプリの起動や、設定を行うと作成されます。

-

有効化する機能で設定ファイルが増えます:

$ ls -l ~/.config/featherpad/
:
-rw-rw-r-- 1 ubn ubn 1189  1月  9 07:18 fp.conf
-rw-rw-r-- 1 ubn ubn  315  1月  9 07:32 fp_last_cursor_pos.conf

→下に表示しているファイルは「最後のウィンドウのファイルを開いて起動する」にチェックした場合に、ファイルを保存してタブを閉じないでアプリを終了した場合に作成されます。カーソル位置も保存されています。

$ cat ~/.config/featherpad/fp_last_cursor_pos.conf
[General]
cursorPositions=@Variant(\0\0\0\x1c\0\0\0\x1\0\0\0h\0/\0h\0o\0m\0\x65\0/\0u\0\x62\0n\0/0\xc9\x30\xad\x30\xe5\x30\xe1\x30\xf3\x30\xc8\0/\0\x32\0\x30\0\x32\0\x31\0-\0\x30\0\x31\0-\0\x30\0\x34\0-\0L\0u\0\x62\0u\0n\0t\0u\0-\0\x32\0\x30\0-\0\x31\0\x30\0-\0i\0n\0s\0t\0\x61\0l\0l\0.\0m\0\x64\0\0\0\x2\0\0\xe6u)

-

ヘルプファイル:

$ ls -1 /usr/share/featherpad/help*
/usr/share/featherpad/help
/usr/share/featherpad/help_ja
/usr/share/featherpad/help_pt_BR

→単なるテキストファイルで、ファイル名に意味があります:

$ cat /usr/share/featherpad/help_ja

**************************************
*   便利なキーボードショートカット   *
**************************************
Ctrl+H          このヘルプを表示
Ctrl+L          行番号の表示/非表示
Ctrl+W          行番号の表示の切替
Ctrl+I          自動インデントの切替
:(省略)

→個人的には、ファイルの先頭に「個人的な備忘録」を追記。更新で上書きされるので注意。

-

翻訳ファイル(日本語):

$ ls /usr/share/featherpad/translations/*ja*
/usr/share/featherpad/translations/featherpad_ja.qm

-


7. 別れている翻訳ファイルをどうインストールするのかを考えます:

$ apt search featherpad
:
featherpad/groovy 0.12.1-1build1 amd64
  Lightweight Qt5 plain-text editor

featherpad-l10n/groovy,groovy 0.12.1-1build1 all
  Language package for featherpad

→単に、「featherpad-l10n」をインストールするだけでも日本語化はできますが、たぶん、翻訳されていない部分が出そう。

リポジトリの登録が推奨みたいですが、今回のみの、ペアとなる最新のパッケージをダウンロードしました。

-

翻訳パッケージの在り処を検索:

Ubuntu パッケージ検索

下記で検索:

キーワード: featherpad-l10n
「パッケージ名のみ」にチェック
Distribution: すべて

↓ ヒット:

featherpad-l10n パッケージ

    focal (20.04LTS) (localization): Language package for featherpad [universe]
    0.12.1-1build1: all

    groovy (20.10) (localization): Language package for featherpad [universe]
    0.12.1-1build1: all

    hirsute (localization): Language package for featherpad [universe]   ←(選択)
    0.17.1-1: all

  • パッケージのバージョンの選択:

パッケージ: featherpad-l10n (0.17.1-1) (universe)

-

アーキテクチャ all

-

  • ミラーサーバーの選択:

北アメリカ mirrors.kernel.org/ubuntu

-


8. 翻訳パッケージのダウンロード:

» Ubuntu » パッケージ » hirsute » featherpad-l10n » all » ダウンロード

featherpad-l10n_0.17.1-1_all.deb のダウンロードページ

→インストールにより、ドキュメント、および、下記のファイルがシステムに配置されます:

/usr/share/featherpad/help_ja
/usr/share/featherpad/translations/featherpad_ja.qm

-

翻訳パッケージのインストール前の確認:

$ ls -l /usr/share/featherpad/
:
-rw-r--r-- 1 root root 17456  1月  9 00:01 help
-rw-r--r-- 1 root root 16739  1月  9 00:01 help_ja
-rw-r--r-- 1 root root 18073  1月  9 00:01 help_pt_BR

-

ダウンロード:

ミラー: 北アメリカ mirrors.kernel.org/ubuntu

-

チェックサム確認:

$ cd ~/ダウンロード/

$ sha256sum featherpad-l10n_0.17.1-1_all.deb
9520656bdd40257a5be2dfcc06d348c5794f2ffc708e77e7c52c384c3508dda0  featherpad-l10n_0.17.1-1_all.deb

-


9. ダウンロードした「deb パッケージ」をインストール:

$ cd ~/ダウンロード/
$ sudo apt install ./featherpad-l10n_0.17.1-1_all.deb
:
注意、'./featherpad-l10n_0.17.1-1_all.deb' の代わりに 'featherpad-l10n' を選択します
以下のパッケージが新たにインストールされます:
  featherpad-l10n

-

インストールされたかの確認:

$ apt list featherpad-l10n
:
featherpad-l10n/now 0.17.1-1 all [インストール済み、ローカル]
N: 追加バージョンが 1 件あります。表示するには '-a' スイッチを付けてください。

$ apt list -a featherpad-l10n
:
featherpad-l10n/now 0.17.1-1 all [インストール済み、ローカル]
featherpad-l10n/groovy,groovy 0.12.1-1build1 all

→ローカルにあるdeb をインストールすると、「ローカル」表示が付き、apt で管理できます。 逆に、ビルドした「featherpad」アプリ本体は apt で管理できません(認識できません)。

-

翻訳ファイルをインストールした後のファイル状態:

$ ls -l /usr/share/featherpad/
:
-rw-r--r-- 1 root root 17456  1月  9 00:01 help        ←本体をビルドしたときに作られたファイル
-rw-r--r-- 1 root root 16739  1月  7 02:57 help_ja         ←更新されました(上書き)
-rw-r--r-- 1 root root 18073  1月  7 02:57 help_pt_BR    ←更新されました(上書き)不要
drwxr-xr-x 2 root root  4096  1月  9 01:59 translations   ←新しくフォルダが作られました(下記のフォルダ)
$ ls -l /usr/share/featherpad/translations/
: (他の言語は省略)
-rw-r--r-- 1 root root 44758  1月  7 21:24 featherpad_ja.qm

-

バージョン表示:

$ featherpad --version
FeatherPad 0.17.1

-


10. アプリを起動:

→日本語表示、および、「ibus-mozc」で日本語入力できました。

追加された機能として、設定でハイライト色の指定が可能になっています。

-


featherpad の初期設定:

-

挿入する日付の書式:

オプション→設定→「テキスト」タブ

日付と時刻の形式: 「yyyy-MM-dd hh:mm」

-

開いていたファイルを起動時に開く設定にします:

オプション→設定→「ファイル」タブ

「最後のウィンドウのファイルを開いて起動する」にチェック

-

ヘルプファイルの修正:

ヘルプファイルはテキストファイルそのものです。Ctrl+H ですぐに呼び出せ、色違いで、書き込み保護されていることを利用して、ヘルプ以外の用途(備忘録、よく使うコマンドの貼り付け用)にも使えます。

$ featherpad --version
FeatherPad 0.17.1

$ sudo featherpad /usr/share/featherpad/help_ja

→バージョン 0.15.0 以降は、「help_ja」に変わっています。

-

ファイル履歴を消せない時:

~/.config/featherpad/fp.conf を削除か、リネーム

-


Audacious 4.0」

(オーディシャス)オーディオプレイヤー

特徴:

  • シンプルなオーディオプレイヤーで、多数のフォーマットをサポート。

  • Winamp の影響を受けており、スキンによって外観を変えられます。

  • 以前は Lubuntu と Ubuntu Studio のデフォルトのオーディオプレーヤーだったみたい。

  • Audacious 4.0 からツールキットとしてGTK+2 だけでなく、Qt が使われています。

  • 最新の安定版

→Stable release 4.0.5 (2020年7月10日)

-

-


1. APT で「audacious 4.0.4」をインストールする場合:

Lubuntu 20.10 の公式リポジトリにある「audacious」をAPT でインストールします。 最新ではありませんが新しいバージョンの「audacious 4.0.4」です。

-

検索:

$ apt search audacious
:
audacious/groovy 4.0.4-1 amd64
  多数のフォーマットをサポートする小さく高速なオーディオプレイヤ

audacious-dev/groovy 4.0.4-1 amd64
  audacious development files

audacious-plugins/groovy 4.0.4-1build1 amd64
  audacious 用基本プラグイン

audacious-plugins-data/groovy,groovy 4.0.4-1build1 all
  Data files for Audacious plugins

-

audacious 4.0.4」をインストール:

$ sudo apt install audacious
:
提案パッケージ:
  sidplayfp fluid-soundfont-gm
以下のパッケージが新たにインストールされます:
  audacious audacious-plugins audacious-plugins-data libaudcore5
  libaudgui5 libaudqt2 libaudtag3 libcue2 libfluidsynth2
  libinstpatch-1.0-2 libmms0 libmodplug1 libsdl2-2.0-0 libsidplayfp4
  timgm6mb-soundfont
:
update-alternatives: /usr/share/sounds/sf2/default-GM.sf2 (default-GM.sf2) を提供するために自動モードで /usr/share/sounds/sf2/TimGM6mb.sf2 を使います

update-alternatives: /usr/share/sounds/sf3/default-GM.sf3 (default-GM.sf3) を提供するために自動モードで /usr/share/sounds/sf2/TimGM6mb.sf2 を使います

-

確認:
$ apt list audacious
:
audacious/groovy,now 4.0.4-1 amd64 [インストール済み]

$ audacious --version
Audacious 4.0.4 (Ubuntu package)

-

もし、「audacious 4.0.4」をアンインストールするときは:

$ sudo apt remove audacious

-

-


2. リポジトリを登録して、最新の「audacious 4.0.5」をインストールする場合:

参考:

PPA with newer versions

-

PPA の追加:

$ sudo add-apt-repository ppa:ubuntuhandbook1/apps

Repository: 'deb http://ppa.launchpad.net/ubuntuhandbook1/apps/ubuntu/ groovy main'
:
More info: https://launchpad.net/~ubuntuhandbook1/+archive/ubuntu/apps
Adding repository.
Press [ENTER] to continue or Ctrl-c to cancel.  ←(Enter キーで続行)

Adding deb entry to /etc/apt/sources.list.d/ubuntuhandbook1-ubuntu-apps-groovy.list
Adding disabled deb-src entry to /etc/apt/sources.list.d/ubuntuhandbook1-ubuntu-apps-groovy.list
Adding key to /etc/apt/trusted.gpg.d/ubuntuhandbook1-ubuntu-apps.gpg with fingerprint A0062203196CA4482DDB859E4C1CBE14852541CB

ヒット:1 http://security.ubuntu.com/ubuntu groovy-security InRelease 
取得:2 http://ppa.launchpad.net/ubuntuhandbook1/apps/ubuntu groovy InRelease [17.5 kB]
ヒット:3 http://archive.ubuntu.com/ubuntu groovy InRelease           
ヒット:4 http://archive.ubuntu.com/ubuntu groovy-updates InRelease
ヒット:5 http://archive.ubuntu.com/ubuntu groovy-backports InRelease
取得:6 http://ppa.launchpad.net/ubuntuhandbook1/apps/ubuntu groovy/main i386 Packages [1,480 B]
取得:7 http://ppa.launchpad.net/ubuntuhandbook1/apps/ubuntu groovy/main amd64 Packages [4,448 B]
取得:8 http://ppa.launchpad.net/ubuntuhandbook1/apps/ubuntu groovy/main Translation-en [3,260 B]
26.7 kB を 4秒 で取得しました (7,497 B/s)                            
パッケージリストを読み込んでいます... 完了

-

確認:

$ sudo apt update

$ apt search audacious
:
audacious/groovy 4.0.5-0build1~ubuntu20.10 amd64
  small and fast audio player which supports lots of formats

audacious-dev/groovy 4.0.5-0build1~ubuntu20.10 amd64
  audacious development files

audacious-plugins/groovy 4.0.5-0build1~ubuntu20.10 amd64
  Base plugins for audacious

audacious-plugins-data/groovy,groovy 4.0.5-0build1~ubuntu20.10 all
  Data files for Audacious plugins

-

audacious 4.0.5」をインストール:

$ sudo apt install audacious
:
提案パッケージ:
  sidplayfp fluid-soundfont-gm
以下のパッケージが新たにインストールされます:
  audacious audacious-plugins audacious-plugins-data libaudcore5
  libaudqt5 libaudtag3 libcue2 libfluidsynth2 libinstpatch-1.0-2
  libmms0 libmodplug1 libsdl2-2.0-0 libsidplayfp4 timgm6mb-soundfont

-

確認:

$ audacious --version
Audacious 4.0.5 (Ubuntu package)

-

参考: インストールできるバージョンを表示:

$ apt list -a audacious*
:
audacious-dev/groovy 4.0.5-0build1~ubuntu20.10 amd64
audacious-dev/groovy 4.0.4-1 amd64

audacious-plugins-data/groovy,groovy,now 4.0.5-0build1~ubuntu20.10 all [インストール済み、自動]
audacious-plugins-data/groovy,groovy 4.0.4-1build1 all

audacious-plugins/groovy,now 4.0.5-0build1~ubuntu20.10 amd64 [インストール済み、自動]
audacious-plugins/groovy 4.0.4-1build1 amd64

audacious/groovy,now 4.0.5-0build1~ubuntu20.10 amd64 [インストール済み]
audacious/groovy 4.0.4-1 amd64

→指定がないと最新がインストールされます。「audacious-plugins」と「audacious-plugins-data」は依存で入ります。

-

参考: もし、「audacious 4.0.5」をアンインストールするときは:

$ sudo apt remove audacious

-

参考: 旧バージョンをインストールしたいときは:

使っている「audacious 4.0.5」をアンインストールしてから、

$ sudo apt install audacious=4.0.4

-

参考: リポジトリを無効にしたいとき:

  • 単にアプリを古いバージョンにしたいだけなら、上記のようにバージョン指定でインストールできます。

  • リポジトリを元に戻したい時は、アンインストール後に、単に無効にするだけでよいです。 残しておくと、有効/無効が簡単に切り替えできます。

-

メニュー→設定→「Software Spurces」→パスワード入力→「ソフトウェアソース」画面

-

「他のソフトウェア」タブ

http://ppa.launchpad.net/ubuntuhandbook1/apps/ubuntu/ groovy main」のチェックを外します。

-

→「close」

念の為、

$ sudo apt update
$ sudo apt upgrade

-

参考: 追加したリポジトリを完全に削除したいとき:

アプリをアンインストールしてから、上記の操作でリポジトリを無効にしておきます。

削除:

$ sudo rm /etc/apt/sources.list.d/ubuntuhandbook1-ubuntu-apps-groovy.list
$ sudo rm /etc/apt/trusted.gpg.d/ubuntuhandbook1-ubuntu-apps.gpg

念の為、

$ sudo apt update
$ sudo apt upgrade

-

-


3. 最新の「audacious 4.0.5」をソースからビルドしてインストールする場合:

-

参考: 開発版の最新のソースが欲しいなら、GitHub から入手できます:

-

最新の安定版は、公式サイトからも入手できます:

公式サイト:

About Audacious

-

安定版の最新バージョン(現在は4.0.5)をダウンロードしてインストールするには:

Download Audacious

抜粋:

ソースコードは 2つのパッケージに分かれていて、 「audacious」パッケージは、「audacious-plugins」の前にインストールします。

各パッケージにある「INSTALL」ファイルに、コンパイルとインストールの手順が英文で記述されています。 →依存関係については書かれていません。どちらも同じ内容。依存はトライして行くしかなさそう。

Audacious はデフォルトでQt5 ツールキットを使用し、GTK2 はオプションです。 ./configure にオプションを付けることで構築を指定できます。


ダウンロード

-

安定版: 4.0.5 のダウンロード:

-

任意のフォルダに移動:

$ ls -1 ~/ダウンロード/audacious/
audacious-4.0.5.tar.bz2
audacious-plugins-4.0.5.tar.bz2

-

ファイルを展開:

$ cd ~/ダウンロード/audacious/
$ tar xf audacious-4.0.5.tar.bz2
$ tar xf audacious-plugins-4.0.5.tar.bz2

$ ls -1 ~/ダウンロード/audacious/
audacious-4.0.5
audacious-4.0.5.tar.bz2
audacious-plugins-4.0.5
audacious-plugins-4.0.5.tar.bz2

-


audacious-4.0.5」のビルド

インストール説明:

$ cd ~/ダウンロード/audacious/audacious-4.0.5/
$ less INSTALL

「q」で終了

-

参考:

「make clean」

→プログラムのバイナリとオブジェクトファイルをソースコードディレクトリから削除できます。

「make distclean」

→パッケージを再コンパイルできるように、「configure」が作成したファイルを削除できます。

「sudo make uninstall」

→インストール済みのものを削除できます。

-


依存パッケージのインストール:

-

1. 「libgtk2.0-dev」のインストール:

インストールしておかないと、「./configure」で下記エラーが発生します:

checking for GLIB... no
configure: error: Package requirements (glib-2.0 >= 2.32) were not met:
No package 'glib-2.0' found

依存パッケージをインストール:

$ sudo apt install libgtk2.0-dev
:
以下のパッケージが新たにインストールされます:
  autoconf automake autopoint autotools-dev build-essential
  debhelper dh-autoreconf dh-strip-nondeterminism dpkg-dev dwz
  fakeroot gettext gir1.2-gtk-2.0 icu-devtools intltool-debian
  libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libarchive-cpio-perl libarchive-zip-perl
  libatk1.0-dev libblkid-dev libbrotli-dev
  libcairo-script-interpreter2 libcairo2-dev libcroco3 libdatrie-dev
  libdebhelper-perl libexpat1-dev libfakeroot libffi-dev
  libfile-stripnondeterminism-perl libfontconfig1-dev
  libfreetype-dev libfreetype6-dev libfribidi-dev
  libgdk-pixbuf2.0-dev libglib2.0-dev libglib2.0-dev-bin
  libgraphite2-dev libgtk2.0-dev libharfbuzz-dev
  libharfbuzz-gobject0 libice-dev libicu-dev libltdl-dev
  libmail-sendmail-perl libmount-dev libpango1.0-dev libpcre16-3
  libpcre2-32-0 libpcre2-dev libpcre2-posix2 libpcre3-dev
  libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpng-dev libpng-tools
  libselinux1-dev libsepol1-dev libsigsegv2 libsm-dev
  libsub-override-perl libsys-hostname-long-perl libthai-dev libtool
  libxcb-render0-dev libxcb-shm0-dev libxcomposite-dev
  libxcursor-dev libxdamage-dev libxfixes-dev libxft-dev libxi-dev
  libxinerama-dev libxml2-utils libxrandr-dev libxrender-dev m4
  pango1.0-tools po-debconf python3-distutils python3-lib2to3
  uuid-dev x11proto-input-dev x11proto-randr-dev
  x11proto-xinerama-dev zlib1g-dev

→多くの依存パッケージが入りました。

-

参考:

How to Fix: configure: error: Package requirements (glib-2.0 >= 2.32) were not met:

→エラー表示名と、インストールすべきパッケージ名のつづりがだいぶ違う(glib-2.0 → libgtk2.0-dev)ので、見つけるのに手間取りました。最初は、libglib2.0 を検索。

-

2. 「libaudcore5」のインストール:

インストールしておかないと、完了後のバージョン確認にてエラー:

$ audacious --version
audacious: error while loading shared libraries: libaudcore.so.5: cannot open shared object file: No such file or directory

-

依存パッケージをインストール:

$ sudo apt install libaudcore5
:
以下のパッケージが新たにインストールされます:
  libaudcore5

-


./configure 実行:

$ cd ~/ダウンロード/audacious/audacious-4.0.5/
$ ./configure

checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether byte ordering is bigendian... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking operating system type... Linux
checking whether the C/C++ compiler supports -Wtype-limits... yes
checking whether the C/C++ compiler supports -Wno-stringop-truncation... yes
checking whether the C++ compiler supports -Woverloaded-virtual... yes
checking whether byte ordering is bigendian... (cached) no
checking whether ln -s works... yes
checking for rm... /usr/bin/rm
checking for mv... /usr/bin/mv
checking for cp... /usr/bin/cp
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for windres... no
checking for library containing pthread_create... -lpthread
checking for GLIB... yes
checking for GMODULE... yes
checking for GIO... yes
checking for QTCORE... yes
checking for QT... yes
checking for shared library system... ELF
checking for sigwait... yes
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking 32-bit host C ABI... no
checking for ELF binary format... yes
checking for the common suffixes of directories in the library search path... lib,lib,lib64
checking for iconv... yes
checking for working iconv... yes
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyPreferredLanguages... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for gdbus-codegen... yes
checking for tput... /usr/bin/tput
configure: creating ./config.status
config.status: creating audacious.pc
config.status: creating buildsys.mk
config.status: creating extra.mk
config.status: creating man/audtool.1
config.status: creating man/audacious.1
config.status: creating src/libaudcore/audio.h
config.status: creating win32/audacious.nsi
config.status: creating win32/override/README.txt
config.status: creating config.h
config.status: executing po-directories commands

Configuration:

  Install path:                           /usr/local

  D-Bus support:                          yes
  GTK+ support:                           no
  Qt support:                             yes
  Valgrind analysis support:              no

→正常終了

-


make 実行:

$ make

make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-4.0.5' に入ります
Entering directory src.
:
Successfully compiled main.c.
Successfully compiled handlers_general.c.
Successfully compiled handlers_playback.c.
Successfully compiled handlers_playlist.c.
Successfully compiled handlers_playqueue.c.
Successfully compiled handlers_vitals.c.
Successfully compiled handlers_equalizer.c.
Successfully compiled report.c.
Successfully compiled wrappers.c.
Successfully linked audtool.
:
Successfully compiled it.po.
Successfully compiled ja.po.
Successfully compiled ko.po.
Successfully compiled lt.po.
Successfully compiled lv.po.
Successfully compiled ml_IN.po.
Successfully compiled ms.po.
Successfully compiled nl.po.
Successfully compiled pl.po.
Successfully compiled pt_BR.po.
Successfully compiled pt_PT.po.
Successfully compiled ru.po.
Successfully compiled si.po.
Successfully compiled sk.po.
Successfully compiled sr.po.
Successfully compiled sr_RS.po.
Successfully compiled sv.po.
Successfully compiled ta.po.
Successfully compiled tr.po.
Successfully compiled uk.po.
Successfully compiled zh_CN.po.
Successfully compiled zh_TW.po.
:
Leaving directory po.
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-4.0.5' から出ます
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-4.0.5' に入ります
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-4.0.5' から出ます

-


sudo make install 実行:

$ sudo make install
 
Successfully installed audacious.pc.
Successfully installed audacious.desktop.
Entering directory src.
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-4.0.5/src' に入ります
:
Successfully installed it.mo.
Successfully installed ja.mo.
Successfully installed ko.mo.
Successfully installed lt.mo.
Successfully installed lv.mo.
Successfully installed ml_IN.mo.
Successfully installed ms.mo.
Successfully installed nl.mo.
Successfully installed pl.mo.
Successfully installed pt_BR.mo.
Successfully installed pt_PT.mo.
Successfully installed ru.mo.
Successfully installed si.mo.
Successfully installed sk.mo.
Successfully installed sr.mo.
Successfully installed sr_RS.mo.
Successfully installed sv.mo.
Successfully installed ta.mo.
Successfully installed tr.mo.
Successfully installed uk.mo.
Successfully installed zh_CN.mo.
Successfully installed zh_TW.mo.
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-4.0.5/po' から出ます
Leaving directory po.
Successfully installed AUTHORS.
Successfully installed COPYING.

再起動

-


動作確認:

$ audacious --version
Audacious 4.0.5 (unknown build)

→ (unknown build) となっていることに注目。

-

メニュー →「サウンドとビデオ」→「Audacious

→起動されません。

audacious-plugins-4.0.5」のビルドを忘れていました。

-


audacious-plugins-4.0.5」のビルド

$ cd ~/ダウンロード/audacious/audacious-plugins-4.0.5/

$ ls
COPYING       autogen.sh      configure     meson.build        src
INSTALL       build-aux       configure.ac  meson_options.txt
Makefile      buildsys.mk.in  extra.mk.in   mkrelease.sh
acinclude.m4  config.h.in     m4            po

-


依存パッケージのインストール:

  • バイナリのインストールでなく、ビルドしてのインストールの場合は、開発版のパッケージが必要なので、依存パッケージも複数になりがちです。

  • プラグインごとに機能が異なるので、必要とするパッケージも変わってきます。なので、たくさん追加することになります。

-

1. 「libxml2-dev」のインストール:

インストールしておかないと、「./configure」で下記エラーが発生します:

checking for XML... no
configure: error: Package requirements (libxml-2.0) were not met:
No package 'libxml-2.0' found

依存パッケージをインストール:

$ sudo apt install libxml2-dev
:
以下のパッケージが新たにインストールされます:
  libxml2-dev

-

2. 「libflac-dev」のインストール:

インストールしておかないと、「./configure」で下記エラーが発生します:

checking for LIBFLAC... no
configure: error: Missing dependency for FLAC support: flac >= 1.2.1

依存パッケージをインストール:

$ sudo apt install libflac-dev
:
以下のパッケージが新たにインストールされます:
  libflac-dev libogg-dev

-

3. 「libvorbis-dev」のインストール:

インストールしておかないと、「./configure」で下記エラーが発生します:

checking for LIBFLAC... yes
checking for VORBIS... no
configure: error: Missing dependency for Ogg Vorbis support: ogg >= 1.0 vorbis >= 1.0 vorbisenc >= 1.0 vorbisfile >= 1.0

依存パッケージをインストール:

$ sudo apt install libvorbis-dev
:
以下のパッケージが新たにインストールされます:
  libvorbis-dev

-

4. 「libmpg123-dev」のインストール:

インストールしておかないと、「./configure」で下記エラーが発生します:

checking for MPG123... no
configure: error: Missing dependency for MP3 support: libmpg123 >= 1.12

依存パッケージをインストール:

$ sudo apt install libmpg123-dev
:
以下のパッケージが新たにインストールされます:
  libmpg123-dev libout123-0 libsyn123-0

-

5. 「libwavpack-dev」のインストール:

インストールしておかないと、「./configure」で下記エラーが発生します:

checking for WAVPACK... no
configure: error: Missing dependency for WavPack support: wavpack >= 4.31

依存パッケージをインストール:

$ sudo apt install libwavpack-dev
:
以下のパッケージが新たにインストールされます:
  libwavpack-dev

-

6. 「libneon27-dev」のインストール:

インストールしておかないと、「./configure」で下記エラーが発生します:

checking for NEON... no
configure: error: Missing dependency for HTTP/HTTPS transport: neon >= 0.27

依存パッケージをインストール:

$ sudo apt install libneon27-dev
:
以下のパッケージが新たにインストールされます:
  comerr-dev krb5-multidev libgssrpc4 libkadm5clnt-mit11
  libkadm5srv-mit11 libkdb5-9 libneon27 libneon27-dev libssl-dev

-

7. 「libavcodec-dev、libavutil-dev、libavformat-dev」のインストール:

インストールしておかないと、「./configure」で下記エラーが発生します:

checking for FFMPEG... no
configure: error: FFmpeg is not installed or too old (required: libavcodec 53.40.0, libavformat 53.25.0, libavutil 51.27.0).  Use --with-ffmpeg=none to disable the ffaudio plugin or --with-ffmpeg=libav to use libav instead.

依存パッケージをインストール(1):

$ sudo apt install libavcodec-dev
:
以下のパッケージが新たにインストールされます:
  libavcodec-dev libavutil-dev libswresample-dev

→「libavutil-dev」もインストールされました。

依存パッケージをインストール(2):

$ sudo apt install libavformat-dev
:
以下のパッケージが新たにインストールされます:
  libavformat-dev

-


./configure 実行:

$ cd ~/ダウンロード/audacious/audacious-plugins-4.0.5/
$ ./configure

checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether byte ordering is bigendian... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking operating system type... Linux
checking whether the C/C++ compiler supports -Wtype-limits... yes
checking whether the C/C++ compiler supports -Wno-stringop-truncation... yes
checking whether the C++ compiler supports -Woverloaded-virtual... yes
checking whether byte ordering is bigendian... (cached) no
checking whether ln -s works... yes
checking for rm... /usr/bin/rm
checking for mv... /usr/bin/mv
checking for cp... /usr/bin/cp
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for windres... no
checking for library containing pthread_create... -lpthread
checking for GLIB... yes
checking for GMODULE... yes
checking for GIO... yes
checking for QTCORE... yes
checking for QT... yes
checking for shared library system... ELF
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking 32-bit host C ABI... no
checking for ELF binary format... yes
checking for the common suffixes of directories in the library search path... lib,lib,lib64
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyPreferredLanguages... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for AUDACIOUS... yes
checking for XML... yes
checking for ADLIB... no
configure: WARNING: AdLib support disabled due to missing dependency: adplug
checking for CDIO... no
configure: WARNING: audio CD support disabled due to missing dependency: libcdio >= 0.70 libcdio_cdda >= 0.70 libcddb >= 1.2.1
checking for LIBFLAC... yes
checking for VORBIS... yes
checking for FLUIDSYNTH... no
configure: WARNING: MIDI synthesizer disabled due to missing dependency: fluidsynth >= 1.0.6
checking for MPG123... yes
checking neaacdec.h usability... no
checking neaacdec.h presence... no
checking for neaacdec.h... no
checking for NeAACDecInit2 in -lfaad... no
configure: WARNING: AAC support disabled due to missing dependency
checking for WAVPACK... yes
checking for SNDFILE... no
configure: WARNING: libsndfile decoder disabled due to missing dependency: sndfile >= 0.19
checking for MODPLUG... no
configure: WARNING: ModPlug disabled due to missing dependency: libmodplug
checking for OPENMPT... no
configure: WARNING: libopenmpt disabled due to missing dependency: libopenmpt >= 0.2
checking for SIDPLAYFP... no
configure: WARNING: Commodore 64 audio disabled due to missing dependency: libsidplayfp >= 1.0
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for BS2B... no
configure: WARNING: BS2B effect disabled due to missing dependency: libbs2b >= 3.0.0
checking for SAMPLERATE... no
configure: WARNING: sample rate converter disabled due to missing dependency: samplerate
checking for SAMPLERATE... no
configure: WARNING: speed/pitch effect disabled due to missing dependency: samplerate
checking for SOXR... no
configure: WARNING: SoX resampler disabled due to missing dependency: soxr
checking for ALSA... no
configure: WARNING: ALSA output disabled due to missing dependency: alsa >= 1.0.16
checking for JACK... no
checking for JACK... no
configure: WARNING: JACK output disabled due to missing dependency
checking sys/soundcard.h usability... yes
checking sys/soundcard.h presence... yes
checking for sys/soundcard.h... yes
checking for PULSE... no
configure: WARNING: PulseAudio output disabled due to missing dependency: libpulse >= 0.9.5
checking for sio_open in -lsndio... no
configure: WARNING: Sndio output disabled due to missing dependency
checking for CUE... no
checking for CUE... no
configure: WARNING: cue sheet support disabled due to missing dependency
checking for NEON... yes
checking for MMS... no
configure: WARNING: MMS transport disabled due to missing dependency: libmms >= 0.3
checking for NOTIFY... no
configure: WARNING: libnotify OSD disabled due to missing dependency: libnotify >= 0.7 gdk-pixbuf-2.0 >= 2.26
checking lirc/lirc_client.h usability... no
checking lirc/lirc_client.h presence... no
checking for lirc/lirc_client.h... no
configure: WARNING: LIRC support disabled due to missing dependency
checking for gdbus-codegen... yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking for CURL... no
configure: WARNING: Scrobbler 2 disabled due to missing dependency: libcurl >= 7.9.7
checking for AMPACHE... no
configure: WARNING: Ampache browser disabled due to missing dependency: ampache_browser_1
checking for QTMULTIMEDIA... no
configure: WARNING: QtMultimedia output disabled due to missing dependency: Qt5Multimedia
checking for QTOPENGL... yes
checking for glBegin in -lGL... yes
checking for FFMPEG... yes
checking for SDL... no
checking for SDL... no
configure: WARNING: SDL Output disabled due to missing dependency
checking for lame_get_id3v2_tag in -lmp3lame... no
checking for tput... /usr/bin/tput
configure: creating ./config.status
config.status: creating buildsys.mk
config.status: creating extra.mk
config.status: creating config.h
config.status: executing po-directories commands

Configuration:

  Install path:                           /usr/local/lib/audacious

  GTK+ support:                           no
  Qt support:                             yes

  Audio Formats
  -------------
  Audio CD:                               no
  Free Lossless Audio Codec:              yes
  Ogg Vorbis:                             yes
  MIDI (via FluidSynth):                  no
  MPEG-1 Layer I/II/III (via mpg123):     yes
  MPEG-2/4 AAC:                           no
  WavPack:                                yes

  External Decoders
  -----------------
  FFmpeg/Libav:                           ffmpeg
  libsndfile:                             no

  Chiptunes
  ---------
  AdLib synthesizer (adplug):             no
  Commodore 64 audio (sid):               no
  Game Music Emu (spc, nsf, gbs, etc.):   yes
  ModPlug:                                no
  OpenMPT:                                no
  Nintendo DS audio (xsf):                yes
  PlayStation audio (psf/psf2):           yes
  Vortex Tracker (vtx):                   yes

  Other Inputs
  ------------
  Metronome:                              yes
  Tone Generator:                         yes

  Effects
  -------
  Bauer stereophonic-to-binaural (bs2b):  no
  Channel Mixer:                          yes
  Crystalizer:                            yes
  Dynamic Range Compressor:               yes
  Echo/Surround:                          yes
  Extra Stereo:                           yes
  LADSPA Host (requires GTK+):            no
  Sample Rate Converter:                  no
  Silence Removal:                        yes
  SoX Resampler:                          no
  Speed and Pitch:                        no
  Voice Removal:                          yes

  Outputs
  -------
  Advanced Linux Sound Architecture:      no
  Jack Audio Connection Kit:              no
  Open Sound System:                      yes
  PulseAudio:                             no
  Simple DirectMedia Layer:               no
  Sndio:                                  no
  Win32 waveOut:                          no
  FileWriter:                             yes
    -> MP3 encoding:                      no
    -> Vorbis encoding:                   yes
    -> FLAC encoding:                     yes

  Playlists
  ---------
  Cue sheets:                             no
  M3U playlists:                          yes
  Microsoft ASX (legacy):                 yes
  Microsoft ASX 3.0:                      yes
  PLS playlists:                          yes
  XML Sharable Playlist Format (XSPF):    yes

  Transports
  ----------
  FTP, SFTP, SMB (via GIO):               yes
  HTTP/HTTPS (via neon):                  yes
  MMS (via libmms):                       no

  General
  -------
  Alarm (requires GTK+):                  no
  Ampache browser (requires Qt):          no
  Delete Files:                           yes
  libnotify OSD:                          no
  Linux Infrared Remote Control (LIRC):   no
  MPRIS 2 Server:                         yes
  Scrobbler 2.0:                          no
  Song Change:                            yes

  Qt Support
  ----------
  Qt Multimedia output:                   no
  Qt Interface:                           yes
  Winamp Classic Interface:               yes
  Album Art:                              yes
  Blur Scope:                             yes
  LyricWiki viewer:                       yes
  OpenGL Spectrum Analyzer:               yes
  Playlist Manager:                       yes
  Search Tool:                            yes
  Song Info:                              yes
  Spectrum Analyzer (2D):                 yes
  Status Icon:                            yes
  Stream Tuner (experimental):            no
  VU Meter:                               yes

→「warning」は出ていても、「error」が出て停止しなければ、次の make に進めます。 ただし、欲しい機能(プラグイン)が「warning」だったら無効になるので、依存パッケージを探すのがたぶん正解。

-


make 実行:

$ make
:
Successfully compiled it.po.
Successfully compiled ja.po.
Successfully compiled ko.po.
Successfully compiled lt.po.
Successfully compiled lv.po.
Successfully compiled ml_IN.po.
Successfully compiled ms.po.
Successfully compiled nl.po.
Successfully compiled pl.po.
Successfully compiled pt_BR.po.
Successfully compiled pt_PT.po.
Successfully compiled ru.po.
Successfully compiled si.po.
Successfully compiled sk.po.
Successfully compiled sr.po.
Successfully compiled sr_RS.po.
Successfully compiled sv.po.
Successfully compiled ta.po.
Successfully compiled tr.po.
Successfully compiled uk.po.
Successfully compiled zh_CN.po.
Successfully compiled zh_TW.po.
make[3]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-plugins-4.0.5/po' から出ます
make[2]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-plugins-4.0.5/po' から出ます
Leaving directory po.
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-plugins-4.0.5' から出ます
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-plugins-4.0.5' に入ります
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-plugins-4.0.5' から出ます

-


sudo make install 実行:

$ sudo make install
:
Successfully installed it.mo.
Successfully installed ja.mo.
Successfully installed ko.mo.
Successfully installed lt.mo.
Successfully installed lv.mo.
Successfully installed ml_IN.mo.
Successfully installed ms.mo.
Successfully installed nl.mo.
Successfully installed pl.mo.
Successfully installed pt_BR.mo.
Successfully installed pt_PT.mo.
Successfully installed ru.mo.
Successfully installed si.mo.
Successfully installed sk.mo.
Successfully installed sr.mo.
Successfully installed sr_RS.mo.
Successfully installed sv.mo.
Successfully installed ta.mo.
Successfully installed tr.mo.
Successfully installed uk.mo.
Successfully installed zh_CN.mo.
Successfully installed zh_TW.mo.
make[1]: ディレクトリ '/home/ubn/ダウンロード/audacious/audacious-plugins-4.0.5/po' から出ます
Leaving directory po.

-

起動:

メニュー →「サウンドとビデオ」→「Audacious

→起動できました。日本語化されています。

動作確認:

$ which audacious
/usr/local/bin/audacious

$ whereis audacious
audacious: /usr/local/bin/audacious /usr/local/lib/audacious

$ audacious --version
Audacious 4.0.5 (unknown build)

-


もし、アンインストールしたいときは:

$ cd ~/ダウンロード/audacious/audacious-plugins-4.0.5/
$ sudo make uninstall

$ cd ~/ダウンロード/audacious/audacious-4.0.5/
$ sudo make uninstall

→インストール用のフォルダをさわらないでおけば、「sudo make install」を2つ実行するだけで、すぐに再インストールできます。

→完全に消したいときは、たくさんの依存パッケージをインストールしたので、それも不要ならアンインストール。 たくさんあるので、たいへんですね。

-


端末からのコマンドでの操作:

$ audacious --help
使い方: audacious [オプション] ... [ファイル] ...

  -1, -2, -3, etc.          コントロールするインスタンスを選択してください
  -h, --help                コマンドラインのヘルプを表示
  -v, --version             バージョンを表示
  -p, --play                再生
  -u, --pause               一時停止
  -t, --play-pause          再生していたら一時停止し、再生していなければ再生する
  -s, --stop                停止
  -r, --rew                 前の曲にスキップ
  -f, --fwd                 次の曲にスキップ
  -e, --enqueue             プレイリストにファイルを追加
  -E, --enqueue-to-temp     一時プレイリストにファイルを追加
  -m, --show-main-window    メインウィンドウを表示する
  -j, --show-jump-box       ジャンプトゥソングウィンドウを表示する
  -H, --headless            グラフィカルインターフェイスなしで開始
  -q, --quit-after-play     再生完了時に終了する
  -V, --verbose             デバッグ用メッセージを表示 (-VV のように2個続ける用法あり)
  -Q, --qt                  Run in Qt mode
  -G, --gtk                 Run in GTK mode

-

通常の操作(GUI):

メニュー→「サウンドとビデオ」→「Audacious

→起動すると下記のように何も音楽ファイルがない状態で表示されます。

  • バージョンは、ファイル→「プログラムの情報」→「Audacious について」画面で確認できます。

-

「外見」タブ →インターフェイス: Qt インターフェイス

→(右側は設定を開いた状態)

iTunes のリスト表示に近い表示

-

「外見」タブ →インターフェイス: Winamp クラシックインターフェイス

→デフォルトのスキン(右側は設定を開いた状態)

Winamp 風の外観

-

曲の一括登録:

1. ホームの「ミュージック」フォルダ

iTunes から、MP3 ファイルを単体やフォルダごとコピーしました。

2. メニュー→ファイル→フォルダを追加→ホームの「ミュージック」フォルダを指定

3. 自動で取り込まれます。

-

再生できますが音が出ません

メニュー →「出力」→「オーディオの設定…」

出力プラグイン: 「PulseAudio 出力」に変更

→ヘッドフォンから音が出ました。音質は良いけど、少し音が飛ぶみたい。

-

「プレイリスト」の作成:

メニュー→プレイリスト→新しいプレイリスト

-

音楽ファイルをプレイリストに追加:

「+」ボタン(ファイルを追加) →MP3ファイルを選択

または、MP3ファイルをドラッグ&ドロップ

-

-


まとめ

featherpad をビルドしてインストールしてみました。Lubuntu の良さは、Ubuntu ベースであることです。

それはリポジトリに登録されているパッケージが多いことと、アプリのインストールガイドが記述されている確率が高いこと、そして情報が多いことです。ビルド時に一番苦労する依存パッケージと解決策を探しやすいです。

-

要望にあった「audacious」は、featherpad と違い、ビルドで必要な依存の書かれたREADME はありません。プラグインの数だけ依存パッケージがあり、それらはトライして確認するしかありません。

なので、「audacious」が最新でなくてもいいなら、素直にAPT でインストール。ほとんど違いはありません。 「audacious」の最新が欲しいときはリポジトリを登録してのインストールが楽です。

-

-


目次

先頭

-


-