- 论坛徽章:
- 0
|
本帖最后由 zeissoctopus 于 2013-02-13 07:48 编辑
介紹
redports.org(美國) 提供多種 FreeBSD 沙盒環環,給予註冊使用者作測試他們的 ports 用途。費用全免。
好處
- Ports 維護者,完全使用 redports.org 沙盒環境編譯他們的 Ports,免郤用自己的機器測試
- 非 Ports 維護者可以把自己的補丁放在 redports.org 沙盒環境裡編譯,查看結果。
- redports.org 提供:FreeBSD 9.1-RELEASE/amd6, FreeBSD 9.1-RELEASE/i386, FreeBSD 8.3 RELEASE/amd64, FreeBSD 8.3-RELEASE/i386 多種 FreeBSD 沙盒環境
使用 redports.org 的條件
- 到 redports.org 註冊成為 redports.org 用戶 (2013 年 3 月才重新接受新用戶申請)
- 安裝 devel/subvision
簡單介紹使用步驟
小弟是 deskutils/rednotebook 的維護者,當 rednotebook 有新版本推出後,小弟在空間時又需要把 ports 升級了。以下是使用 redports 步驟:
1. 到 redports.org 註冊
這步驟不用我解釋吧!但 redports.org 是有人審核你的申請,可能是等數天後才接納的你的申請。而新用戶要等到 2013 年 3 月內才可以申請。
2. 登入 redports.org
你成為合法用戶後,登入系統後便可以使用了。
3. 加入至少一個沙盒環境
登入後,在接近右上角選 [Builds] --> [ Environments]後,你便可以書右方選單中加入使用那個沙盒。
完成了這步驟後,你可以離開網站。回到你的 console 或 xterm 工作了。
4. 使用 subvision 建立你將要與 reports.org 同步的 ports repository
4.1 在 $HOME 建立在一個 ~/RedPorts 目錄
- ~% cd
- ~% mkdir RedPorts
- ~% cd RedPorts
- ~/RedPorts%
复制代码 4.2 先用 subversion checkout 功能,把你的 redports.org 私人 repository 同步於 ~/RedPorts 目錄
- ~/RedPorts% svn co https://svn.redports.org/你的用戶ID(英文)
复制代码 必需先完成以上步驟才繼續下一步。
4.3 把我所主理的 rednotebook ports 複制進去這目錄。目錄結構必需與 /usr/ports 之下一模一樣!
- ~/RedPorts% cd ~/RedPorts/你的用戶ID(英文)
- ~/RedPorts/你的用戶ID(英文)% mkdir deskutils
- cp -pr /usr/ports/deskutils/rednotebook deskutils/
复制代码 4.4 把 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotebook 登記入你的 reports.org 私人 repository,這一步必需在 ~/RedPorts/你的用戶ID(英文) 目錄之下完成
- ~/RedPorts/你的用戶ID(英文)% svn add deskutils
复制代码 5. 現在我可以在 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotbook 進行修改 Makefile, distinfo 和 pkg-plist,把 rednotebook 由 1.6.5 升級至 1.6.6
一如以往修改
6. 把 rednotebook 1.6.6 測試的 ports 放進 redports.org 私人 repository
- cd ~/RedPorts/你的用戶ID(英文)
- ~/RedPorts/你的用戶ID(英文)% svn commit -m "First trial for updating rednotebook to 1.6.6"
复制代码 當你把新版的 ports 遞交上 redports.org 後,他便會自動排隊進行編譯。
7. 過一段時間後,再次登入 redports.org查看你的新版編譯結果
登入後,到 https://redports.org/buildqueue 查看。你會見到結果和詳細的編譯記錄。
上圖表示新版本的 rednotebook 在沙盒中成功編譯好了。如果編譯失敗,也會告訴你究竟在那一個階段出錯。然後你可以再修正錯誤,再 commit 補丁再編譯過。
8. 如果你新版本成功通過 redports 沙盒測試,那麼你可以制作正式補丁遞交上官方。
例如我今次升級曾改動過 Makefile, distinfo 和 pkg-plist 三個檔案內容。
8.1 先把 /usr/ports/deskutils/rednotebook 中舊版本複制至 /tmp 每個舊版本加上 .orig 尾綴
- ~% cd /tmp
- ~/tmp%cp /usr/ports/deskutils/rednotebook/Makefile ./Makefile.orig
- ~/tmp%cp /usr/ports/deskutils/rednotebook/distinfo ./distinfo.orig
- ~/tmp%cp /usr/ports/deskutils/rednotebook/pkg-plist ./pkg-plist.orig
复制代码 8.2 然後把 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotbook 新版 Makefile, distinfo 和 pkg-plist 複制到 /tmp
- ~% cd /tmp
- /tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/Makefile .
- /tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/distinfo .
- /tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/pkg-plist .
复制代码 現在 /tmp 集齊新舊版 6 個檔案
- % ls /tmp
- Makefile.orig
- Makefile
- distinfo.orig
- distinfo
- pkg-plist.orig
- pkg-plist
复制代码 8.3 利用 diff 產生 補丁
- ~% cd /tmp
- /tmp% diff -u5 Makefile.orig Makefile > rednotebook.1.6.6.patch.txt
- /tmp% diff -u5 distinfo.orig distinfo >> rednotebook.1.6.6.patch.txt
- /tmp% diff -u5 pkg-plist.orig pkg-plist >> rednotebook.1.6.6.patch.txt
复制代码 完成後,得到一個完整的 rednotebook.1.6.6.patch.txt 補丁檔案
到 官方網頁出 PR 提交升級補丁
最後完成遞交補丁申請,並得到官方確認升級到 1.6.6
http://www.freebsd.org/cgi/query-pr.cgi?pr=176048
http://www.freshports.org/deskutils/rednotebook/
總結
redports.org 這個沙盒服務大大減省 ports 維護者配置測試環境的大量前期工作。十分值得推廣。 |
评分
-
查看全部评分
|