Moya's Blog

About

You are visiting this blog by category, that is all postings here are filed into the FreeBSD category.

FreeBSD

關於 FreeBSD 的一些經驗或是新聞

對於 FreeBSD 沒有特殊的喜好,除了 Ports 還算適合我用以外,其他的部份其實我是不怎麼滿意的,總覺得 FreeBSD 的發展太慢,好多東西都還沒有支援,遠遠落後 Linux 一大截。只不過因為長期都在 FreeBSD 上面作一些開發或雜七雜八的事情,所以也就習慣以這個平台為主力了。如果可以順利的把 Ports 轉移到 Debian 或 Ubunta 上去的話,說不定我也有可能就此改用 Debian 或 Ubunta Linux 吧!

由 FreeBSD 6.4 升級到 FreeBSD 7.1

1 month, 3 weeks ago in by MoyaTseng
其實 FreeBSD 7 出來很久了,只不過有鑑於之前的升級都不怎麼成功,弄到最後都要重灌,所以不是很喜歡作這種跨大版本的升級。

不過,這次找到一份文件,相當的完整,實際上測試也是成功了,所以把他精簡出來。他的文件寫得很好,滿詳細的,沒有會讓人失誤的地方。其實也可以直接參考那一份文件。

參考文件

  1. http://people.freebsd.org/~rse/upgrade/freebsd-upgrade-6x-7x.txt

install compat libraries

  1. fetch -p ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.1-release/All/localedata-5.4.tbz
  2. pkg_add localedata-5.4.tbz
  3. fetch -p ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.1-release/All/compat6x-i386-6.3.603000.200801.tbz
  4. pkg_add compat6x-i386-6.3.603000.200801.tbz

install upgrade toolkit

  1. cd /usr
  2. fetch http://people.freebsd.org/~rse/dist/freebsd-adm-1.2.2.tar.gz
  3. rm -rf adm
  4. tar xvfz freebsd-adm-1.2.2.tar.gz
  5. rm -f freebsd-adm-1.2.2.tar.gz
  6. vi /usr/adm/cfg/csup.src
    • replace RELENG_6 to RELENG_7

Upgrade

Download new source tree

  1. vi /etc/cvsupfile
    • add src-cddl
  2. cd /usr/src && make cleandir
  3. cd /usr/adm && make update

Merge master files

  1. mergemaster -p

build new system

  1. cd /usr/adm && make world-build kernel-build

install new system

  1. make world-install kernel-install
  2. rm -f /etc/rc.d/ike /etc/rc.d/pccard /etc/rc.d/pcvt /etc/rc.d/ramdisk
  3. rm -f /etc/rc.d/ramdisk-own /etc/rc.d/usbd
  4. make etc
  5. make clean
  6. reboot

Cleanup

  1. ( for dir in /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/libdata; do find $dir -mtime +2 -type f -xdev -print; find $dir -mtime +2 -type l -xdev -print; done ) >/tmp/remove
  2. vi /tmp/remove
    • REVIEW FILES TO REMOVE MANUALLY
  3. cat /tmp/remove | xargs rm -f
  4. ( for dir in /lib /usr/lib; do find $dir -mtime +2 -type f -xdev -print; find $dir -mtime +2 -type l -xdev -print; done ) | grep -v /usr/lib/compat >/tmp/move
  5. vi /tmp/move
    • REVIEW FILES TO MOVE MANUALLY
  6. for x in `cat /tmp/move`; do chflags noschg $x; mv $x /usr/lib/compat/; done
  7. cd /usr/src; make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libs
  8. shutdown -r now
    • After reboot, System is clean.
      … reply

FreeBSD ports mod_security2 修正

9 months, 2 days ago in by MoyaTseng
在最目前所釋出的 FreeBSD Ports 當中的 mod_security2 2.1.7 強制使用 libxml2,這本來是一件好事情,不過,真的裝下去後會發現根本不能動。原因是 ports 的 Makefile 又寫錯了,導致編譯出來的 apache module 根本不會動。

這是 mod_security2 不知道第幾次出錯了。上次是忽略了所安裝的 apache 版本,就算已經裝了 apache-2.2 他還是會強制裝 apache-2.0。害我手上一堆服務出錯,不會動。真不知道該怎麼說?雖然 FreeBSD 經常對外放話說他們品質管制最佳等等,遠遠超過 linux 各種 distribution,不過,我是感覺不出來。

