<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Quequotion</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Quequotion"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Quequotion"/>
	<updated>2026-04-18T04:00:45Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=23084</id>
		<title>Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=23084"/>
		<updated>2022-01-09T16:38:53Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: chrootでPGOを再編成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Makepkg-optimize]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|DeveloperWiki:クリーンな chroot 内でビルドする}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は [[pacman]] を補助する [https://git.archlinux.org/pacman.git/commit/?id=295a3491adc4af5c8634ac82777212ed9c664457 tidy]、[https://git.archlinux.org/pacman.git/commit/?id=508b4e3ec0cb3e365942f4dc0626edda4789932b buildenv] と [https://git.archlinux.org/pacman.git/commit/?id=0bb04fa16a82db133dd010478c1256bc8500c5e7 executable] スクリプト集です。{{ic|build()}} と {{ic|package()}} で最適化をかけるマクロを提供します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Arch User Repository]] の他のパッケージと同じく、{{AUR|makepkg-optimize}} に公式サポートはありません。AUR ページのコメント欄を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}, {{Pkg|polly}}。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。&lt;br /&gt;
&lt;br /&gt;
このファイルには[[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 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。&lt;br /&gt;
&lt;br /&gt;
== 最適化されたパッケージのビルド ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}}&lt;br /&gt;
&lt;br /&gt;
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makepkg -c --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
{{Tip|パッケージに古い最適化フラグを再利用しないように、{{ic|makepkg}}に{{ic|-c}}を使用します。 [[Makepkg#使用方法]]を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを&#039;&#039;2回&#039;&#039;ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.used}} に移動して適用します。}}&lt;br /&gt;
&lt;br /&gt;
== chroot で最適化されたパッケージのビルド  ==&lt;br /&gt;
&lt;br /&gt;
また、{{ic|makepkg-optimize}} を使って [[en2:DeveloperWiki:Building in a clean chroot#Classic way|chroot]] の中で最適化済みのパッケージをビルドすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== Chroot の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Setting up a chroot|chroot をセットアップ]]した後、設定が必要です。&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize とバックエンドのインストール ====&lt;br /&gt;
&lt;br /&gt;
まず、chroot に最適化マクロのバックエンドをインストール:&lt;br /&gt;
&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -S openmp upx optipng polly&lt;br /&gt;
&lt;br /&gt;
それから {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。&lt;br /&gt;
&lt;br /&gt;
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:&lt;br /&gt;
&lt;br /&gt;
 # cp svgo-1.2.2-2-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
&lt;br /&gt;
=== chroot を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot を [[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|アップデート]] するとき、[[#makepkg-optimize とバックエンドのインストール|AUR パッケージ]]は手動で更新が必要です。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのビルド ====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makechrootpkg -c -r &amp;quot;$CHROOT&amp;quot; -- -c --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
===== PGO でビルド =====&lt;br /&gt;
&lt;br /&gt;
====== PGO キャッシュの作成 ======&lt;br /&gt;
&lt;br /&gt;
PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成して、それをバインドします:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -m 777 {&amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;},}/mnt/pgo&lt;br /&gt;
 # mount -o bind {,&amp;quot;$CHROOT&amp;quot;/root}/mnt/pgo&lt;br /&gt;
 # mount -o bind &amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}}&lt;br /&gt;
&lt;br /&gt;
それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
====== プログラムのプロファイル ======&lt;br /&gt;
&lt;br /&gt;
パッケージをビルドして、[[Pacman#追加コマンド|インストール]]して、テスト実行してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}}&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを一通り使ったら、パッケージを[[#パッケージのビルド|再ビルド]]・再インストールしてください。&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=23083</id>
		<title>Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=23083"/>
		<updated>2022-01-09T16:20:33Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: 新しいoptdepends, polly&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Makepkg-optimize]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|DeveloperWiki:クリーンな chroot 内でビルドする}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は [[pacman]] を補助する [https://git.archlinux.org/pacman.git/commit/?id=295a3491adc4af5c8634ac82777212ed9c664457 tidy]、[https://git.archlinux.org/pacman.git/commit/?id=508b4e3ec0cb3e365942f4dc0626edda4789932b buildenv] と [https://git.archlinux.org/pacman.git/commit/?id=0bb04fa16a82db133dd010478c1256bc8500c5e7 executable] スクリプト集です。{{ic|build()}} と {{ic|package()}} で最適化をかけるマクロを提供します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Arch User Repository]] の他のパッケージと同じく、{{AUR|makepkg-optimize}} に公式サポートはありません。AUR ページのコメント欄を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}, {{Pkg|polly}}。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。&lt;br /&gt;
&lt;br /&gt;
このファイルには[[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 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。&lt;br /&gt;
&lt;br /&gt;
== 最適化されたパッケージのビルド ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}}&lt;br /&gt;
&lt;br /&gt;
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makepkg -c --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
{{Tip|パッケージに古い最適化フラグを再利用しないように、{{ic|makepkg}}に{{ic|-c}}を使用します。 [[Makepkg#使用方法]]を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを&#039;&#039;2回&#039;&#039;ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.used}} に移動して適用します。}}&lt;br /&gt;
&lt;br /&gt;
== chroot で最適化されたパッケージのビルド  ==&lt;br /&gt;
&lt;br /&gt;
また、{{ic|makepkg-optimize}} を使って [[en2:DeveloperWiki:Building in a clean chroot#Classic way|chroot]] の中で最適化済みのパッケージをビルドすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== Chroot の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Setting up a chroot|chroot をセットアップ]]した後、設定が必要です。&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize とバックエンドのインストール ====&lt;br /&gt;
&lt;br /&gt;
まず、chroot に最適化マクロのバックエンドをインストール:&lt;br /&gt;
&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -S openmp upx optipng polly&lt;br /&gt;
&lt;br /&gt;
それから {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。&lt;br /&gt;
&lt;br /&gt;
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:&lt;br /&gt;
&lt;br /&gt;
 # cp svgo-1.2.2-2-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
&lt;br /&gt;
==== PGO キャッシュの作成 ====&lt;br /&gt;
&lt;br /&gt;
PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -m 777 {&amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;},}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== chroot を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot を [[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|アップデート]] するとき、[[#makepkg-optimize とバックエンドのインストール|AUR パッケージ]]は手動で更新が必要です。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのビルド ====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makechrootpkg -c -r &amp;quot;$CHROOT&amp;quot; -- -c --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
===== PGO でビルド =====&lt;br /&gt;
&lt;br /&gt;
最初のビルドが終わったら、[[#PGO キャッシュの作成|PGO キャッシュ]]をバインド:&lt;br /&gt;
&lt;br /&gt;
 # mount -o bind {,&amp;quot;$CHROOT&amp;quot;/root}/mnt/pgo&lt;br /&gt;
 # mount -o bind &amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}}&lt;br /&gt;
&lt;br /&gt;
パッケージを[[Pacman#追加コマンド|インストール]]してテスト実行してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}}&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを一通り使ったら、パッケージを[[#パッケージのビルド|再ビルド]]・再インストールしてください。&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=23082</id>
		<title>Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=23082"/>
		<updated>2022-01-09T16:15:33Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: /* 設定 */, /* 最適化されたパッケージのビルド */: Warning, Tip, Note のばしょかえる&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Makepkg-optimize]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|DeveloperWiki:クリーンな chroot 内でビルドする}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は [[pacman]] を補助する [https://git.archlinux.org/pacman.git/commit/?id=295a3491adc4af5c8634ac82777212ed9c664457 tidy]、[https://git.archlinux.org/pacman.git/commit/?id=508b4e3ec0cb3e365942f4dc0626edda4789932b buildenv] と [https://git.archlinux.org/pacman.git/commit/?id=0bb04fa16a82db133dd010478c1256bc8500c5e7 executable] スクリプト集です。{{ic|build()}} と {{ic|package()}} で最適化をかけるマクロを提供します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Arch User Repository]] の他のパッケージと同じく、{{AUR|makepkg-optimize}} に公式サポートはありません。AUR ページのコメント欄を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。&lt;br /&gt;
&lt;br /&gt;
このファイルには[[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 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。&lt;br /&gt;
&lt;br /&gt;
== 最適化されたパッケージのビルド ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}}&lt;br /&gt;
&lt;br /&gt;
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makepkg -c --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
{{Tip|パッケージに古い最適化フラグを再利用しないように、{{ic|makepkg}}に{{ic|-c}}を使用します。 [[Makepkg#使用方法]]を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを&#039;&#039;2回&#039;&#039;ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.used}} に移動して適用します。}}&lt;br /&gt;
&lt;br /&gt;
== chroot で最適化されたパッケージのビルド  ==&lt;br /&gt;
&lt;br /&gt;
また、{{ic|makepkg-optimize}} を使って [[en2:DeveloperWiki:Building in a clean chroot#Classic way|chroot]] の中で最適化済みのパッケージをビルドすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== Chroot の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Setting up a chroot|chroot をセットアップ]]した後、設定が必要です。&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize とバックエンドのインストール ====&lt;br /&gt;
&lt;br /&gt;
まず、chroot に最適化マクロのバックエンドをインストール:&lt;br /&gt;
&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -S openmp upx optipng&lt;br /&gt;
&lt;br /&gt;
それから {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。&lt;br /&gt;
&lt;br /&gt;
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:&lt;br /&gt;
&lt;br /&gt;
 # cp svgo-1.2.2-2-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
&lt;br /&gt;
==== PGO キャッシュの作成 ====&lt;br /&gt;
&lt;br /&gt;
PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -m 777 {&amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;},}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== chroot を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot を [[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|アップデート]] するとき、[[#makepkg-optimize とバックエンドのインストール|AUR パッケージ]]は手動で更新が必要です。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのビルド ====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makechrootpkg -c -r &amp;quot;$CHROOT&amp;quot; -- -c --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
===== PGO でビルド =====&lt;br /&gt;
&lt;br /&gt;
最初のビルドが終わったら、[[#PGO キャッシュの作成|PGO キャッシュ]]をバインド:&lt;br /&gt;
&lt;br /&gt;
 # mount -o bind {,&amp;quot;$CHROOT&amp;quot;/root}/mnt/pgo&lt;br /&gt;
 # mount -o bind &amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}}&lt;br /&gt;
&lt;br /&gt;
パッケージを[[Pacman#追加コマンド|インストール]]してテスト実行してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}}&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを一通り使ったら、パッケージを[[#パッケージのビルド|再ビルド]]・再インストールしてください。&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=15683</id>
		<title>Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=15683"/>
		<updated>2020-03-04T18:59:42Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: /* 最適化されたパッケージのビルド */ パッケージに古い最適化フラグを再利用しないように、makepkgに-cを使用します。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Makepkg-optimize]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related4|DeveloperWiki:Building in a clean chroot}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は [[pacman]] を補助する [https://git.archlinux.org/pacman.git/commit/?id=295a3491adc4af5c8634ac82777212ed9c664457 tidy]、[https://git.archlinux.org/pacman.git/commit/?id=508b4e3ec0cb3e365942f4dc0626edda4789932b buildenv] と [https://git.archlinux.org/pacman.git/commit/?id=0bb04fa16a82db133dd010478c1256bc8500c5e7 executable] スクリプト集です。{{ic|build()}} と {{ic|package()}} で最適化をかけるマクロを提供します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Arch User Repository]] の他のパッケージと同じく、{{AUR|makepkg-optimize}} に公式サポートはありません。AUR ページのコメント欄を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。&lt;br /&gt;
&lt;br /&gt;
このファイルには[[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 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。&lt;br /&gt;
&lt;br /&gt;
{{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}}&lt;br /&gt;
&lt;br /&gt;
== 最適化されたパッケージのビルド ==&lt;br /&gt;
&lt;br /&gt;
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makepkg -c --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを&#039;&#039;2回&#039;&#039;ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.used}} に移動して適用します。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|パッケージに古い最適化フラグを再利用しないように、{{ic|makepkg}}に{{ic|-c}}を使用します。 [[Makepkg#使用方法]]を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
== chroot で最適化されたパッケージのビルド  ==&lt;br /&gt;
&lt;br /&gt;
また、{{ic|makepkg-optimize}} を使って [[en2:DeveloperWiki:Building in a clean chroot#Classic way|chroot]] の中で最適化済みのパッケージをビルドすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== Chroot の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Setting up a chroot|chroot をセットアップ]]した後、設定が必要です。&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize とバックエンドのインストール ====&lt;br /&gt;
&lt;br /&gt;
まず、chroot に最適化マクロのバックエンドをインストール:&lt;br /&gt;
&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -S openmp upx optipng&lt;br /&gt;
&lt;br /&gt;
それから {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。&lt;br /&gt;
&lt;br /&gt;
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:&lt;br /&gt;
&lt;br /&gt;
 # cp svgo-1.2.2-2-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
&lt;br /&gt;
==== PGO キャッシュの作成 ====&lt;br /&gt;
&lt;br /&gt;
PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -m 777 {&amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;},}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== chroot を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot を [[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|アップデート]] するとき、[[#makepkg-optimize とバックエンドのインストール|AUR パッケージ]]は手動で更新が必要です。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのビルド ====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makechrootpkg -c -r &amp;quot;$CHROOT&amp;quot; -- -c --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
===== PGO でビルド =====&lt;br /&gt;
&lt;br /&gt;
最初のビルドが終わったら、[[#PGO キャッシュの作成|PGO キャッシュ]]をバインド:&lt;br /&gt;
&lt;br /&gt;
 # mount -o bind {,&amp;quot;$CHROOT&amp;quot;/root}/mnt/pgo&lt;br /&gt;
 # mount -o bind &amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}}&lt;br /&gt;
&lt;br /&gt;
パッケージを[[Pacman#追加コマンド|インストール]]してテスト実行してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}}&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを一通り使ったら、パッケージを[[#パッケージのビルド|再ビルド]]・再インストールしてください。&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=15678</id>
		<title>Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=15678"/>
		<updated>2020-03-03T19:59:22Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: /* PGO キャッシュの作成 */ はじめのとき、まだ $CHROOT/$USER/mnt/pgo はそんじしてない。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Makepkg-optimize]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related4|DeveloperWiki:Building in a clean chroot}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は [[pacman]] を補助する [https://git.archlinux.org/pacman.git/commit/?id=295a3491adc4af5c8634ac82777212ed9c664457 tidy]、[https://git.archlinux.org/pacman.git/commit/?id=508b4e3ec0cb3e365942f4dc0626edda4789932b buildenv] と [https://git.archlinux.org/pacman.git/commit/?id=0bb04fa16a82db133dd010478c1256bc8500c5e7 executable] スクリプト集です。{{ic|build()}} と {{ic|package()}} で最適化をかけるマクロを提供します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Arch User Repository]] の他のパッケージと同じく、{{AUR|makepkg-optimize}} に公式サポートはありません。AUR ページのコメント欄を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。&lt;br /&gt;
&lt;br /&gt;
このファイルには[[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 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。&lt;br /&gt;
&lt;br /&gt;
{{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}}&lt;br /&gt;
&lt;br /&gt;
== 最適化されたパッケージのビルド ==&lt;br /&gt;
&lt;br /&gt;
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makepkg --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを&#039;&#039;2回&#039;&#039;ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.used}} に移動して適用します。}}&lt;br /&gt;
&lt;br /&gt;
== chroot で最適化されたパッケージのビルド  ==&lt;br /&gt;
&lt;br /&gt;
また、{{ic|makepkg-optimize}} を使って [[en2:DeveloperWiki:Building in a clean chroot#Classic way|chroot]] の中で最適化済みのパッケージをビルドすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== Chroot の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Setting up a chroot|chroot をセットアップ]]した後、設定が必要です。&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize とバックエンドのインストール ====&lt;br /&gt;
&lt;br /&gt;
まず、chroot に最適化マクロのバックエンドをインストール:&lt;br /&gt;
&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -S openmp upx optipng&lt;br /&gt;
&lt;br /&gt;
それから {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。&lt;br /&gt;
&lt;br /&gt;
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:&lt;br /&gt;
&lt;br /&gt;
 # cp svgo-1.2.2-2-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
&lt;br /&gt;
==== PGO キャッシュの作成 ====&lt;br /&gt;
&lt;br /&gt;
PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -m 777 {&amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;},}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== chroot を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot を [[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|アップデート]] するとき、[[#makepkg-optimize とバックエンドのインストール|AUR パッケージ]]は手動で更新が必要です。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのビルド ====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makechrootpkg -c -r &amp;quot;$CHROOT&amp;quot; -- --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
===== PGO でビルド =====&lt;br /&gt;
&lt;br /&gt;
最初のビルドが終わったら、[[#PGO キャッシュの作成|PGO キャッシュ]]をバインド:&lt;br /&gt;
&lt;br /&gt;
 # mount -o bind {,&amp;quot;$CHROOT&amp;quot;/root}/mnt/pgo&lt;br /&gt;
 # mount -o bind &amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}}&lt;br /&gt;
&lt;br /&gt;
パッケージを[[Pacman#追加コマンド|インストール]]してテスト実行してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}}&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを一通り使ったら、パッケージを[[#パッケージのビルド|再ビルド]]・再インストールしてください。&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%88%E3%83%BC%E3%82%AF:Makepkg-optimize&amp;diff=15098</id>
		<title>トーク:Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%88%E3%83%BC%E3%82%AF:Makepkg-optimize&amp;diff=15098"/>
		<updated>2019-10-28T18:47:22Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: /* 完全なchrootでmakepkg-optimizeのインストールを簡素化 */ signing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 完全なchrootでmakepkg-optimizeのインストールを簡素化 ==&lt;br /&gt;
&lt;br /&gt;
[[en2:Talk:Makepkg-optimize#Simplify installation of makepkg-optimize in a clean chroot|これ]]について、日本語をもっと上手に話せる人に手伝ってくれればありがたいです！ [[利用者:Quequotion|Quequotion]] ([[利用者・トーク:Quequotion|トーク]]) 2019年10月29日 (火) 03:47 (JST)&lt;br /&gt;
{{Note|このページの英語版の紹介の一部を言い換える必要があります。「to make optimizations available」(「最適化を行うために」)と言うのは誤解を招きます。 この随意バックエンドは、一部の最適化にのみ必要です。 その他はそのまま使用できます。 まだこれを言うより良い方法を考えています。}}&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize のインストール ====&lt;br /&gt;
&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
{{AUR|makepkg-optimize}}を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]と[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。それから、パッケージファイルをベースchrootにコピーして、{{ic|arch-nspawn}}で{{ic|pacman}}を呼び出して、インストールします:&lt;br /&gt;
 # cp makepkg-optimize-14-1-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/makepkg-optimize-14-1-any.pkg.tar.xz&lt;br /&gt;
{{Note|随意の最適化バックエンドは似たようにインストールしてもいいし、またビルドするときに[[en2:DeveloperWiki:Building in a clean chroot#Pre-install required packages|プレインストール]]してもいい。}}&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%88%E3%83%BC%E3%82%AF:Makepkg-optimize&amp;diff=15097</id>
		<title>トーク:Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%88%E3%83%BC%E3%82%AF:Makepkg-optimize&amp;diff=15097"/>
		<updated>2019-10-28T18:41:59Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: 完全なchrootでmakepkg-optimizeのインストールを簡素化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 完全なchrootでmakepkg-optimizeのインストールを簡素化 ==&lt;br /&gt;
&lt;br /&gt;
[[en2:Talk:Makepkg-optimize#Simplify installation of makepkg-optimize in a clean chroot|これ]]について、日本語をもっと上手に話せる人に手伝ってくれればありがたいです！&lt;br /&gt;
{{Note|このページの英語版の紹介の一部を言い換える必要があります。「to make optimizations available」(「最適化を行うために」)と言うのは誤解を招きます。 この随意バックエンドは、一部の最適化にのみ必要です。 その他はそのまま使用できます。 まだこれを言うより良い方法を考えています。}}&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize のインストール ====&lt;br /&gt;
&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
{{AUR|makepkg-optimize}}を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]と[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。それから、パッケージファイルをベースchrootにコピーして、{{ic|arch-nspawn}}で{{ic|pacman}}を呼び出して、インストールします:&lt;br /&gt;
 # cp makepkg-optimize-14-1-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/makepkg-optimize-14-1-any.pkg.tar.xz&lt;br /&gt;
{{Note|随意の最適化バックエンドは似たようにインストールしてもいいし、またビルドするときに[[en2:DeveloperWiki:Building in a clean chroot#Pre-install required packages|プレインストール]]してもいい。}}&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=15096</id>
		<title>Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=15096"/>
		<updated>2019-10-28T17:31:42Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: makepkg-optimize depends(pacman-git -&amp;gt; core/pacman&amp;gt;=5.2.0)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Makepkg-optimize]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related4|DeveloperWiki:Building in a clean chroot}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は [[pacman]] を補助する [https://git.archlinux.org/pacman.git/commit/?id=295a3491adc4af5c8634ac82777212ed9c664457 tidy]、[https://git.archlinux.org/pacman.git/commit/?id=508b4e3ec0cb3e365942f4dc0626edda4789932b buildenv] と [https://git.archlinux.org/pacman.git/commit/?id=0bb04fa16a82db133dd010478c1256bc8500c5e7 executable] スクリプト集です。{{ic|build()}} と {{ic|package()}} で最適化をかけるマクロを提供します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Arch User Repository]] の他のパッケージと同じく、{{AUR|makepkg-optimize}} に公式サポートはありません。AUR ページのコメント欄を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。&lt;br /&gt;
&lt;br /&gt;
このファイルには[[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 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。&lt;br /&gt;
&lt;br /&gt;
{{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}}&lt;br /&gt;
&lt;br /&gt;
== 最適化されたパッケージのビルド ==&lt;br /&gt;
&lt;br /&gt;
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makepkg --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを&#039;&#039;2回&#039;&#039;ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.used}} に移動して適用します。}}&lt;br /&gt;
&lt;br /&gt;
== chroot で最適化されたパッケージのビルド  ==&lt;br /&gt;
&lt;br /&gt;
また、{{ic|makepkg-optimize}} を使って [[en2:DeveloperWiki:Building in a clean chroot#Classic way|chroot]] の中で最適化済みのパッケージをビルドすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== Chroot の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Setting up a chroot|chroot をセットアップ]]した後、設定が必要です。&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize とバックエンドのインストール ====&lt;br /&gt;
&lt;br /&gt;
まず、chroot に最適化マクロのバックエンドをインストール:&lt;br /&gt;
&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -S openmp upx optipng&lt;br /&gt;
&lt;br /&gt;
それから {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。&lt;br /&gt;
&lt;br /&gt;
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:&lt;br /&gt;
&lt;br /&gt;
 # cp svgo-1.2.2-2-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
&lt;br /&gt;
==== PGO キャッシュの作成 ====&lt;br /&gt;
&lt;br /&gt;
PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -m 777 {&amp;quot;$CHROOT&amp;quot;/root,}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== chroot を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot を [[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|アップデート]] するとき、[[#makepkg-optimize とバックエンドのインストール|AUR パッケージ]]は手動で更新が必要です。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのビルド ====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makechrootpkg -c -r &amp;quot;$CHROOT&amp;quot; -- --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
===== PGO でビルド =====&lt;br /&gt;
&lt;br /&gt;
最初のビルドが終わったら、[[#PGO キャッシュの作成|PGO キャッシュ]]をバインド:&lt;br /&gt;
&lt;br /&gt;
 # mount -o bind {,&amp;quot;$CHROOT&amp;quot;/root}/mnt/pgo&lt;br /&gt;
 # mount -o bind &amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}}&lt;br /&gt;
&lt;br /&gt;
パッケージを[[Pacman#追加コマンド|インストール]]してテスト実行してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}}&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを一通り使ったら、パッケージを[[#パッケージのビルド|再ビルド]]・再インストールしてください。&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=14861</id>
		<title>Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=14861"/>
		<updated>2019-07-12T07:18:57Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: +executableスクリプト&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Makepkg-optimize]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related4|DeveloperWiki:Building in a clean chroot}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は {{AUR|pacman-git}} を補助する [https://git.archlinux.org/pacman.git/commit/?id=295a3491adc4af5c8634ac82777212ed9c664457 tidy]、[https://git.archlinux.org/pacman.git/commit/?id=508b4e3ec0cb3e365942f4dc0626edda4789932b buildenv] と [https://git.archlinux.org/pacman.git/commit/?id=0bb04fa16a82db133dd010478c1256bc8500c5e7 executable] スクリプト集です。{{ic|build()}} と {{ic|package()}} で最適化をかけるマクロを提供します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Arch User Repository]] の他のパッケージと同じく、{{AUR|makepkg-optimize}} に公式サポートはありません。AUR ページのコメント欄を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。&lt;br /&gt;
&lt;br /&gt;
このファイルには[[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 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。&lt;br /&gt;
&lt;br /&gt;
{{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}}&lt;br /&gt;
&lt;br /&gt;
== 最適化されたパッケージのビルド ==&lt;br /&gt;
&lt;br /&gt;
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makepkg --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを&#039;&#039;2回&#039;&#039;ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.used}} に移動して適用します。}}&lt;br /&gt;
&lt;br /&gt;
== chroot で最適化されたパッケージのビルド  ==&lt;br /&gt;
&lt;br /&gt;
また、{{ic|makepkg-optimize}} を使って [[en2:DeveloperWiki:Building in a clean chroot#Classic way|chroot]] の中で最適化済みのパッケージをビルドすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== Chroot の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Setting up a chroot|chroot をセットアップ]]した後、設定が必要です。&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize とバックエンドのインストール ====&lt;br /&gt;
&lt;br /&gt;
まず、chroot に最適化マクロのバックエンドをインストール:&lt;br /&gt;
&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -S openmp upx optipng&lt;br /&gt;
&lt;br /&gt;
それから {{AUR|pacman-git}}、 {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。&lt;br /&gt;
&lt;br /&gt;
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:&lt;br /&gt;
&lt;br /&gt;
 # cp svgo-1.2.2-2-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
&lt;br /&gt;
==== PGO キャッシュの作成 ====&lt;br /&gt;
&lt;br /&gt;
PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -m 777 {&amp;quot;$CHROOT&amp;quot;/root,}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== chroot を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot を [[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|アップデート]] するとき、[[#makepkg-optimize とバックエンドのインストール|AUR パッケージ]]は手動で更新が必要です。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのビルド ====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makechrootpkg -c -r &amp;quot;$CHROOT&amp;quot; -- --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
===== PGO でビルド =====&lt;br /&gt;
&lt;br /&gt;
最初のビルドが終わったら、[[#PGO キャッシュの作成|PGO キャッシュ]]をバインド:&lt;br /&gt;
&lt;br /&gt;
 # mount -o bind {,&amp;quot;$CHROOT&amp;quot;/root}/mnt/pgo&lt;br /&gt;
 # mount -o bind &amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}}&lt;br /&gt;
&lt;br /&gt;
パッケージを[[Pacman#追加コマンド|インストール]]してテスト実行してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}}&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを一通り使ったら、パッケージを[[#パッケージのビルド|再ビルド]]・再インストールしてください。&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=14315</id>
		<title>Makepkg-optimize</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Makepkg-optimize&amp;diff=14315"/>
		<updated>2019-03-25T07:38:20Z</updated>

		<summary type="html">&lt;p&gt;Quequotion: makepkg-optimize とバックエンドのインストール: makepkg-optimize depends=(&amp;#039;pacman-git&amp;#039;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Makepkg-optimize]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related4|DeveloperWiki:Building in a clean chroot}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は {{AUR|pacman-git}} を補助する [https://git.archlinux.org/pacman.git/commit/?id=508b4e3ec0cb3e365942f4dc0626edda4789932b buildenv] と [https://git.archlinux.org/pacman.git/commit/?id=295a3491adc4af5c8634ac82777212ed9c664457 tidy] スクリプト集です。{{ic|build()}} と {{ic|package()}} で最適化をかけるマクロを提供します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Arch User Repository]] の他のパッケージと同じく、{{AUR|makepkg-optimize}} に公式サポートはありません。AUR ページのコメント欄を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|nodejs-svgo}}。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|makepkg-optimize}} は現在の [[makepkg]] の設定から {{ic|/etc/makepkg-optimize.conf}} という名前の [https://jlk.fjfi.cvut.cz/arch/manpages/man/makepkg.conf.5 設定ファイル] を生成します。&lt;br /&gt;
&lt;br /&gt;
このファイルには[[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 圧縮デフォルト] の追加オプションが記載されています。デフォルトでは全て無効となっています。&lt;br /&gt;
&lt;br /&gt;
{{Warning|最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。}}&lt;br /&gt;
&lt;br /&gt;
== 最適化されたパッケージのビルド ==&lt;br /&gt;
&lt;br /&gt;
[[#設定|最適化の設定]]を行ったら、[[Makepkg#使用方法|ビルド]]するときに設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makepkg --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Wikipedia:Profile-guided optimization|Profile-guided optimization]] ではパッケージを&#039;&#039;2回&#039;&#039;ビルド・インストールする必要があります。最初 {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.gen}} にプロファイルを生成して、それからプロファイルを {{ic|$PROFDEST/&#039;&#039;pkgbase&#039;&#039;.used}} に移動して適用します。}}&lt;br /&gt;
&lt;br /&gt;
== chroot で最適化されたパッケージのビルド  ==&lt;br /&gt;
&lt;br /&gt;
また、{{ic|makepkg-optimize}} を使って [[en2:DeveloperWiki:Building in a clean chroot#Classic way|chroot]] の中で最適化済みのパッケージをビルドすることもできます。&lt;br /&gt;
&lt;br /&gt;
=== Chroot の設定 ===&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Setting up a chroot|chroot をセットアップ]]した後、設定が必要です。&lt;br /&gt;
&lt;br /&gt;
==== makepkg-optimize とバックエンドのインストール ====&lt;br /&gt;
&lt;br /&gt;
まず、chroot に最適化マクロのバックエンドをインストール:&lt;br /&gt;
&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -S openmp upx optipng&lt;br /&gt;
&lt;br /&gt;
それから {{AUR|pacman-git}}、 {{AUR|makepkg-optimize}} と {{AUR|nodejs-svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。&lt;br /&gt;
&lt;br /&gt;
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:&lt;br /&gt;
&lt;br /&gt;
 # cp nodejs-svgo-1.1.1-1-any.pkg.tar.xz &amp;quot;$CHROOT&amp;quot;/root/root/&lt;br /&gt;
 $ arch-nspawn &amp;quot;$CHROOT&amp;quot;/root pacman -U /root/nodejs-svgo-1.1.1-1-any.pkg.tar.xz&lt;br /&gt;
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}&lt;br /&gt;
&lt;br /&gt;
==== PGO キャッシュの作成 ====&lt;br /&gt;
&lt;br /&gt;
PGO を使うときは、[https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html プロファイル] を保存するために chroot の中と外、同じ場所にフォルダを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -m 777 {&amp;quot;$CHROOT&amp;quot;/root,}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
それから {{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して {{ic|1=PROFDEST=/mnt/pgo}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== chroot を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Note|chroot を [[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|アップデート]] するとき、[[#makepkg-optimize とバックエンドのインストール|AUR パッケージ]]は手動で更新が必要です。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのビルド ====&lt;br /&gt;
&lt;br /&gt;
まず、{{ic|$CHROOT/root/etc/makepkg-optimize.conf}} を編集して[[#設定|最適化を選択]]してください。&lt;br /&gt;
&lt;br /&gt;
[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]するときに、{{ic|makepkg}} に設定ファイルを指定してください:&lt;br /&gt;
&lt;br /&gt;
 $ makechrootpkg -c -r &amp;quot;$CHROOT&amp;quot; -- --config /etc/makepkg-optimize.conf&lt;br /&gt;
&lt;br /&gt;
===== PGO でビルド =====&lt;br /&gt;
&lt;br /&gt;
最初のビルドが終わったら、[[#PGO キャッシュの作成|PGO キャッシュ]]をバインド:&lt;br /&gt;
&lt;br /&gt;
 # mount -o bind {,&amp;quot;$CHROOT&amp;quot;/root}/mnt/pgo&lt;br /&gt;
 # mount -o bind &amp;quot;$CHROOT&amp;quot;/{root,&amp;quot;$USER&amp;quot;}/mnt/pgo&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[fstab]] を使って起動時に上記のフォルダを [https://serverfault.com/a/613184 バインド] することもできます。}}&lt;br /&gt;
&lt;br /&gt;
パッケージを[[Pacman#追加コマンド|インストール]]してテスト実行してみてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムの {{ic|exit()}} 時にプロファイルは作成されます。[[systemd]] などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。}}&lt;br /&gt;
&lt;br /&gt;
ソフトウェアを一通り使ったら、パッケージを[[#パッケージのビルド|再ビルド]]・再インストールしてください。&lt;/div&gt;</summary>
		<author><name>Quequotion</name></author>
	</entry>
</feed>