最近想把10年前的機器利用起來(賽揚400,256M內存,內存是後來擴充的,SDRAM 100,夠老吧:)),這種配置跑標準linux發行版夠嗆,於是想到從頭構建一套linux系統。好在已有這樣一個項目,叫做linux from scratch(簡稱LFS), 提供了非常詳細的指導手冊。我是按照LFS v6.4的手冊進行了。當然構建系統是在我的筆記本上進行的,按照手冊的步驟一步步進行下來,還算比較順利。下面就寫一下構建過程中碰到的問題。
1) 構建的第一步是下載所需的源代碼包,網站上提供了一個LFS-BOOK-6.4-wget-list文件,可以使用wget進行批量下載,但是其中有一個包glibc-2.8-20080929.tar.bz2已經被新的包替代了,本想使用最新的glibc庫源碼,但又擔心和gcc版本配合有問題,所以google了一下,從如下地址下載到了這個版本:
http://ftp.cross-lfs.org/pub/lfs/lfs-packages/development/glibc-2.8-20080929.tar.bz2
2) 輸入重定向
在指南中,多處有這樣的類似腳本:
cat > $LFS/etc/group << "EOF"
root:x:0:
bin:x:1:
......
EOF
開始不明白<<符號的含義,查找了一下shell相關資料,才知道這是一種重定向符號。我們知道<是輸入重定向符,比如
command < inputfile
就是從inputfile文件讀入文件內容,重定向到command命令。而<<符號則稱作內聯輸入重定向(inline input redirection), 它從命令行而不是文件中讀入內容進行重定向。其語法爲:
command << marker
data
maker
其中maker爲文本標記,用於標識數據的開始和結束。文本標記可以使用任意字符串,但數據開始和結尾的必須相同,通常使用EOF作爲文本標記。
使用這種內聯輸入重定向,可以方便的使用腳本生成多行文本文件。