「Makepkg-optimize」の版間の差分
Quequotion (トーク | 投稿記録) (新しいoptdepends, polly) |
|||
(2人の利用者による、間の5版が非表示) | |||
2行目: | 2行目: | ||
[[Category:パッケージ管理]] |
[[Category:パッケージ管理]] |
||
[[en:Makepkg-optimize]] |
[[en:Makepkg-optimize]] |
||
+ | [[ru:Makepkg-optimize]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|DeveloperWiki:クリーンな chroot 内でビルドする}} |
{{Related|DeveloperWiki:クリーンな chroot 内でビルドする}} |
||
13行目: | 14行目: | ||
== インストール == |
== インストール == |
||
− | {{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}, {{Pkg|polly}} |
+ | {{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}, {{Pkg|polly}} |
− | + | == 設定 == |
|
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。 |
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。 |
||
29行目: | 30行目: | ||
$ makepkg -c --config /etc/makepkg-optimize.conf |
$ makepkg -c --config /etc/makepkg-optimize.conf |
||
− | {{Tip|パッケージに古い最適化フラグを再利用しないように、{{ic|makepkg}}に{{ic|-c}}を使用します。 |
+ | {{Tip|パッケージに古い最適化フラグを再利用しないように、{{ic|makepkg}}に{{ic|-c}}を使用します。[[Makepkg#使用方法]]を参照してください。}} |
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを''2回''ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/''pkgbase''.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/''pkgbase''.used}} に移動して適用します。}} |
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを''2回''ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/''pkgbase''.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/''pkgbase''.used}} に移動して適用します。}} |
||
39行目: | 40行目: | ||
=== Chroot の設定 === |
=== Chroot の設定 === |
||
− | [[ |
+ | [[DeveloperWiki:クリーンな chroot でビルドする#古典的な方法|chroot をセットアップ]]した後、設定が必要です。 |
==== makepkg-optimize とバックエンドのインストール ==== |
==== makepkg-optimize とバックエンドのインストール ==== |
||
47行目: | 48行目: | ||
$ arch-nspawn "$CHROOT"/root pacman -S openmp upx optipng polly |
$ arch-nspawn "$CHROOT"/root pacman -S openmp upx optipng polly |
||
− | それから {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[ |
+ | それから {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[DeveloperWiki:クリーンな chroot でビルドする#chroot でのビルド|ビルド]]してください。 |
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします: |
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします: |
||
54行目: | 55行目: | ||
$ arch-nspawn "$CHROOT"/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz |
$ arch-nspawn "$CHROOT"/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz |
||
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}} |
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}} |
||
− | |||
− | ==== PGO キャッシュの作成 ==== |
||
− | |||
− | PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成します: |
||
− | |||
− | # mkdir -m 777 {"$CHROOT"/{root,"$USER"},}/mnt/pgo |
||
− | |||
− | それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。 |
||
=== chroot を使う === |
=== chroot を使う === |
||
69行目: | 62行目: | ||
==== パッケージのビルド ==== |
==== パッケージのビルド ==== |
||
− | まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。 |
+ | まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[makepkg-optimize#設定|好みの最適化を選択]]してください。 |
− | [[ |
+ | [[DeveloperWiki:クリーンな chroot でビルドする#chroot でのビルド|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください: |
$ makechrootpkg -c -r "$CHROOT" -- -c --config /etc/makepkg-optimize.conf |
$ makechrootpkg -c -r "$CHROOT" -- -c --config /etc/makepkg-optimize.conf |
||
77行目: | 70行目: | ||
===== PGO でビルド ===== |
===== PGO でビルド ===== |
||
− | + | ====== PGO キャッシュの作成 ====== |
|
+ | PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成して、それをバインドします: |
||
+ | |||
+ | # mkdir -m 777 {"$CHROOT"/{root,"$USER"},}/mnt/pgo |
||
# mount -o bind {,"$CHROOT"/root}/mnt/pgo |
# mount -o bind {,"$CHROOT"/root}/mnt/pgo |
||
# mount -o bind "$CHROOT"/{root,"$USER"}/mnt/pgo |
# mount -o bind "$CHROOT"/{root,"$USER"}/mnt/pgo |
||
84行目: | 80行目: | ||
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}} |
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}} |
||
+ | それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。 |
||
− | パッケージを[[Pacman#追加コマンド|インストール]]してテスト実行してみてください。 |
||
+ | |||
+ | ====== プログラムのプロファイル ====== |
||
+ | |||
+ | パッケージをビルドして、[[Pacman#追加コマンド|インストール]]して、テスト実行してみてください。 |
||
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}} |
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}} |
2024年1月7日 (日) 04:36時点における最新版
makepkg-optimizeAUR は pacman を補助する tidy、buildenv と executable スクリプト集です。build()
と package()
で最適化をかけるマクロを提供します。
目次
インストール
makepkg-optimizeAUR をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: openmp, upx, optipng, svgoAUR, polly
設定
makepkg-optimizeAUR は現在の makepkg の設定から /etc/makepkg-optimize.conf
という名前の 設定ファイル を生成します。
このファイルにはコンパイルフラグ, ビルド環境, パッケージオプション, パッケージ出力, 圧縮デフォルト の追加オプションが記載されています。デフォルトでは全て無効となっています。
最適化されたパッケージのビルド
最適化の設定を行ったら、ビルドするときに設定ファイルを指定してください:
$ makepkg -c --config /etc/makepkg-optimize.conf
chroot で最適化されたパッケージのビルド
また、makepkg-optimize
を使って chroot の中で最適化済みのパッケージをビルドすることもできます。
Chroot の設定
chroot をセットアップした後、設定が必要です。
makepkg-optimize とバックエンドのインストール
まず、chroot に最適化マクロのバックエンドをインストール:
$ arch-nspawn "$CHROOT"/root pacman -S openmp upx optipng polly
それから makepkg-optimizeAUR と svgoAUR をダウンロード・ビルドしてください。
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:
# cp svgo-1.2.2-2-any.pkg.tar.xz "$CHROOT"/root/root/ $ arch-nspawn "$CHROOT"/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz
chroot を使う
パッケージのビルド
まず、$CHROOT/root/etc/makepkg-optimize.conf
を編集して好みの最適化を選択してください。
ビルドするときに、makepkg
に設定ファイルを指定してください:
$ makechrootpkg -c -r "$CHROOT" -- -c --config /etc/makepkg-optimize.conf
PGO でビルド
PGO キャッシュの作成
PGO を使うときは、プロファイル を保存するために chroot の中と外、同じ場所にフォルダを作成して、それをバインドします:
# mkdir -m 777 {"$CHROOT"/{root,"$USER"},}/mnt/pgo # mount -o bind {,"$CHROOT"/root}/mnt/pgo # mount -o bind "$CHROOT"/{root,"$USER"}/mnt/pgo
それから $CHROOT/root/etc/makepkg-optimize.conf
を編集して PROFDEST=/mnt/pgo
を設定してください。
プログラムのプロファイル
パッケージをビルドして、インストールして、テスト実行してみてください。
ソフトウェアを一通り使ったら、パッケージを再ビルド・再インストールしてください。