溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么為tinyco linux制作應(yīng)用包

發(fā)布時(shí)間:2021-11-23 16:09:52 來(lái)源:億速云 閱讀:140 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“怎么為tinyco linux制作應(yīng)用包”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么為tinyco linux制作應(yīng)用包”吧!

ram中運(yùn)行rootfs

首先在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包了。太累。

組建復(fù)合應(yīng)用

官方提供了很多鏡像,這些包都很正交。且還有構(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í)!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI