More Related Content More from Yuichiro Naito (19) FreeBSD Ports Flavors 3. FLAVOR とは
● make FLAVOR=all は NG です
● make pretty-flavors-package-names で
フレーバ名とパッケージ名に一覧が表示されます
例:
$ cd /usr/ports/net/bird
$ make pretty-flavors-package-names
ipv4: bird-1.6.3_3
ipv6: bird6-1.6.3_3
4. FLAVOR のパッケージ名
● FLAVOR 名がパッケージ名のどこに入るのかは
各 port 毎に異なります
● 前または後ろにつけるという約束はあるようです
● 既存の port を FLAVOR 対応した場合、なるべくパッケー
ジ名が変わらないように配慮しているようです
● とあるパッケージの FLAVOR 名を知りたい場合は
pkg info コマンドで flavor: の行を見ましょう
5. Python での利用
● Python を使う port に FLAVOR サポートが入りました
● ただし、 Python 自身の port には FLAVOR はありません
● python を使う側の port に以下のような FLAVORS を定義
する仕組みを用意しています
FLAVORS = py27 py34 py35 py36
6. Python での利用
● Python を利用する port にサポートバージョンに応じた
FLAVORS を入れるために USE_PYTHON を拡張したよう
です
● USE_PYTHON=noflavors で FLAVOR なし
● USE_PYTHON=flavors でデフォルトバージョンの
Python を指定します(現時点では py27 )
● USE_PYTHON=allflavors で全てのバージョンの Python
を指定します
7. Python での利用の例
● 例えば devel/py-setuptools では
USE_PYTHON= allflavors
$ make pretty-flavors-package-names
py27: py27-setuptools-36.5.0
py36: py36-setuptools-36.5.0
py35: py35-setuptools-36.5.0
py34: py34-setuptools-36.5.0
8. Python での利用の例
● 例えば devel/py-gobject では
USE_PYTHON= flavors
$ make pretty-flavors-package-names
py27: py27-gobject-2.28.6_7
9. Python での利用の例
● 例えば sysutils/ansible では
USE_PYTHON= noflavors
$ make pretty-flavors-package-names
no flavor: ansible-2.4.2.0
● noflavors の場合は FLAVOR が無いときと同じ動作
10. pkg ユーザにとっての利点
● FLAVOR の数だけパッケージが増えたように見えます
● 依存関係などもそれぞれに応じて入ります
● アップグレードも今まで通り行えます
● バイナリパッケージの扱いについて特に変わることはあり
ません
11. ports のビルド
● poudriere は既に FLAVOR に対応しています
設定次第で FLAVOR のパッケージをビルドします
( FLAVOR_DEFAULT_ALL = yes )
● portmaster は 3.17.11 以降で対応しました
FLAVOR のない port から FLAVOR ありへアップデートで
きるようになりました
● portupgrade は未対応のようです