「Makepkg-optimize」の版間の差分
(DeveloperWikiのリンク変更) |
Quequotion (トーク | 投稿記録) (→設定: , →最適化されたパッケージのビルド: : Warning, Tip, Note のばしょかえる) |
||
20行目: | 20行目: | ||
このファイルには[[Makepkg#最適化されたパッケージの作成|コンパイルフラグ]], [https://aur.archlinux.org/cgit/aur.git/tree/buildenv_ext.conf?h=makepkg-optimize ビルド環境], [https://aur.archlinux.org/cgit/aur.git/tree/pkgopts_ext.conf?h=makepkg-optimize パッケージオプション], [https://aur.archlinux.org/cgit/aur.git/tree/destdirs_ext.conf?h=makepkg-optimize パッケージ出力], [https://aur.archlinux.org/cgit/aur.git/tree/compress-param_max.conf?h=makepkg-optimize 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。 |
このファイルには[[Makepkg#最適化されたパッケージの作成|コンパイルフラグ]], [https://aur.archlinux.org/cgit/aur.git/tree/buildenv_ext.conf?h=makepkg-optimize ビルド環境], [https://aur.archlinux.org/cgit/aur.git/tree/pkgopts_ext.conf?h=makepkg-optimize パッケージオプション], [https://aur.archlinux.org/cgit/aur.git/tree/destdirs_ext.conf?h=makepkg-optimize パッケージ出力], [https://aur.archlinux.org/cgit/aur.git/tree/compress-param_max.conf?h=makepkg-optimize 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。 |
||
− | |||
− | {{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}} |
||
== 最適化されたパッケージのビルド == |
== 最適化されたパッケージのビルド == |
||
+ | |||
+ | {{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}} |
||
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください: |
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください: |
||
$ makepkg -c --config /etc/makepkg-optimize.conf |
$ makepkg -c --config /etc/makepkg-optimize.conf |
||
− | |||
− | {{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを''2回''ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/''pkgbase''.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/''pkgbase''.used}} に移動して適用します。}} |
||
{{Tip|パッケージに古い最適化フラグを再利用しないように、{{ic|makepkg}}に{{ic|-c}}を使用します。 [[Makepkg#使用方法]]を参照してください。}} |
{{Tip|パッケージに古い最適化フラグを再利用しないように、{{ic|makepkg}}に{{ic|-c}}を使用します。 [[Makepkg#使用方法]]を参照してください。}} |
||
+ | |||
+ | {{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを''2回''ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/''pkgbase''.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/''pkgbase''.used}} に移動して適用します。}} |
||
== chroot で最適化されたパッケージのビルド == |
== chroot で最適化されたパッケージのビルド == |
2022年1月10日 (月) 01:15時点における版
makepkg-optimizeAUR は pacman を補助する tidy、buildenv と executable スクリプト集です。build()
と package()
で最適化をかけるマクロを提供します。
目次
インストール
makepkg-optimizeAUR をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: openmp, upx, optipng, svgoAUR。
設定
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
それから 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
PGO キャッシュの作成
PGO を使うときは、プロファイル を保存するために chroot の中と外、同じ場所にフォルダを作成します:
# mkdir -m 777 {"$CHROOT"/{root,"$USER"},}/mnt/pgo
それから $CHROOT/root/etc/makepkg-optimize.conf
を編集して PROFDEST=/mnt/pgo
を設定してください。
chroot を使う
パッケージのビルド
まず、$CHROOT/root/etc/makepkg-optimize.conf
を編集して最適化を選択してください。
ビルドするときに、makepkg
に設定ファイルを指定してください:
$ makechrootpkg -c -r "$CHROOT" -- -c --config /etc/makepkg-optimize.conf
PGO でビルド
最初のビルドが終わったら、PGO キャッシュをバインド:
# mount -o bind {,"$CHROOT"/root}/mnt/pgo # mount -o bind "$CHROOT"/{root,"$USER"}/mnt/pgo
パッケージをインストールしてテスト実行してみてください。
ソフトウェアを一通り使ったら、パッケージを再ビルド・再インストールしてください。