您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“怎么為tinyco linux制作應(yīng)用包”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么為tinyco linux制作應(yīng)用包”吧!
首先在conf/colinux.conf中root=/dev/ram0,initrd=microcore.gz,cobd0=/imgs/tinycolinux1g,這樣啟動(dòng)起來(lái)的colinux其rootfs在/dev/ram0中,硬盤(pán)介質(zhì)中僅用于保存用戶數(shù)據(jù),即conf/colinux.conf中定義的四個(gè)掛載地址/opt=cobd0,/home=cobd0,local=cobd0,tce=cobd0,這四個(gè)可持化掛載點(diǎn)是colinux那些當(dāng)且僅當(dāng)需要修改的地方,所以需要被掛載持久,,我們還可以再定義幾個(gè)變量加強(qiáng)這個(gè)live rootfs的強(qiáng)度,如norestore,
啟動(dòng),運(yùn)行。成功進(jìn)入到tc用戶的cmdline.
當(dāng)然,雖然這個(gè)live rootfs系統(tǒng)啟動(dòng)起來(lái)了,這個(gè)rootfs還是有點(diǎn)raw form和不便的。比如:
通過(guò)df命令我們發(fā)現(xiàn)定義的四個(gè)掛載點(diǎn),僅掛載了三個(gè)到/缺了/tce,但是硬盤(pán)中依然生成了四個(gè)文件夾/opt,/home,/tclocal對(duì)應(yīng)/usr/local,和/tce,通過(guò)tce-load -w發(fā)現(xiàn)下載的包在/mnt/cobd0/tce中,這是正確的行為,能用但不好看,這四個(gè)掛載點(diǎn)的加載邏輯全在/etc/init.d/tc-config中,所以我們甚至可以重新打包microcore.gz修改tc-config加入缺失的/tce條目。
modprobe也會(huì)出錯(cuò),因?yàn)閞eadonly live rootfs是不能加載原initrd.gz注入的lib/modules的,不過(guò)同樣地,我們可以重新打包microcore.gz手動(dòng)加入這些文件。
還有一些必要的系統(tǒng)級(jí)持久無(wú)法完成,比如用戶密碼更改,它保存在readonly rootfs /etc/shadow中,我們必須這樣來(lái)完成:
sudo passwd root
輸入密碼二次
cp /etc/shadow /opt/shadow (做一次備份到硬盤(pán)中/opt)
然后修改下/opt/.bootsync.sh,加入以下:
cp /etc/shadow /etc/shadow_old cp /opt/shadow /etc/shadow
其實(shí)我們完全可以替換busybox中的passwd,改變/etc/shadow路徑到其它外部可持久位置,還比如,vm container子機(jī)環(huán)境不需要關(guān)機(jī),可以去掉busybox中的halt,還比如我們可以編譯加入dropbear支持,畢竟sshd是最基本的發(fā)行包支持了。
我們就不定制microcore.cpio包了。太累。
官方提供了很多鏡像,這些包都很正交。且還有構(gòu)建源碼,可往往我們還需要lnmp這樣的組合包,我們可以按《發(fā)布tinycolinux》part2中的硬盤(pán)安裝應(yīng)用方法來(lái)組合一次性安裝包(當(dāng)然,這樣它就不正交了但對(duì)一臺(tái)vm container通常情況下僅需承載安裝一次lnmp的情形下來(lái)說(shuō),非常合理和實(shí)用),以下是組合應(yīng)用邏輯,舉例我們用了lnmp,組合到一個(gè)lnmp.tar.gz中。
首先,tce-load -w nginx,php5,sqlite3,發(fā)現(xiàn)會(huì)下載大量tcz到/mnt/cobd0/tce/options中:bsddb.tcz,bzip2-lib.tcz,curl.tcz,gmp.tcz,libgdbm.tcz,libiconv.tcz,libltdl.tcz,libmcrypt.tcz,libpng.tcz,libxml2.tcz,libxslt.tcz,mysql.tcz,ncurses.tcz,ncurses-common.tcz,nginx.tcz,openssl-0.9.8.tcz,pcre.tcz,perl5.tcz,php5.tcz,readline.tcz,sqlite3.tcz,這些都是我們要組合進(jìn)一個(gè)大應(yīng)用包的基礎(chǔ)。一個(gè)一個(gè)解壓它到my文件夾,sudo unsquashfs -f -d /mnt/cobd0/my/ /mnt/cobd0/tce/optional/xxx.tcz
作一些更改(這是因?yàn)樵璽cz全是綠色dropin包):
nginx conf/nginx.conf,root index加個(gè)index.php,把關(guān)于php的三條注釋去除注釋化使其有效,其中SCRIPT_FILENAME改成 $document_root$fastcgi_script_name;且把最大腳本內(nèi)存由128m改為64mb
usr/local/etc加個(gè)my.cnf,內(nèi)容如下:
[mysqld] socket = /tmp/mysql.sock port = 3306 pid-file = /tmp/hostname.pid datadir = /usr/local/var/mysql language = /usr/local/share/mysql/english user = tc
好了,現(xiàn)在重建數(shù)據(jù)庫(kù),sudo /usr/local/bin/mysql_install_db,,嘗試啟動(dòng)mysql: sudo /usr/local/bin/mysqld_safe & ,成功
然后我們cd /mnt/cobd0/my,打包它們sudo tar zcf lnmp.tar.gz *,,,安裝這個(gè)大應(yīng)用測(cè)試下:cd到/,然后tar zxvf /mnt/cobd0/my/lnmp.tar.gz,然后在/opt/bootlocal.sh中啟動(dòng)它們:
sudo nginx;sudo php-cgi -b 127.0.0.1:9000;sudo mysql_safe
成功。
到此,相信大家對(duì)“怎么為tinyco linux制作應(yīng)用包”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。