最近因工作需要研究 SCO Unixware 7.1.1 + Informix,略有心得,寫出來與大家分享。 在 SCO 網站上有 gnu 程序的下載,FTP://ftp2.sco.com/pub/skunkware/uw7/Packages至於最新的補丁,就是 ftp://ftp.sco.com/pub/unixware7/uw711pk/uw711mp5.cpio.Z 我把 Unixware 7.1.1 的 gnu 軟件和補丁程序分成了 6 個包,分別是 app、bas、dev、ssh、sys、upd.其中 bas 是要優先裝的程序,其他是應用,upd 是 Maintenance Pack. 1) 這是安裝 bas 目錄下內容的腳本。 # cat /ftpin/sco/bas/root.sh LBIN=/usr/local/bin BASE=/ftpin/sco/bas echo "" pkgadd -d `pwd`/bash-2.05a.pkg echo "" pkgadd -d `pwd`/gzip-1.2.4.pkg echo "" pkgadd -d `pwd`/ncftp-3.1.4.pkg echo "" pkgadd -d `pwd`/readline-4.2a.pkg echo "" pkgadd -d `pwd`/tcsh-6.08.00.pkg echo "" pkgadd -d `pwd`/zsh-3.1.5pws15.pkg echo "" cd / $LBIN/gzip -dc $BASE/uw71.tar.gz tar -xvf - echo "" 2) 用它創建批量裝 package 的腳本。 # cat /root/scosys/usr/bin/patch.sh cat /dev/null > install.sh for foo in *.pkg do PKG=$foo echo -n "echo \"\" " pkgadd -d $PWD/>>install.sh echo $PKGtr -d " ">>install.sh done chmod +x install.sh ls -la install.sh 3) 用 service 管理 Unixware 服務。 bash-2.05a$ ./service USAGE: service [ all ] [ service_name [ options ] ] # cat /root/scosys/usr/bin/service #!/sbin/sh # # -- Service Control scripts, Linux Style -- # -- Study Demo Redhat 7.3 /sbin/service -- # -- Written by Wwashington AT Smth BBS --- # -- Publish on 2005/01/20 ---------------- SERVICEDIR="/etc/init.d" case $1 in 'all') echo "{ ------------ service in ${SERVICEDIR} ------------- }" ls ${SERVICEDIR} exit 1 ;; '') echo "USAGE: service [ all ] [ service_name [ options ] ]" exit 1 ;; '*') ;; esac if [ -x "${SERVICEDIR}/$1" ]; then env -i LANG=$LANG "${SERVICEDIR}/$1" $2 fi 4) 此外,這裡還有修改 Unixware 內核參數以便安裝 Informix 的腳本。 idtune.sh 自動計算內存並且修改內核, imtune.sh 顯示某些要手工修改的文件, memory.sh 計算你的機器裡的可用內存, sco_cd.sh 顯示 SCO Unix 的光盤用法, sco_hd.sh 顯示 SCO Unix 的磁盤用法, serv.sh 最精簡的 service,功能弱。 5) 在 SCO 用 $1 發生一個問題,就是以空格帶頭,導致 /etc/init.d/$1不是指向真正的 Unix Service 所在路徑,用 xargs -i 來進行處理後,就可以用了。之前考慮過 awk、tr、sed 等,都不太理想。請大家賜教。 # cat /root/scosys/usr/bin/serv.sh echo $1 xargs -i sh /etc/init.d/{} $2 # --------------------- End of document ---------------------------