[華語, cmn-Hant-TW]
FreeBSD 的 ports 在引入 Flavors 之後,比較能清楚的看出套件倒底是相依哪個東西,現在會看是用哪個版本的 php 而加上適當的前綴或後綴,像是以前的 composer 叫 php-composer-1.6.5,相依 php 7.2 的話就會叫 php72-composer-1.6.5,又例如 phpMyAdmin 的話以前叫 phpMyAdmin-4.8.2,相依 php 7.2 的會變成 phpMyAdmin-php72-4.8.2
這樣的好處是在套件安裝的時候可以指定要用哪個版本的 php,要用 php 5.6 的話就下 pkg install php56-composer
安裝即可,以往要使用非預設版本的套件時,只能自己手動從 ports 編譯,現在的話只要支援中的版本都可以透過這樣的方式選擇安裝,方便不少,要注意的是如果套件是在還沒支援 flavors 之前就裝好的話會沒辦法更新,先反安裝再重新選一個需要的版本安裝即可,以 phpMyAdmin 來講,如果要用 php72 的話就是:
pkg delete phpmyadmin
pkg install phpmyadmin-php72
現在用 ports 編譯套件一樣會走這個規則,例如 make FLAVOR=py37
就會在編譯 python 相關套件時使用 python 3.7,編譯工作目錄也會有所區分,以這個例子來看就會放在 work-py37,如果沒有特別指定 FLAVOR 的話會用系統預設值,如果 /etc/make.conf
有另外指定的話那就會用指定的值,例如 DEFAULT_VERSIONS+= python=2.7
就相當於 make FLAVOR=py27
用 portupgrade 跟 portmaster 升級舊的套件的時候有時候會卡關,不確定是不是跟 make.conf 設定有關,如果遇到的話也是一樣先反安裝再重新安裝一次即可