除了這次以外,我之前也處理過好幾次 ports 亂搞的問題,我現在手上已經一堆 local ports 了。 @.@、、

之前有人號召我加入,不過,很抱歉,我對加入具有封閉式的意識型態的團體不太有興趣。當然這是指三不五時就有些基本教義派跳出來攻擊 Linux 陣營的這件事情,我是覺得完全沒必要。那種狗咬狗的言論,看多了以後會覺得很煩。自己的事情作好就好,何必攻擊別人?

這次的問題,修正的方法不太難。只要在 /usr/ports/www/mod_security2/Makefile 當中加上以下幾行就可以搞定了。簡單的解決方法。

AP_EXTRAS+= -DWITH_LIBXML2
AP_INC= ${LOCALBASE}/include/libxml2
AP_LIB= ${LOCALBASE}/lib

重新安裝之後就可以用了。不然會跳出一堆類似下面的訊息,看了會瘋掉:

Syntax error on line 64 of /usr/local/apache/conf/modsecurity/modsecurity_crs_20_protocol_violations.conf: Error creating rule: Unknown variable: XML

在 Google 上查了一下,竟然還有人說那就把 XML 的檢查拿掉就好了,這個答案真的是給他「三條槓」。遇到問題要稍微找一下問題在哪裡,不要太隨意的就把問題迴避掉,這個問題是有解的,迴避掉真的不是很好的方法。

不過,還真的滿期望 FreeBSD 的某些 Ports comitter(不只是 mod_security2 的這位,還有好幾位也常出包)作事情,稍微用心一點。每次要用的東西都要收拾善後才能用,給人的觀感,真的不是很好。

… reply

裝機必備套件

1 year, 1 month ago in by MoyaTseng
記錄一下每次新裝機必備的套件,如果哪天有空的話,或許會考慮把這些東西包成一個 Ports 一次搞定,免得每次都要搞半天。
第一個要裝的一定是這個: ports-mgmt/portconf

然後把常用的 ports.conf 複製到 /usr/local/etc 目錄下去,這樣後面開始安裝的東西才會符合我的標準。

接著裝 ports-mgmt/portupgrade 和 net/cvsup 這兩個,接著把 /etc/daily.local 以及 /etc/cvsupfile 從別台給複製過來,然後先整個系統更新過一次,才作之後的事情。這樣可以讓系統在安裝初期就保持在最新的狀況,不需要才剛裝好就要整個重來一次。

vim 這個東西有點龐大,而且通常都用不到那些功能,改邪歸正,改用 vim-lite。完全不需要用到任何 X 的 library,簡潔又省事。大部分的 Server 是完全不需要用到 X 的相關的 library 的,就算預設需要用到的也會在 ports.conf 當中就先把他關掉。

apache22 不用 OpenSSL,改用 GNUTLS,當然因為我有自己的 mod_gnutls 的 local package 所以才會這樣搞,如果沒有的話,就要多少考慮一下了。當然手動安裝 mod_gnutls 也不是很難的事情就是了。另外就是 apache22 預設會安裝的那些 modules,絕大部分其實用不到,或是不會想要用。為了系統資源有效利用考量,只有最基本的一定要用到的部分才會考慮進去。所以在 make config 階段,我只開了這些,其他全部拿掉:

  1. WITH_APR_FROM_PORTS
  2. WITH_THREADS
  3. WITH_PCRE_FROM_PORTS
  4. WITH_AUTH_BASIC
  5. WITH_AUTHN_FILE
  6. WITH_AUTHZ_HOST
  7. WITH_AUTHZ_GROUPFILE
  8. WITH_ACTIONS
  9. WITH_ALIAS
  10. WITH_CGI
  11. WITH_DIR
  12. WITH_ENV
  13. WITH_INCLUDE
  14. WITH_LOG_CONFIG
  15. WITH_LOGIO
  16. WITH_MIME
  17. WITH_UNIQUE_ID
  18. WITH_USERDIR
    … reply

訪客統計: 3582 人次



請按此訂閱每日人間菩提。靜思晨語 External link mark
本站所有言論均不代表慈濟基金會 External link mark


我為你祝福
我也要許願

r1 - 23 Nov 2007 - 17:14:36 - MoyaTseng
Copyright © 1999-2009 by the contributing authors. All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems regarding Moya's Blog? Send feedback.