Moya's Blog

About

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

主題分類

7
12
78
14
3
2
33
9
2
195
212
7
11
26
78

FreeBSD

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

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

由 FreeBSD 6.4 升級到 FreeBSD 7.1

1 week, 17 hours 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 修正

7 months, 2 weeks 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

裝機必備套件

11 months, 3 weeks 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

訪客統計: 149171 人次



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


我為你祝福
我也要許願

r1 - 23 Nov 2007 - 17:14:36 - MoyaTseng
Copyright © 1999-2008 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.