Linux あれこれ

Linux 関連(一部 Windows11 )の備忘録です。

「xbps-src-help.md」ブラウザ対応版〈H179-10〉

登録日: 2025-12-24 / 更新日: 2026-09-03

-

「Void Linux」の「xbps-src」のビルド環境でのソースの修正例として、
今までに投稿した「@featherpad」と「qpdfview」アプリにて、

「ヘルプ」で「xbps-src」の備忘録が(自己責任で)表示されるようにしました。

-

これはうろ覚えでも使えて便利だったので、「ブラウザ表示」対応版も作成しました:

個人的には、「Void Linux」のブラウザに「ブックマーク」として登録しており、「xbps-src」のビルド環境の更新では、「目次 1. (1).」のコマンドを順次貼り付けて行っています:

-

追記:
コマンド行の貼付けがやりやすいように、( ls などでの確認時を除き)コマンドの行頭のプロンプト表示($)を省略しました:

 コピー: 「ブラウザ」で、コマンド行を 3回連続クリックして選択 → Ctrl+C
 貼付け: 「端末」のプロンプト行で、右クリック → P

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

「xbps-src-help.md」(ver.4)

 更新: 2026-09-03

-

目次

-

1.「xbps-src」の備忘録:

  (1).「xbps-src」にて、ビルド環境を更新する場合:

  (2).「xbps-src」にて、パッケージ化をやり直す場合:

  (3).「xbps-src」にて、パッケージ化後にインストールする場合:

  (4).「ソースファイル」を修正する場合:

  (5).「パッチ」を作成する場合:

  (6). 個人で作成した「@アプリ」フォルダを退避する場合:

  (7).「xbps-src」の「ビルド環境」を新規に作成する場合:

-

2.「xbps-src」の「ヘルプ表示」(和訳):

3. その他のリンク:

  (1). 「Void Linux」のパッケージ管理「XBPS」コマンド:

  (2). 「XBPS」コマンドを使ってみる:

  (3).  代替えできる、覚えやすい「XBPS」コマンドを追加:

  (4).  覚えやすい「XBPS」コマンドを使ってみる:

  (5).  覚えやすい「XBPS」コマンドの一覧:

  (6). 「flatpak」でアプリをインストール:

  (7). 「xtools」ツールのインストールと使い方:

  (8). 「Void Linux」で、「リポジトリ」を追加:

  (9). 「Void Linux」のサービス管理:

-

4. 目次一覧 へ:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

↓ これ以降を、「@featherpad」や「qpdfview」のヘルプで表示:

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

「@featherpad」のヘルプで表示:

編集:

 sudo featherpad /usr/share/featherpad/help

以前の featherpad の場合:

 sudo featherpad /usr/share/featherpad/help_ja

                         2026-09-03 (ver.4)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

「qpdfviw」のヘルプで表示:

編集:

$ featherpad ~/ダウンロード/srcpkgs_save/work/@qpdfview/02.help_ja.html  
$ sudo cp ~/ダウンロード/srcpkgs_save/work/@qpdfview/02.help_ja.html /usr/share/qpdfview/help_ja.html

翻訳の修正をしていない qpdfviw の場合:

$ sudo cp ~/ダウンロード/srcpkgs_save/work/@qpdfview/02.help_ja.html /usr/share/qpdfview/help.html

2026-09-03 (ver.4)  

-


- --- - --- - --- - --- - --- - --- - --- - --- -

1. 「xbps-src」の備忘録

-


- --- - --- - --- - --- - --- - --- - --- - --- -

1-1. 「xbps-src」にて、ビルド環境を更新する場合:

-

1). システム更新:

sudo xbps-install -Su

-

2). 再起動:

sudo reboot

-

3). ローカルリポジトリの更新:

cd ~/git/void-packages/
git pull

-

4). 「ブートストラップ パッケージ」の更新:

cd ~/git/void-packages/
./xbps-src bootstrap-update

-

5). 再起動:

sudo reboot

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

1-2. 「xbps-src」にて、パッケージ化をやり直す場合:

