<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vincent.Chan‘s Blog

    常用鏈接

    統計

    積分與排名

    網站

    最新評論

    OpenBSD的定制安裝腳本

    作者:Wwashington AT smth bbs

    前言:歡迎轉載,但是您必須保留原文的所有信息,包括作者和時間。

    一、其實幾年前我就用過 OpenBSD 3.3了,當時覺得界面確實很粗糙。
    正因為花哨的東西少了,所以開發出來的系統缺陷相對少一些。所謂
    做多錯多,做少錯少,我覺得 OpenBSD 體現了簡約美,而 FreeBSD
    則比較適合那些喜歡裝好系統就用的人。當時考慮到 OpenBSD 上還要
    自己去編譯 KDE、Gnome 之類的窗口管理器太麻煩,所以用的不多。

    二、ChinaUnix 論壇上提供了 MichaelBibby 朋友所制作的 OpenBSD
    3.8 版 ISO 文件。我裝過后發現缺少 packages 的安裝說明,手工
    安裝比較辛苦,而且該版的 KDE 3.4.2 桌面三個圖標點擊后無法正確
    運行, 這三個默認的圖標分別鏈接到 trash:/ , system:/ , /root。

    此外該版對 xmms 的漢化支持不好,按照 FreeBSD 簡單漢化終結篇
    的方法可以完成 FreeBSD 系統以及 xmms 的漢化,但是 zh_Cn.eucCN
    語言和 -sony-...-gbk-0 字體對 OpenBSD 不起作用。除了各種小毛
    病外,總體來說這個 ISO 還是比較全的,包含很多編譯好的軟件包。
    如果大家想裝好就用,裝一下這個 ISO 并不斷完善是很好的辦法。

    http://bbs.chinaunix.net/viewthread.php?tid=691951&extra=&page=1
    [下載]MichaelBibby 朋友的 OpenBSD 3.8

    三、后來我自己寫了個安裝腳本,大大提高了安裝的便利性。不過我
    發現里面有兩個以 redhat 開頭的軟件包會干擾系統正常運行,它們
    是 Linux 仿真包,或許應該裝到別的目錄下,為了省事我的安裝腳本
    干脆就跳過它們了。下面簡單介紹一下安裝步驟以及基本原理,將來
    任何人自己定制了更好的 ISO 版后,都可以利用這個安裝腳本。

    四、安裝步驟:

    a) 首先,你要下載附件里的 init.tar.gz,最好是把本機的 C 盤做
    成 150M 左右的 FAT16 分區,Windows系統放 D 盤,那么 C 盤就單
    純做啟動盤并跟 Unix 交換數據了。如果不這樣,將來必須另找機器
    把 init.tar.gz 用 ftp 或 ssh 傳到你需要使用的 OpenBSD 機器上。

    多系統共存的文章請大家上網去搜索,我以前寫過 OS Loader 的用法。
    我把 init 壓縮包解壓后放到 C:\Boot\Unix\init 目錄里,所以后面

    b) 解壓后大家可以看到 init 目錄下有 csh 和 ksh 兩個目錄,其中
    ksh 是針對 OpenBSD 默認 Shell,csh 則針對 FreeBSD 默認 Shell。

    這里順帶說一下,FreeBSD 4.x 的 SSHD 不能設置禁止 DNS,所以一
    旦機器不能訪問外網的 DNS 服務器,那么任何機器都不能用 SSH 來
    登陸這臺機器,所以我在 csh 目錄下的 alias 里設置了 exit 為自
    動關閉 DNS,這樣默認就不使用 DNS 了,需要的時候再開。大家運行
    al 就可以看到所有的 alias 了。其中以 dn 開頭的那些是修改 dns
    開或關的,以 zh 開頭的那些是準備漢化時調整系統語言類型的。

    裝 csh 包需要把這個目錄下的文件都拷貝到 $HOME,然后再改名如下:
    cat login.csh > .login
    cat cshrc.csh >> .cshrc
    cp /usr/bin/make /usr/bin/bmake    {這是為了將來可以切換make}

    下面列出允許和關閉 DNS 的 alias 定義,貼出來與大家共同研究。

    alias exit 'dndis; logout'
    alias dncat 'cd /etc; cat resolv.conf'
    alias dndis 'cd /etc; mv resolv.conf resolv.temp; cat resolv.temp | sed
    "s/^nameserver/#nameserver/g" > resolv.conf; rm resolv.temp'
    alias dnena 'cd /etc; mv resolv.conf resolv.temp; cat resolv.temp | sed
    "s/^#nameserver/nameserver/g" > resolv.conf; rm resolv.temp'

    c) 現在回到正題,安裝 OpenBSD 的 ksh 包也是把文件拷貝到 $HOME。
    alias.ksh 是系統別名 alias 的集合,cat profile.ksh > .profile
    則可以讓你登陸系統后立刻加載 alias.ksh,sk-38.ini 是需要跳過的
    安裝名單。前面說了,如果不跳過這兩包,可能導致系統無法使用。

    當 OpenBSD 的 alias.ksh 加載后,你就可以使用它來安裝 ChinaUnix
    上的 ISO 所提供的那些 packages 了。安裝完畢后你可以設置 CU_CDR
    為 0,這樣系統用的 alias 就會大大減少。

    首先啟動 OpenBSD,插入安裝盤,輸入 mcd,它會 mount 你的安裝盤
    到 /mnt 目錄,然后輸入 culist 看有哪些包可以裝,它會顯示以下的
    選項:cupack, cukde3, cufc4, cuacr7, cuacf7, 你可以按需要安裝。
    裝完后輸入 ucd,它會 umount 光盤,然后把盤取出就算完成了。使用
    KDE 的時候編輯 ~/.xinitrc,內容寫 startkde 就可以了。

    五、基本原理:

    a) 大家用 al | grep cu 就可以看到所有跟安裝有關的 alias 用法。
    其中 cubase 是我最早使用的 cuinst,后來發現 3.8 ISO 里有兩個
    包影響系統使用,逐步擴充為以 cubase 為基礎,cushow 查看出錯的
    原因,cubash 研究 if 在 alias 里的用法,cutest 為測試安裝,而
    cuskip 則是正式安裝,使用 $HOME/sk-38.ini。如果用戶想自己動手
    查看以上腳本的結果,只要把 cuinst 改為對應的功能塊就可以了。

    b) 核心原理是通過定義系統變量 CUPACK,然后用腳本進行批量解壓。
    里面主要是用到了 for 的技巧,以及用 grep 查找忽略列表,用 if
    來判斷結果。需要注意的是它們在 ksh 下測試通過,如果你換到別的
    Shell 下用,必須根據具體語法特點進行修改。

     alias cubase='for i in /mnt/3.8/i386$CUPACK; do gzip -dc $i | tar -xvf -; done'
     alias cubash='for i in /mnt/3.8/i386$CUPACK; do echo $i; if [ "`gzip -dc $i |
    tar -tvf - | grep bash`" != "" ]; then echo *{_bash_}; sleep 5; fi; done'
     alias cushow='for i in /mnt/3.8/i386$CUPACK; do echo $i; gzip -dc $i | tar
    -tvf - | grep bash; done'

     alias cuskip='for i in /mnt/3.8/i386$CUPACK; do echo $i; if [ "`grep $i
    $HOME/sk-38.ini`" = "" ]; then gzip -dc $i | tar -xvf - > /dev/null; else echo
    *{_skip_}; sleep 5; fi; done'
     alias cutest='for i in /mnt/3.8/i386$CUPACK; do echo $i; if [ "`grep $i
    $HOME/sk-38.ini`" = "" ]; then gzip -dc $i | tar -tvf - > /dev/null; else echo
    *{_skip_}; sleep 5; fi; done'
     alias cuinst='cuskip'
     alias culist='alias | grep cuinst'

     alias cupack='export CUPACK=/packages/*gz; cd /usr/local; cuinst'
     alias cukde3='export CUPACK=/packages/kde-3.4.3/*gz; cd /usr/local; cuinst'

    c) 從上面的清單可以看出,cupack 和 cukde3 都是建立在 cuinst 的
    基礎上的,先定義好 CUPACK 的值再調用安裝腳本。cuinst 是指定使用
    哪一個腳本。culist 是顯示所有可用安裝包以及當前的 cuinst 類型。

    上面的腳本里,cubase 是單純的解壓,不考慮任何意外情況。cushow里
    顯示在什么地方裝了 bash,因為按照 cubase 的做法最后 bash 是不能
    用的。cubash 利用 if 精簡了顯示,讓我們找到有問題的軟件包,其實
    就是以 redhat 開頭的包。沒時間研究如何使用,直接忽略算了。

    我們把要忽略的包寫到 sk-38.ini,然后放到 $HOME 目錄下,這樣將來
    就可以隨時定制安裝哪些軟件包了。cuskip 和 cutest 本質上是一樣的,
    不同的是 cutest 用了 tar -tvf - 來顯示文件清單,而不是真正解壓。
    最后,希望大家如果做出了更好的 OpenBSD ISO,請使用這個安裝腳本,
    如果改進了上面的安裝腳本或者有更好的方案,請發一份給我,謝謝。

    附件:init.tar.gz.rar

    posted on 2006-02-23 00:39 Vincent.Chen 閱讀(426) 評論(0)  編輯  收藏 所屬分類: Linux

    主站蜘蛛池模板: 7777久久亚洲中文字幕| 国产一级一毛免费黄片| 亚洲av午夜电影在线观看| 国产亚洲精品91| 丰满妇女做a级毛片免费观看| 国产黄在线观看免费观看不卡 | 亚洲人成精品久久久久| 亚洲av永久无码精品表情包| 亚洲精品mv在线观看| 亚洲中文字幕无码av| 两个人日本免费完整版在线观看1| 久久久久久免费一区二区三区| 国产情侣激情在线视频免费看| 国产乱子伦精品免费无码专区| 亚洲精品无码av人在线观看 | 成人免费av一区二区三区| 无码国产精品一区二区免费式芒果| 在线观看免费视频资源| 成人黄动漫画免费网站视频 | 免费国产污网站在线观看15| 欧美好看的免费电影在线观看| 四虎影库久免费视频| 亚洲精品乱码久久久久久下载 | 久久免费福利视频| 亚洲?V无码成人精品区日韩| 亚洲精品免费在线| 97在线视频免费| 亚洲国产精品无码av| 理论秋霞在线看免费| 永久免费无码网站在线观看 | 国产aⅴ无码专区亚洲av麻豆 | 国产亚洲欧美日韩亚洲中文色| 免费在线观看自拍性爱视频| 成人AV免费网址在线观看| 国产精品无码一区二区三区免费 | 国产成人aaa在线视频免费观看| 亚洲高清在线观看| 一级a性色生活片久久无少妇一级婬片免费放 | 全免费a级毛片免费看无码| 亚洲黄色中文字幕| 91视频免费观看|