免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 7436 | 回复: 30
打印 上一主题 下一主题

[FreeBSD] 【经验分享】有關 Ports optionsNG 帶來的改變 (2012年10月更新 make.conf) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-17 00:55 |只看该作者 |倒序浏览
本帖最后由 zeissoctopus 于 2012-10-14 00:31 编辑

早於 2012 年 5 月 13 日,FreeBSD Ports Tree 已實作名為 optionsNG 的框架。

經過五個月,一些重要的倚賴關聯也陸逐轉為支援 optionsNG 框架。(轉變還在進行中)

對 FreeBSD Ports 使用者而言 ,optionsNG 帶來了近似 gentoo portage USE flag 的體驗。

FreeBSD optionsNG 的 KNOB = gentoo 的 USE flag
只要在 /etc/make.conf 中使用 OPTIONS_SET= 或  OPTIONS_UNSET= 便可統一控制編譯元件的倚賴。

例如凡任何音效軟件必需要支援 MP3, MP4 和 FLAC 那麼在 /etc/make.conf 加入以下一行

  1. OPTIONS_SET+=MP3 MP4 FLAC
复制代码
當編譯任何音效軟件時,她們都會直接選取 MP3, MP4, FLAC 關聯選項。你不必再費神每個 Ports 都 make config 選一次了。


如果想永遠不編譯某些元件,可以在 /etc/make.conf 使用 OPTIONS_UNSET= 語法。
例如永不編譯 KDE 則在 /etc/make.conf 加入一行

  1. OPTIONS_UNSET+=QT QT4 KDE KDE4
复制代码
所有會牽連的 Ports 都不再編譯 QT, KDE4 關聯倚賴

除了以上調整整個 ports tree 選項,optionsNG 也可以個別針對某一個 ports 的
例如所有都支援 X11,唯獨一個 emacs 不必支援 X11,那麼 /etc/make.conf 需要如下寫

  1. OPTIONS_SET+=X11
  2. emacs_UNSET+=X11
复制代码
利用 optionsNG 機制後,可以在 /etc/make.conf 加上一句

  1. NO_DIALOG=
复制代码
那麼煩人的 make config 對話盒不會再出現。

用過 gentoo portage USE flag 者應該比較易明白。

目前,可以查 /usr/ports/KNOBS 或 /usr/ports/Mk/bsd.options.desc.mk 看看有什麼可以選。

