91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

為tinyco linux創建應用包的方法是什么

發布時間:2021-11-23 16:09:10 來源:億速云 閱讀:134 作者:iii 欄目:大數據

這篇文章主要講解了“為tinyco linux創建應用包的方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“為tinyco linux創建應用包的方法是什么”吧!

關于編譯新gcc套件及處理glibc移殖的問題

編譯GCC可能面臨二種需求環境:1) 從本地產生,比如你需要一個bootstrap的gcc低版本來產生高版本,2) 從外部crosscompile而來。

默認gcc第一遍只需要gmp,mpc,mpfr加gcc,這樣--enable-language=c,c++編譯出來的gcc支持stdlibc++-dev卻不帶libc-dev,甚至binutils都不需要,如果目標環境中沒有支持是沒有實用的。

完整可用的gcc套件要經過多遍,除了gcc,binutils,甚至還需要附加編譯flex,bison這些,

最重要的問題來了:

默認gcc僅帶libstdc++,這個可以后期添加新版本替換/疊加系統原有版本因為它是built into toolchain的,而glibc的版本是一個linux發行版rootfs中集成的built into rootfs,是最為基礎的被引用部分,不可升級/替換,是一個不可移殖項。你需要另外準備平臺依賴的libc-dev(glibc-dev),這可能需要在其它遍次pass,phase的gcc編譯中完成。

其實GCC也算是一個類kernel的復雜包了,ng-crosstools有用類kernel的menuconfig方式產生.config環境。

以下測試過程全在硬盤版的tinycolinux下測試,live版的不方便。請下載tinycolinux live hd一體包后繼續:

組建bootstrap toolchain

以下tcz默認全是4.x的,從4.x的compiletc.tcz的meta包的dep中提取而來,以下底部部分eglibc_base-dev就是glibc開發包,glibc runtime已經在tinycolinux的/lib中了,底部其它的那些是可選開發包,因為比較基礎都保留了,gcc為461版本,請手動從某個鏡像的4.x/tcz目錄下載這些包到/mnt/cobd0/tce/optional,然后在console-nt中直接paste執行以下腳本。

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系統才能發現已安裝但缺失包。

遵從以上談到的編譯gcc的難點,其實你完全可以用這套GCC461作bootstrap編譯出新的GCC如gcc483 gcc491 etc..。以下我們用它測試編譯新lnmp:

編譯新lnmp

不可直接用lnmp.org的一鍵包,因為系統集成的工具擴展不一樣,一般地,先編譯mysql,再php,再nginx,這樣php的--with-mysq=就可以引用到mysql的開發包了。以下包都跟上面一樣下載來自4.x,整篇文章的tcz都來自4.x(注意cmake例外):

  1. 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需要運行庫部分,mysql需要dev pkg部分)

mkdir b ; cd b ; cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_MYISAM_STORAGE_ENGINE=1 ..

  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就不引用實際編譯的5.5的包了用了src自帶的mysqlnd)

  1. 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

以上編譯過程中,如果解壓發現不了實際已解壓的引用包的,一般是一些含.so的包,需要sudo reboot重啟一次guest系統

配置運行部分:

上面php和mysql顯然沒指定my.cnf和php.ini的目錄,但它們默認分別都在/usr/local/mysql/和/usr/local/php/lib/php.ini,自己建2個即可,需要配置php.ini這二個文件,tz.php中才能顯示smtp支持和控制php更多行為的那些選項如上傳max upload size。

有一些附加處理部分:

mysql中新建一個tmp用來放mysql.sock,其權限要和data一樣,都設為0755且歸staff下的tc用戶所有。這樣mysql_install_db才能正確產生初始數據庫+pid文件和mysqld_safe產生mysql.sock文件

啟動的方法都可以在/opt/bootlocal.sh下加二條:

/usr/local/nginx/sbin/nginx ; /usr/local/php/sbin/php-fpm ; /usr/local/mysql/bin/mysqld_safe &

當然你還可能需要額外編譯mta和redis這些,我發現網上chenall(grub4dos作者)有一個類似的tinycolinux的發行包,使用的是473。 它能把/home,/tce都掛載到本地share文件夾中,雖然權限不能繼續,但在一定意義上,這是“共盤windows,linux”,這應該不是官方的支持的功能(vmlinux or initrd473),只是不知道怎么實現的。

感謝各位的閱讀,以上就是“為tinyco linux創建應用包的方法是什么”的內容了,經過本文的學習后,相信大家對為tinyco linux創建應用包的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霞浦县| 南投县| 平舆县| 桃园市| 中山市| 樟树市| 阿合奇县| 黎城县| 布拖县| 绥化市| 通化市| 武胜县| 龙州县| 乐亭县| 茌平县| 沾益县| 五大连池市| 新平| 商都县| 清丰县| 广东省| 云浮市| 凤凰县| 永州市| 宁陵县| 无棣县| 许昌市| 新沂市| 高碑店市| 抚州市| 西乡县| 稻城县| 黄石市| 嘉祥县| 静乐县| 普洱| 桂阳县| 东辽县| 浦北县| 吴旗县| 安阳县|