<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 創(chuàng)建屬于自己的GNU/Linux發(fā)行版系統(tǒng)

          創(chuàng)建屬于自己的GNU/Linux發(fā)行版系統(tǒng)

          作者: 時間:2017-06-06 來源:網(wǎng)絡(luò) 收藏
            作為創(chuàng)建gNewSense的一部分,我們導(dǎo)出了Builder工具,允許在Ubuntu Hardy的基礎(chǔ)上創(chuàng)建新的發(fā)行版。通過一個簡單的配置文件,你就能夠選擇發(fā)行版的名稱,版本號,標(biāo)語以及你想要安裝或者移除默認(rèn)的軟件包。圖像將會自動生成。雖然這些腳本主要的目的是為了創(chuàng)建gNewSense,但是它還是一個不錯值得利用的工具。需要注意的是你可以不遵循下面的步驟使用gNewSense,因為你可以從網(wǎng)站的鏡像下載到相關(guān)的鏡像文件。

            你需要至少60GB的硬盤空間,最好有一個非常快的網(wǎng)絡(luò)連接(因為你將要下載40GB的數(shù)據(jù))。同時你的鏡像點(也可以在同一個系統(tǒng)中)也需要40GB左右的空間。如果你會利用硬鏈接,就能夠避免一些重復(fù)的下載。這一些操作都將在Ubuntu Hardy(或者更高版本的)系統(tǒng)執(zhí)行。所有的命令都必須運行在Root權(quán)限下。

            如果你有什么問題,可以發(fā)到我們的IRC中。Builder這個工具還只是測試版軟件,我已經(jīng)很久沒有從源碼重新編譯過該工具,因為有些代碼已經(jīng)修改過了。

            第一步:GPG Key

            軟件庫中很多最近版本的apt,需要經(jīng)過GPG簽名的版本文件,這樣可以保證發(fā)行版的集成度,所以我們的第一步就是創(chuàng)建一個GPG Key。

            gpg --gen-key

            這個命令就可以讓你做到這些。確保Key只有一個空白的密碼。把這個Key的指紋信息記錄下來,因為之后你將在配置文件中用到它。

            第二步: Deb鏡像(可選的)

            為了避免重復(fù)下載文件,我建議創(chuàng)建一個Ubuntu main和universe軟件庫的鏡像點。這樣的話大概需要40GB的空間。

            debmirror --verbose --progress --method=http --host=ie.archive.ubuntu.com --arch=i386 --source

            --dist=hardy,hardy-security,hardy-updates,hardy-backports --section=main,main/debian-installer,universe

            --ignore-release-gpg --root=ubuntu /the/target/directory

            你也可以建一個Apache服務(wù)器,這樣你就能通過HTTP看到這個鏡像點。這個步驟是可選的,但是我強烈推薦大家制作一個本地的Ubuntu鏡像點。

            第三步: 軟件包

            你需要安裝一些軟件包,使得Builder運行順暢。

            apt-get install reprepro debmirror build-essential apache2 subversion cdebootstrap debootstrap imagemagick

            apt-get install squashfs-tools netpbm syslinux bittornado fakeroot devscripts equivs sharutils mkisofs

            svn co http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk builder

            cd builder

            如果這里面還缺少某些軟件包,請告知我。

            第四步: 配置

            用文本編輯器,打開配置文件。你主要關(guān)心的設(shè)置有MIRROR,RELEASE,DISTRONAME,DOMAIN,BASEDIR,和REPOAPT。 如果還有其它的定制要求可以修改配置文件的其它設(shè)置部分。

            MIRROR 指的是你在第二步中創(chuàng)建的鏡像點,或者Ubuntu鏡像點,它應(yīng)該包含安全的軟件包。

            MIRRORDIST 指的是鏡像點的發(fā)行版本,通常是“Ubuntu“

            DISTRONAME 指的是你的發(fā)行版名稱,只能包含字母和數(shù)字。

            BASE_RELEASE 指的是你的版本號。版本號應(yīng)該是小寫的,因為它將在路徑出現(xiàn)。

            TAGLINE 出現(xiàn)在開機(jī)啟動和登錄的屏幕中。

            SIGNINGKEY 指的是第一步中你設(shè)置的GPG Key,不能包含任何空格。

            BASEDIR 指的是放置軟件庫、livecd、臨時文件的目錄名稱,REPODST 指的是當(dāng)前文件系統(tǒng)下建立的鏡像點位置($BASEDIR/發(fā)行版名稱的小寫形式)。

            REPOAPT 指的是編譯腳本放置的路徑,用來下載軟件包。我們假定在archive.DOMAIN和security.DOMAIN以及subdomains處都是類Ubuntu的安裝方式。

          本文引用地址:http://www.ex-cimer.com/article/201706/349433.htm
            RSYNC_DEST 指的是可以通過push-repo 或者push-cd來同步的軟件庫和livecd的位置。

            LOGO_LETTER 指的是標(biāo)志中的字母。

            META_*_{ADD,REMOVE} 在你的默認(rèn)的軟件包建立之后,用來管理哪些軟件包你想增加或者想把它從Ubuntu默認(rèn)的軟件包移除。

            *_VERSION 指的是給軟件包版本添加的號碼。每次你要重編譯一個軟件包的時候,你需要增加這些。多半都是從1開始計。

            第五步: 構(gòu)造軟件庫

            ./gen-repo ./do-update

            這一步需要一些時間。當(dāng)這個命令運行的時候,軟件庫有可能會不一致。這就是為何在第七步中你只需要將改動放到鏡像點中。每次有新的版本(例如安全庫更新了)重新執(zhí)行 do-update命令就可以了(如果需要的話,也只可以執(zhí)行debmirror)。

            如果你在64位的內(nèi)核上運行32位的用戶程序,安裝linux32軟件包,然后執(zhí)行命令

            ./gen-repo linux32 ./do-update

            第六步: 創(chuàng)建LiveCD

            ./gen-livecd

            創(chuàng)建好的鏡像文件將放在 $LIVECDDIR/$DISTRONAME_L-livecd-$LIVECD_VERSION.iso

            ./gen-cdsource

            ./stage-cd

            這兩個命令將創(chuàng)建一個源碼包,并把這個ISO放置在 $REPODST/cdimage

            第七步:把你的軟件庫放到鏡像點并公開

            現(xiàn)在可以在你的鏡像點公開你的軟件庫(dists和pool)地址和LiveCD,將你的新發(fā)行版向世界公開。

            ./push-repo

            ./push-cd

            ? Brian Brazil 2006

            Minor edits by Karl Goetz



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();