以下是我 9.1-RC2 + Intel KMS xfce 卓面使用 optionsNG 的 /etc/make.conf (2012 年 10 月 14 日)

  1. ##################################################
  2. ## 打開 PKGNG 支援
  3. ## 打開 Intel KMS 和  New Xorg 支援
  4. ## 關閉安全漏洞撿查
  5. ## 設定 Java, PostgreSQL and Perl 版本
  6. ## 設定用 ports 中的 openssl
  7. ##################################################
  8. KERNCONF=ACER1810TZ
  9. DIALOG="/usr/ports/Tools/scripts/dialogwrapper.sh"
  10. WITH_PKGNG=YES
  11. WITH_KMS=YES
  12. WITH_NEW_XORG=YES
  13. DISABLE_VULNERABILITIES=YES
  14. WITH_OPENSSL_PORT=YES
  15. WITH_GECKO=libxul libxul19
  16. JAVA_VENDOR=openjdk
  17. JAVA_VERSION=1.6
  18. DEFAULT_PGSQL_VER=91
  19. PERL_VERSION=5.14.2

  20. #######################################################
  21. ## 全域 optionsNG 選項 (順 A - Z 排序)
  22. #######################################################
  23. OPTIONS_SET+=ARCHIVE ALSA ASPELL AUDIOFILE AVAHI
  24. OPTIONS_SET+=BZIP2
  25. OPTIONS_SET+=CAIRO CDIO CJK COMPOSITE CUPS CURL
  26. OPTIONS_SET+=DBUS DEVD DOCS EMACS
  27. OPTIONS_SET+=FFMPEG FLAC FONTCONFIG FTP FUSE
  28. OPTIONS_SET+=GCONF GD GETEXT GHOSTSCRIPT GIF GLX GNOME GNOMEKEYRING GNOMEVFS2
  29. OPTIONS_SET+=GNUTLS GNUPG GRAPHVIZ GSSAPI GSTREAMER GTK2
  30. OPTIONS_SET+=HAL
  31. OPTIONS_SET+=ICONS ICONV ICU ID3 IDN IMAGEMAGICK IMAP IPV6
  32. OPTIONS_SET+=JAVA JPEG
  33. OPTIONS_SET+=LAME LIBEDIT LIBEV LIBEXIF LIBMNG LIBPAPER LUA
  34. OPTIONS_SET+=MAGICK MANPAGES MIXER MMX MP3 MP4 MPEG2 MPLAYER MULTIBYTE MUSEPACK
  35. OPTIONS_SET+=NLS NOTIFY
  36. OPTIONS_SET+=OGG OPENGL OPENSSL OSS
  37. OPTIONS_SET+=PAM PANGO PCRE PDF PERL PGSQL PNG POPPLER PROXY PRINT PTHREADS
  38. OPTIONS_SET+=PYTHON
  39. OPTIONS_SET+=QUOTA
  40. OPTIONS_SET+=RUBY
  41. OPTIONS_SET+=SASL SDL SIMD SMB SNDFILE SOUND SPEEX SQLITE3 SSH SSL SVG SVN
  42. OPTIONS_SET+=TCL TCLTK THEORA THREADS TIDY TIFF TK TLS
  43. OPTIONS_SET+=UCS4 UNZIP UTF8
  44. OPTIONS_SET+=VORBIS
  45. OPTIONS_SET+=WAV WAVEPACK
  46. OPTIONS_SET+=X11 XCURSOR XFT XPM XIM
  47. OPTIONS_SET+=ZLIB
  48. ###############################################################################
  49. OPTIONS_UNSET+=EXAMPLES
  50. OPTIONS_UNSET+=GTK1 GTK3
  51. OPTIONS_UNSET+=JACK
  52. OPTIONS_UNSET+=KDE KDE3 KDE4
  53. OPTIONS_UNSET+=MYSQL
  54. OPTIONS_UNSET+=PGO PROFILE PULSEAUDIO
  55. OPTIONS_UNSET+=QT4

  56. ##################################################
  57. ## 區域 libdrm 選項,打開支援 FreeBSD Intel KMS support
  58. ##################################################
  59. libdrm_SET+=KMS

  60. #######################################################
  61. ## 區域 xorg-drivers 選項,只安裝  mouse, keyboard, vesa and intel
  62. ## 4 項 xorg 驅動程式
  63. #######################################################
  64. xorg-drivers_SET+=INTEL MOUSE KEYBOARD VESA
  65. xorg-drivers_UNSET+=ATI MACH64 NV R128 RADEONHD OPENCHROME ACECAD ELOGRAPHICS
  66. xorg-drivers_UNSET+=HYPERPEN JOYSTICK MAGICTOUCH MUTOUCH PENMOUNT SYNAPTICS
  67. xorg-drivers_UNSET+=VMMOUSE VOID APM ARK CHIPS CIRRUS CYRIX DUMMY FBDEV
  68. xorg-drivers_UNSET+=GLINT I128 I740 IMSTT MGA NEOMAGIC NEWPORT RENDITION
  69. xorg-drivers_UNSET+=S3 S3VIRGE SAVAGE SILICONMOTION SIS TDFX TGA TRIDENT
  70. xorg-drivers_UNSET+=TSENG VIA VMWARE VOODOO

  71. #################################
  72. ## 區域 aspell 選擇,抵消 PTHREADS 對 aspell 作用
  73. #################################
  74. aspell_UNSET+=PTHREADS

  75. ################
  76. ## bsdconv 選項
  77. ################
  78. bsdconv_SET+=EXTRA

  79. ############################################
  80. ## GNU CLISP settings
  81. ############################################
  82. clisp_SET+=CLX_NEW DBUS GTK2 PCRE RAWSOCK WILDCARD ZLIB
  83. clisp_UNSET+=BDB CLX_MIT FASTCGI GDBM PGSQL SVM THREADS

  84. ##########################################
  85. ##  區域 cups 選項
  86. ##########################################
  87. cups-base_SET+=LIBPAPER XDG_OPEN
  88. cups-base_UNSET+=LDAP LIBUSB XPDF AVAHI MDNSRESPONDER

  89. #############################
  90. ## 區域 curl 選擇,抵消 GNUTLS 對 curl 作用
  91. #############################
  92. curl_UNSET+=GNUTLS

  93. ##############################
  94. ## 區域 ecl - Embeddable Common Lisp  選項
  95. ##############################
  96. ecl_SET+=ASDF CLX DFFI SOCKETS THREADS

  97. ###########################################################
  98. ## 區域 emacs 選項
  99. ###########################################################
  100. emacs_SET+=DBUS GIF JPEG M17N OTF PNG SOURCES SVG TIFF SYNC_INPUT SCROLLBARS
  101. emacs_SET+=XFT XIM MAGICK

  102. ##########################################
  103. ## 區域 evince 選項
  104. ##########################################
  105. evince_SET+=DBUS KEYRING
  106. evince_UNSET+=COMICS DVI DJVU IMPRESS NAUTILUS T1LIB


  107. #####################################################
  108. # 區域 firefox 選擇,注意 libxul , libxul19 需要與 firefox 保持一致, firefox 已改用 ALSA
  109. #####################################################
  110. firefox_SET+=GIO LOGGING
  111. firefox_UNSET+=GCONF GNOMEUI GNOMEVFS2 OSS
  112. libxul_SET+=GIO LOGGING
  113. libxul_UNSET+=GCONF GNOMEUI GNOMEVFS2 OSS
  114. libxul19_SET+=GIO LOGGING
  115. libxul19_UNSET+=GCONF GNOMEUI GNOMEVFS2 OSS

  116. #########################################################
  117. ## 區域 gimp 選項
  118. #########################################################
  119. gimp_SET+=PRINT HELP
  120. gimp_UNSET+=PYTHON
  121. gimp-app_SET+=AA DBUS EXIF GVFS HELPBROWSER MNG MP POPPLER RSVG SIMD WMF

  122. ##############################################
  123. ## 區域 libreoffice-i18n 選項,只安裝 en_US 和
  124. ## zh_TW 兩種語言介面
  125. ###############################################
  126. libreoffice_SET+=GNOME GTK2 JAVA MMEDIA PGSQL SDK
  127. libreoffice_UNSET+=DEBUG GTK3 KDE4 SYSTRAY WEBDAV
  128. libreoffice-i18n_UNSET+=ALL ar as ast be bg bn bo br brx bs ca ca_XV cs cy da
  129. libreoffice-i18n_UNSET+=de dgo dz el en_GB en_ZA eo es et eu fa fi fr ga gd gl
  130. libreoffice-i18n_UNSET+=gu he hi hr hu id is it ja ka kk km kn ko kok ks ku lb
  131. libreoffice-i18n_UNSET+=lo lt lv mai mk ml mn mni mr my nb ne nl nn nr nso oc
  132. libreoffice-i18n_UNSET+=oc om or pa_IN pl pt pt_BR ro ru rw sa_IN sat sd sh si
  133. libreoffice-i18n_UNSET+=sk sl sq sr ss st sv sw_TZ ta te tg th tn tr ts tt ug
  134. libreoffice-i18n_SET+=zh_CN zh_TW

  135. ####################################
  136. ## 區域 mplayer 選項,關閉預設使用 GCC 4.6 編譯
  137. ## 改為使用 base 的 GCC 4.2.1 編譯,增加支援 webcam
  138. ####################################
  139. mplayer_SET+=V4L
  140. mplayer_UNSET+=OTCHAIN

  141. #####################
  142. ## 區域 sbcl 選項
  143. #####################
  144. sbcl_UNSET+=SBCL THREADS

  145. ############################################################
  146. ## 區域 subversion 選項
  147. ############################################################
  148. subversion_SET+=P4_STYLE_MARKERS ENHANCED_KEYWORD FREEBSD_TEMPLATE NEON BDB
  149. subversion_SET+=GNOME_KEYRING
  150. subversion_UNSET+=MOD_DAV_SVN MOD_DONTDOTHAT SERF SASL MAINTAINER_DEBUG
  151. subversion_UNSET+=SVNSERVE_WRAPPER SVNAUTHZ_VALIDATE STATIC KDE_KWALLET BOOK
  152. subversion_UNSET+=TEST

  153. ############################################################
  154. ## 區域 Thunderbird 選項
  155. ############################################################
  156. thunderbird_SET+=ALSA DBUS GCONF GIO GNOME GNOMEUI GSTREAMER GTK2 LOGGING
  157. thunderbird_UNSET+=DEBUG GNOMEVFS2 LIGHTNING LIBPROXY OPTIMIZED_CFLAGS OSS
  158. thunderbird_UNSET+=PULSEAUDIO QT4

  159. #################################
  160. ## 區域 xchat 選項
  161. #################################
  162. xchat_SET+=DBUS NOTIFY PERL PYTHON SOCKS
  163. xchat_UNSET+=GTKSPELL LIBSEXY TCL

  164. ##########################
  165. ## 區域 xfce4-print 選項
  166. ##########################
  167. xfce4-print_UNSET+=LPR

  168. ############################
  169. ## 區域 xterm 選項
  170. ############################
  171. xterm_SET+=WCHAR LUIT PCRE GNOME