-

1). クリーンアップ:

cd ~/git/void-packages/
./xbps-src clean <パッケージ名>

-

2). パッケージ化:

cd ~/git/void-packages/
./xbps-src pkg <パッケージ名>

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

1-3.「xbps-src」にて、パッケージ化後にインストールする場合:

-

1). 以前にインストールしたパッケージを削除:

sudo xbps-remove <パッケージ名>

-

2). インストール:

sudo xbps-install --repository hostdir/binpkgs <パッケージ名>

もしくは、

cd ~/git/void-packages/
xi <パッケージ名>

-

3). インストールされたか確認:

xbps-query -Rs <パッケージ名>

もしくは、

xbps-query -s <パッケージ名>

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

1-4. ソースファイルを修正する場合:

-

1). ソースファイルをダウンロードして展開:

cd ~/git/void-packages/
./xbps-src clean <パッケージ名>
./xbps-src extract <パッケージ名>

-

2). 「builddir」フォルダ配下のソースファイルに移動:

$ ls -1p ~/git/void-packages/masterdir-x86_64/builddir/
:
@パッケージ名-バージョン番号/

-

cd ~/git/void-packages/masterdir-x86_64/builddir/@パッケージ名-バージョン番号/

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

1-5.「パッチ」を作成する場合:

-

1). 上記の「項番 1-4.」の「2).」の続き:

-

2). 差分を作成するためのフォルダを作成:

cd ~/git/void-packages/masterdir-x86_64/builddir/@パッケージ名-バージョン番号/
mkdir -p {a,b}

-

3). ソースをコピー:

cd ~/git/void-packages/masterdir-x86_64/builddir/@パッケージ名-バージョン番号/
sudo cp -r src/ a/
sudo cp -r src/ b/

→修正するファイルが「src/」フォルダ配下にある場合です:

-

4). 確認:

$ ls -1p a/
src/

-

$ ls -1p b/
src/

-

5). 「b/」フォルダのソースを修正:

featherpad b/src/translations/パッケージ名_ja.ts

→修正するファイルは任意です:

-

6). 「パッチ1」(差分)の作成:

cd ~/git/void-packages/masterdir-x86_64/builddir/@パッケージ名-バージョン番号/
diff -Naur a b > 01.パッケージ名_ja.ts.patch

→パッチファイル名はどのような修正なのかわかる名前にします。
 先頭の数字はパッチの当たる順番です:

-

7). 「パッチ1」の修正:

featherpad 01.パッケージ名_ja.ts.patch

↓ すべて貼付け:

先頭行を削除、お尻に 2つの空行を追加

→Ctrl+S で保存:

-

8).「パッチ1」の配置:

cd ~/git/void-packages/
mkdir -p srcpkgs/@パッケージ名/patches/

-

cp masterdir-x86_64/builddir/@パッケージ名-バージョン番号/01.パッケージ名_ja.ts.patch srcpkgs/@パッケージ名/patches/

( 1 行で入力してください)

-

9). 複数のパッチを作成する場合:

差分の解消:

cd ~/git/void-packages/masterdir-x86_64/builddir/@パッケージ名-バージョン番号/
sudo cp -r b/* a/

-

パッチの先頭番号を変えて、「項番 5).」〜「項番 8).」を繰り返し:

-

10). 後始末:

sudo rm -r a/
sudo rm -r b/

-

cd ~/git/void-packages/
./xbps-src clean @パッケージ名

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

1-6. 個人で作成した「@アプリ」フォルダを退避する場合:

-

個人的に、アプリの移植や、ソースファイルに手を加えたパッケージは、
パッケージ名の先頭に「@」を付けて、区別できるようにしています:
別のアプリとして扱えるので、(テンプレートの修正が必要ですが)管理しやすいです:

-

1). 保存先のフォルダを作成:

mkdir -p ~/ダウンロード/srcpkgs_save/

-

2). 保存:

cd ~/git/void-packages/
sudo cp -r srcpkgs/@* ~/ダウンロード/srcpkgs_save/

-

3). 「@アプリ」を一覧表示:

 2025-12-27 現在:

$ cd ~/git/void-packages/srcpkgs/
$ ls -1p @* | grep @
:
@featherpad:
@geany:
@geany-devel:
@kshisen:
@notepadqq:
@qpdfview:

-

4). 「@アプリ」をツリー表示:

 2025-12-27 現在:

$ tree ~/ダウンロード/srcpkgs_save/
:
/home/user/ダウンロード/srcpkgs_save/
├── @featherpad
│ ├── patches
│ │ ├── 01.help-del.patch
│ │ ├── 02.help-translation-jp-ver3.patch  ←(備忘録 txt)
│ │ └── 03.featherpad-desktop.patch
│ └── template
├── @geany
│ ├── patches
│ │ ├── 01.geany-po-ja.patch
│ │ ├── 02.geany-src-templates.h.patch
│ │ └── 03.geany-src-ui-utils.c.patch    ←(Tab を含み制限あり)
│ └── template/
├── @geany-devel -> @geany         ←(リンク)
├── @kshisen
│ ├── patches
│ │ └── 01.kshisen-desktop.patch
│ └── template
├── @notepadqq
│ ├── files
│ │ └── notepadqq
│ ├── patches
│ │ ├── 00.disable-stats.patch
│ │ ├── 01.notepadqq_ja.ts-del.patch
│ │ └── 02.notepadqq_ja.ts.patch
│ └── template
├── @qpdfview               ←(現在はビルドで失敗します)
│ ├── patches
│ │ ├── 01.qpdfview_ja.ts.patch
│ │ └── 02.help_ja.html.patch
│ └── template
└── work           ↓ ビルド環境で使う「作業フォルダ」
  ├── @geany
  │  ├── 03.geany-src-ui-utils.c.patch    ←(スクリプトで作成されたパッチ3)
  │  └── 03.geany-src-ui-utils.c.sh    ←(パッチ3 を作成するスクリプト)
  └── @qpdfview
   ├── 02.help_ja.html           ←(備忘録 html)
   ├── 02.help_ja.html.md
   ├── help_ja.html
   └── qpdfview_ja.qm          ←(翻訳のバイナリを退避)
 
16 directories, 24 files

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

1-7.「xbps-src」の「ビルド環境」を新規に作成する場合:

-

1). システム更新:

sudo xbps-install -Su

-

2). 再起動:

sudo reboot

-

3). 「xbps-src」に必要なツールを確認:

$ xbps-query -l | grep -e binutils -e curl -e git
:
ii binutils-2.44_2 GNU binary utilities
ii binutils-doc-2.44_2 GNU binary utilities - info files
ii binutils-libs-2.44_2 GNU binary utilities - shared libraries
ii curl-8.17.0_1 Client that groks URLs
ii git-2.51.2_1 Git Tree History Storage Tool
ii libcurl-8.17.0_1 Multiprotocol file transfer library

→すべてインストールされていました:

-

4). あると便利な「xtools」ツールをインストール:

sudo xbps-install -S xtools

-

5). 作業フォルダの作成:

mkdir -p ~/git/

→作成する位置は任意です:

-

6). 「void-packages」の git リポジトリをクローン(ローカルにコピー):

cd ~/git/
git clone https://github.com/void-linux/void-packages.git --depth=10

→手入力するときの注意:
ブラウザで https: の間に余計な「空白」が表示されますが「空白」は入力しません。
コピーして貼付けすれば「空白」なしで入力されます。

ちなみに、--depth=10で最近の更新履歴のみに限定して構築時間とサイズを小さくしています。
省略すれば(時間とサイズは増えるけど、すべての更新履歴が含まれた)完全なリポジトリが再現されます。

-

7). 「xbps-src」をセットアップ:

cd ~/git/void-packages/
./xbps-src binary-bootstrap

-

8). 配布するときにライセンス制限のあるパッケージもビルドできるように、

「~/git/void-packages/etc/conf」に設定を追加:

cd ~/git/void-packages/
echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf

確認:

$ cat ~/git/void-packages/etc/conf
:
XBPS_ALLOW_RESTRICTED=yes

-

9). 再起動:

sudo reboot

-

10). 「xbps-src」が使えるか確認:

cd ~/git/void-packages/
ls srcpkgs/パッケージ名

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

2. 「xbps-src」の「ヘルプ表示」(和訳)

-

ヘルプ表示:

cd ~/git/void-packages/
./xbps-src --help

→移動する位置は、作業フォルダを作成 した位置で変わります:
 作業フォルダを作成していない場合は「~/void-packages/」です。

-

書式:

cd ~/git/void-packages/
./xbps-src [オプション] <ターゲット> [引数]

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

2-1. ターゲットの説明:

(1つだけが指定できます)

-


binary-bootstrap

ホストリポジトリから <masterdir> にブートストラップパッケージを、インストールします。
オプションの '-A <arch>' フラグが設定されている場合、このアーキテクチャから
ブートストラップパッケージとその必要な XBPS ユーティリティがインストールされます。
<masterdir> は、chroot 操作のために初期化されます。

-


bootstrap

ソースからブートストラップパッケージを <masterdir> にビルドして、インストールします。
オプションの '-A <arch>' フラグが設定されている場合、このアーキテクチャから
ブートストラップパッケージとその必要な XBPS ユーティリティをビルドして、インストール
します。
<masterdir> は、chroot 操作のために初期化されます。

-


bootstrap-update

XBPS 設定ファイルの登録リポジトリから利用可能な、最新のバージョンでブートストラップ
パッケージを更新します。

-


consistency-check

すべてのパッケージで一貫性チェックを、実行します

-


chroot

<masterdir> の chroot に、入ります。

-


clean-repocache

<hostdir>/repocache から時代遅れのパッケージを、削除します。

-


fetch <パッケージ名>

パッケージのソースファイルを、ダウンロードします。

-


extract <パッケージ名>

パッケージのソースファイルを、ビルドディレクトリに展開します。
デフォルトは、<masterdir>/builddir に設定されます。

→「hostdir/sources/」ディレクトリにダウンロードはされませんが、
ビルドディレクトリ「masterdir-x86_64/builddir/」に、ソースが展開されます:

-


patch <パッケージ名>

パッケージソースにパッチを当て、設定とビルドのために
パッケージを準備するために必要な、他の操作を実行します。

-


configure <パッケージ名>

パッケージを構成します(Fetch + Extract + Patch + Configure)

-


build <パッケージ名>

パッケージのソースをビルドします(Fetch + Extract + Patch + Configure + Build)

-


check <パッケージ名>

パッケージのソースをビルドした後に、パッケージのチェックを実行します。

-


install <パッケージ名>

ターゲットのパッケージを <destdir> にインストールしますが、
検査目的なので、バイナリパッケージのビルドをせず、ビルドディレクトリも削除しません。

-


pkg <パッケージ名>

<パッケージ名> のバイナリパッケージ、およびすべての必要な依存関係をビルドして、
パッケージ化します。

-


clean [パッケージ名]

自動で依存関係を削除し、<masterdir>/builddir および <masterdir>/destdir を
クリーンアップします。
もし、<パッケージ名> が指定されている場合は、<masterdir>/destdir のパッケージ
ファイルと <masterdir>/buiddir のビルドディレクトリが削除されます。

-


list

chroot される <masterdir> にインストールされたパッケージの一覧を表示します。

-


remove <パッケージ名>

<destdir> からターゲットパッケージを削除します。
ビルドテンプレートと <パッケージ名>-<version> が一致していない場合は、何も
削除されません。

-


remove-autodeps

自動的にインストールされたすべてのパッケージの依存関係を削除します。

-


purge-distfiles

<hostdir>/sources の、すべての時代遅れの distfiles を削除します。

-


show <パッケージ名>

指定されたパッケージの情報を表示します。

-


show-avail <パッケージ名>

特定のアーキテクチャ用にパッケージをビルドできる場合は「0」を返します。

-


show-build-deps <パッケージ名>

<パッケージ名> に必要なビルドの依存関係を表示します。

-


show-check-deps <パッケージ名>

<パッケージ名> に必要なチェックの依存関係を表示します。

-


show-deps <パッケージ名>

<パッケージ名> の必要な ランタイムの依存関係を表示します。
パッケージは DestDir にインストールする必要があります。

-


show-files <パッケージ名>

<パッケージ名> によってインストールされたファイルを表示します。
パッケージは DestDir にインストールする必要があります。

-


show-hostmakedepends <パッケージ名>

<パッケージ名>の必要なホストビルド依存関係を表示します。

-


show-makedepends <パッケージ名>

<パッケージ名> の必要なターゲットビルド依存関係を表示します。

-


show-options <パッケージ名>

<パッケージ名>による利用可能なビルドオプションを表示します。

-


show-shlib-provides <パッケージ名>

<パッケージ名> の提供された shlibs のリストを表示します。
パッケージは DestDir にインストールする必要があります。

-


show-shlib-requires <パッケージ名>

<パッケージ名>に必要なshlibsのリストを表示します。
パッケージは DestDir にインストールする必要があります。

-


show-var <var>

xbps-src で定義されている場合、<var> の値を表示します。

-


show-repo-updates

XBPS リポジトリの時代遅れのパッケージのリストを表示します。

-


show-sys-updates

システム内の時代遅れのパッケージのリストを表示します。

-


show-local-updates

ローカルリポジトリの時代遅れのパッケージのリストを表示します。

-


sort-dependencies <pkg> <pkgN+1> ...

追加の引数として、指定されたパッケージのリストが与えられた場合、
ソートされた依存関係リストが 標準出力 に返されます。

-


update-bulk

時代遅れのシステムリポジトリ内のすべてのパッケージを再ビルドします。

-


update-sys

時代遅れのシステム内のすべてのパッケージを再ビルドし、それらを更新します。

-


update-local

時代遅れのローカルリポジトリのすべてのパッケージを再ビルドします。

-


update-check <パッケージ名>

新しいリリースについて、<パッケージ名> の上流サイトをチェックします。

-


update-hash-cache

既存のソース distfiles で、ハッシュキャッシュを更新します。

-


zap

ccache、distcc および host ディレクトリが保存された、masterdir を削除します。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- -

2-2. オプションの説明:

_


-1

ターゲットパッケージの依存関係が欠けている場合は、それらをビルドせずに、失敗
します。

-


-A <ホスト>

指定のホストマシンを使用します。
masterdir-<ホスト> がまだ存在しない場合は自動的に作成されます。

一部のホストマシンは、プロセッサによってネイティブにサポートされていない場合、
qemu-user と binfmt-support を必要とする場合があります。

サポートされているホスト:
aarch64-musl  
aarch64  
armv5te-musl  
armv5te  
armv5tel-musl  
armv5tel  
armv6hf-musl  
armv6hf  
armv6l-musl  
armv6l  
armv7hf-musl  
armv7hf  
armv7l-musl  
armv7l  
i686-musl  
i686  
mips-musl  
mipsel-musl  
mipselhf-musl  
mipshf-musl  
ppc-musl  
ppc  
ppc64-musl  
ppc64  
ppc64le-musl  
ppc64le  
ppcle-musl  
ppcle  
riscv64-musl  
riscv64  
x86_64-musl  
x86_64  

-


-a <ターゲット>

指定されたターゲットマシンのパッケージをクロスコンパイルします。

サポートされているターゲット:
aarch64-musl  
aarch64  
armv5te-musl  
armv5te  
armv5tel-musl  
armv5tel  
armv6hf-musl  
armv6hf  
armv6l-musl  
armv6l  
armv7hf-musl  
armv7hf  
armv7l-musl  
armv7l  
i686-musl  
i686  
mips-musl  
mipsel-musl  
mipselhf-musl  
mipshf-musl  
ppc-musl  
ppc  
ppc64-musl  
ppc64  
ppc64le-musl  
ppc64le  
ppcle-musl  
ppcle  
riscv64-musl  
riscv64  
x86_64-musl  
x86_64  

-


-b

壊れているとマークされている、nocross、またはアーチで除外されている場合でも、
パッケージをビルドします。

-


-c <configuration>

<configuration> が指定されている場合、etc/conf.<configuration> は、主要な
構成ファイル名として使用されます。
etc/conf が存在しない場合にのみ試行されます。

-


-C

インストールが成功した後、ビルドディレクトリ、自動依存関係、パッケージ用の
destdir を削除しません。

-


-E

ターゲットパッケージのリポジトリに、バイナリパッケージが存在する場合は、
それをビルドせず、すぐに終了します。

-


-f

正常に実行された場合でも、指定されたステージ(構成/ビルド/インストール/パッケージ化)
を実行します。

-


-G

Enable XBPS_USE_GIT_REVS(詳細については、etc/defaults.conf を参照してください)

-


-g

デバッグシンボルを備えた -dbg パッケージのビルドを有効にします。

-


-H <hostdir>

unset がデフォルトで、「void-packages/hostdir」がある場合に、
<masterdir>/host にマウントされる、バインドされるディレクトリへの絶対パスを指定。
host ディレクトリには、リモートリポジトリからダウンロードされたバイナリパッケージ、
ソース、パッケージの依存関係が保存されています。

-


-h

使い方を表示。

-


-I

ソースを展開/読み込むのに役立つ必要な依存関係を無視します。

-


-i

xbps-src の内部エラーを致命的なエラーにしません。

-


-j

パッケージをビルドするときに使用する並列ビルドジョブ(プロセッサ)の数を指定。

-


-L

ASCII の色を無効にします。

-


-m <masterdir>

unset がデフォルトで「void-packages/masterdir-<host>」がある場合に、
masterdir として使用するディレクトリへの絶対パスを指定。
masterdir は、パッケージを構築/保存/コンパイルする、メインとなるディレクトリです。

-


-N

リモートリポジトリの使用を無効にして、依存関係を解決します。

-


-o <opt,~opt2,...>

パッケージビルドオプションを有効または(~ を付けて)無効にします。
「etc/conf」がすでにいくつかを指定している場合、それはマージされています。
依存関係をビルドする必要がある場合、これらのオプションを継承する場合、
これらのオプションはビルド内のすべてのパッケージに適用されることに注意
してください。

'show-options' target でサポートされているオプションを表示できます。

-


-p <variable,variable2,...>

ターゲットを表示するには、デフォルトの変数に加えて指定された変数を表示します。
変数は分割され、各単語はデフォルトで別々の行で表示されます。
値全体を 1行で表示するには、asterisk を変数名に追加します。

-


-Q

ターゲットパッケージのみのチェックステージを実行します。

-


-K

長いテストでチェックステージを実行します。
-Q とは異なり、これはビルドされた依存関係のチェックステージも実行されます。

-


-q

xbps-src の情報出力をしません。(ビルド出力は引き続き表示されます)

-


-r <repo>

代替ローカルリポジトリを使用して、生成されたバイナリパッケージを保存します。
unset がデフォルトで <hostdir>/binpkgs になります。

もし、set の場合、binpkgs は <hostdir>/binpkgs/<repo> に保存されます。
また、この代替リポジトリは、他のリポジトリよりも優先度の高い順序で依存関係を
解決するためにも使用されます。

-


-s

いくつかの警告をエラーにします。

-


-t

現在のものを汚さないように、一時的な masterdir を作成します。
既存の masterdir には、最初に binary-bootstrap を完全に入力する必要があることに
注意してください。

ターゲットが終了すると、この一時的な masterdir は削除されます。
このフラグには xbps-uchroot(1) が必要であり、 overlayfs をサポートしていない
ファイルシステムでは機能しません。

-


-v

詳細なメッセージを表示します(update-check のみに影響します)。

-


-V

xbps のバージョンを表示して、終了します。

-

-


以上:

-

-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-