潔白的露水凝結(jié)成了霜,這一節(jié)說tinycore的軟件包。它的后綴是.tcz,實(shí)質(zhì)是壓縮只讀文件系統(tǒng)。這樣說畢竟有點(diǎn)抽象,具體來說,它使用了SquashFS 。
SquashFS 是一個只讀的文件系統(tǒng),它可以將整個文件系統(tǒng)壓縮在一起,存放在某個設(shè)備,某個分區(qū)或者普通的文件中。如果您將其壓縮到一個設(shè)備中,那么您可以將其直接 mount 起來使用,而如果它僅僅是個文件的話,您可以將其當(dāng)為一個 loopback 設(shè)備使用。也是一個只讀的文件系統(tǒng),它可以將整個文件系統(tǒng)壓縮在一起,存放在某個設(shè)備,某個分區(qū)或者普通的文件中。如果您將其壓縮到一個設(shè)備中,那么您可以將其直接 mount 起來使用,而如果它僅僅是個文件的話,您可以將其當(dāng)為一個 loopback 設(shè)備使用。
我們來試試把相應(yīng)的.tcz包解壓開試試。解壓.tcz包可以使用squashfs-tools這個工具。我們先用最簡單的,即先直接用mount掛載。
還記得fireflysung這個包嗎?
當(dāng)時為了顯示中文,需要字體,所以我們在線安裝了這個包,它提供了一個支持中文顯示的字體,但我要還是想安裝自己喜歡的字體怎么辦?
用mount掛載fireflysung.tcz這個包
在線安裝的,包存儲在用于儲存的optional文件夾下。我們進(jìn)入到這個文件夾下。
ls fireflysung* -l
-rw-r--r-- 1 better better 8818688 12月 13 10:14 fireflysung.tcz
-rw-r--r-- 1 better better 16 12月 13 10:14 fireflysung.tcz.dep
-rw-r--r-- 1 better better 50 12月 13 10:14 fireflysung.tcz.md5.txt
我們把fireflysung.tcz復(fù)制到自己的目錄里,然后創(chuàng)建一個ext文件夾來用來掛載。
mkdir ext
然后使用mount 的 -t squashfs來掛載
sudo mount fireflysung.tcz ext -t squashfs -o loop,ro,bs=4096
掛載成功后進(jìn)入會發(fā)現(xiàn),他就是usr/share/fonts/文件夾的結(jié)構(gòu),然后在fonts下是兩個ttf的字體。
使用squashfs-tools解壓,壓縮tcz軟件包。
安裝 squashfs-tools
tce-load -iw squashfs-tools
squashfs-tools解壓tcz包。
squashfs-tools用unsquashfs 直接跟軟件包解壓:
unsquashfs fireflysung.tcz
Parallel unsquashfs: Using 2 processors
1 inodes (3771 blocks) to write
[=============================================================|] 3771/3771 100%
created 1 files
created 4 directories
created 0 symlinks
created 0 devices
created 0 fifos
生成了squashfs-root這個文件夾,它的子文件夾就是usr/share/fonts
tree squashfs-root
squashfs-root
└── usr
└── share
└── fonts
└── fireflysung.ttf
3 directories, 1 file
制作我們自己的字體包
這樣就好辦了,我么把自己想用的字體扔到squashfs-root/usr/share/fonts這個文件夾下,然后用squashfs-tool工具的mksquashfs命令生成自己的字體包。
mksquashfs squashfs-root myfonts.tcz
這樣我們就有了自己的字體軟件包,把它放到optional文件夾下,然后把它的名字添加到onboot.lst文件。
echo myfonts.tcz >> onboot.lst
重啟開機(jī)后,就會發(fā)現(xiàn)/usr/share/fonts下的字體就是我們軟件包中的字體,大功告成。
其它軟件包
其它軟件包也是這樣,把軟件編譯好,然后用squashfs-tool工具壓縮成.tcz的包就好。