這篇文章主要講解了“為tinyco linux創(chuàng)建應(yīng)用包的方法是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“為tinyco linux創(chuàng)建應(yīng)用包的方法是什么”吧!
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比南昌縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式南昌縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋南昌縣地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
關(guān)于編譯新gcc套件及處理glibc移殖的問題
編譯GCC可能面臨二種需求環(huán)境:1) 從本地產(chǎn)生,比如你需要一個bootstrap的gcc低版本來產(chǎn)生高版本,2) 從外部crosscompile而來。
默認(rèn)gcc第一遍只需要gmp,mpc,mpfr加gcc,這樣--enable-language=c,c++編譯出來的gcc支持stdlibc++-dev卻不帶libc-dev,甚至binutils都不需要,如果目標(biāo)環(huán)境中沒有支持是沒有實(shí)用的。
完整可用的gcc套件要經(jīng)過多遍,除了gcc,binutils,甚至還需要附加編譯flex,bison這些,
最重要的問題來了:
默認(rèn)gcc僅帶libstdc++,這個可以后期添加新版本替換/疊加系統(tǒng)原有版本因?yàn)樗莃uilt into toolchain的,而glibc的版本是一個linux發(fā)行版rootfs中集成的built into rootfs,是最為基礎(chǔ)的被引用部分,不可升級/替換,是一個不可移殖項(xiàng)。你需要另外準(zhǔn)備平臺依賴的libc-dev(glibc-dev),這可能需要在其它遍次pass,phase的gcc編譯中完成。
其實(shí)GCC也算是一個類kernel的復(fù)雜包了,ng-crosstools有用類kernel的menuconfig方式產(chǎn)生.config環(huán)境。
以下測試過程全在硬盤版的tinycolinux下測試,live版的不方便。請下載tinycolinux live hd一體包后繼續(xù):
以下tcz默認(rèn)全是4.x的,從4.x的compiletc.tcz的meta包的dep中提取而來,以下底部部分eglibc_base-dev就是glibc開發(fā)包,glibc runtime已經(jīng)在tinycolinux的/lib中了,底部其它的那些是可選開發(fā)包,因?yàn)楸容^基礎(chǔ)都保留了,gcc為461版本,請手動從某個鏡像的4.x/tcz目錄下載這些包到/mnt/cobd0/tce/optional,然后在console-nt中直接paste執(zhí)行以下腳本。
sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/gmp.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libmpc.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/mpfr.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/gcc.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/binutils.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/m4.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/make.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/pkg-config.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/bison.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/flex.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/gawk.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/grep.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/sed.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/patch.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/diffutils.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/findutils.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/file.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/eglibc_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/gcc_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/linux-3.0.1_api_headers.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/util-linux_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/imlib2_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/e2fsprogs_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/fltk_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/freetype_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/jpeg_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libpng_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libsysfs_base-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/zlib_base-dev.tcz
解壓完畢后測試 gcc -v,g++ -v,可能你需要sudo reboot重啟一次tinycolinux系統(tǒng)才能發(fā)現(xiàn)已安裝但缺失包。
遵從以上談到的編譯gcc的難點(diǎn),其實(shí)你完全可以用這套GCC461作bootstrap編譯出新的GCC如gcc483 gcc491 etc..。以下我們用它測試編譯新lnmp:
不可直接用lnmp.org的一鍵包,因?yàn)橄到y(tǒng)集成的工具擴(kuò)展不一樣,一般地,先編譯MySQL,再php,再nginx,這樣php的--with-mysq=就可以引用到mysql的開發(fā)包了。以下包都跟上面一樣下載來自4.x,整篇文章的tcz都來自4.x(注意cmake例外):
mysql5.5
sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/cmake sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libidn.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libiconv.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/ncurses-dev.tcz
5.5之后的mysql需要cmake。cmake.tcz是3.x的。4.x的cmake需要安裝4.x的額外libstdc++,因此我舍棄4.x cmake選擇了混合3.x的tcz。
ncurses nginx和mysql都需要(nginx需要運(yùn)行庫部分,mysql需要dev pkg部分)
mkdir b ; cd b ; cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_MYISAM_STORAGE_ENGINE=1 ..
php5.6
sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/curl.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/curl-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libxml2.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libxml2-bin.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libxml2-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/liblzma.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libssh3.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/openssl-1.0.0.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/libpng.tcz
./configure --prefix=/usr/local/php --enable-fpm --enable-zip --enable-mbstring --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --with-gd --with-curl
(我們選取了能安裝owncloud需要的那些包,mysql就不引用實(shí)際編譯的5.5的包了用了src自帶的mysqlnd)
nginx1.11
sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/pcre.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/pcre-dev.tcz sudo unsquashfs -f -d / /mnt/cobd0/tce/optional/ncurses.tcz ./configure --prefix=/usr/local/nginx
以上編譯過程中,如果解壓發(fā)現(xiàn)不了實(shí)際已解壓的引用包的,一般是一些含.so的包,需要sudo reboot重啟一次guest系統(tǒng)
上面php和mysql顯然沒指定my.cnf和php.ini的目錄,但它們默認(rèn)分別都在/usr/local/mysql/和/usr/local/php/lib/php.ini,自己建2個即可,需要配置php.ini這二個文件,tz.php中才能顯示smtp支持和控制php更多行為的那些選項(xiàng)如上傳max upload size。
有一些附加處理部分:
mysql中新建一個tmp用來放mysql.sock,其權(quán)限要和data一樣,都設(shè)為0755且歸staff下的tc用戶所有。這樣mysql_install_db才能正確產(chǎn)生初始數(shù)據(jù)庫+pid文件和mysqld_safe產(chǎn)生mysql.sock文件
啟動的方法都可以在/opt/bootlocal.sh下加二條:
/usr/local/nginx/sbin/nginx ; /usr/local/php/sbin/php-fpm ; /usr/local/mysql/bin/mysqld_safe &
當(dāng)然你還可能需要額外編譯mta和redis這些,我發(fā)現(xiàn)網(wǎng)上chenall(grub4dos作者)有一個類似的tinycolinux的發(fā)行包,使用的是473。 它能把/home,/tce都掛載到本地share文件夾中,雖然權(quán)限不能繼續(xù),但在一定意義上,這是“共盤windows,linux”,這應(yīng)該不是官方的支持的功能(vmlinux or initrd473),只是不知道怎么實(shí)現(xiàn)的。
感謝各位的閱讀,以上就是“為tinyco linux創(chuàng)建應(yīng)用包的方法是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對為tinyco linux創(chuàng)建應(yīng)用包的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)站標(biāo)題:為tinycolinux創(chuàng)建應(yīng)用包的方法是什么
文章鏈接:http://jinyejixie.com/article14/iisgde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、電子商務(wù)、網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)