复制代码
啟導文章,請看http://blog.etoilebsd.net/post/New_options_framework_in_what_next

评分

参与人数 2可用积分 +15 信誉积分 +2 收起 理由
ulovko + 5 很给力!
fender0107401 + 10 + 2 这个消息很重要!

查看全部评分

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
2 [报告]
发表于 2012-08-17 08:16 |只看该作者
ports系统的确是需要这个改进,如果能成功的引入这个特性,那么FreeBSD几乎就是一个完美的操作系统了。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
3 [报告]
发表于 2012-08-17 08:18 |只看该作者
希望在未来,所有的ports tree的维护者都把自己维护的那个部分添加对这个东西的支持。

我猜这个东西是需要相关维护者的支持的,可能需要改写某些Makefile。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
4 [报告]
发表于 2012-08-17 08:19 |只看该作者
而且我们需要每个option的文字解释,最好详细一点。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
5 [报告]
发表于 2012-08-17 08:31 |只看该作者

论坛徽章:
0
6 [报告]
发表于 2012-08-17 08:38 |只看该作者
fender0107401 发表于 2012-08-17 08:18
希望在未来,所有的ports tree的维护者都把自己维护的那个部分添加对这个东西的支持。

我猜这个东西是需 ...


版主說得對,這需要所有 Ports 維護者各自重新學習,因此轉變還在進行中。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
7 [报告]
发表于 2012-08-17 08:43 |只看该作者
回复 6# zeissoctopus

我看了一下,貌似不需要改的太多,应该可以很快实现的。

论坛徽章:
0
8 [报告]
发表于 2012-08-17 08:59 |只看该作者
對,另外  /etc/make.conf 是可以寫成

  1. OPTIONS_SET=X11 GNOME GTK2 PNG
  2. OPTIONS_UNSET=QT QT4 KDE KDE4
复制代码


我也未完成掌握它,要再學習和測試多幾天

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
9 [报告]
发表于 2012-08-17 09:03 |只看该作者
给力! 很方便 ^_^

论坛徽章:
0
10 [报告]
发表于 2012-08-17 11:00 |只看该作者
的确是个好消息
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP