Chinaunix

标题: redports.org 免費服務簡單介紹 [打印本页]

作者: zeissoctopus    时间: 2013-02-12 19:25
标题: redports.org 免費服務簡單介紹
本帖最后由 zeissoctopus 于 2013-02-13 07:48 编辑

介紹
redports.org(美國) 提供多種 FreeBSD 沙盒環環,給予註冊使用者作測試他們的 ports 用途。費用全免。

好處


使用 redports.org 的條件


簡單介紹使用步驟
小弟是 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 目錄

  1. ~% cd
  2. ~% mkdir RedPorts
  3. ~% cd RedPorts
  4. ~/RedPorts%
复制代码
4.2 先用 subversion checkout 功能,把你的 redports.org 私人 repository 同步於 ~/RedPorts 目錄

  1. ~/RedPorts% svn co https://svn.redports.org/你的用戶ID(英文)
复制代码
必需先完成以上步驟才繼續下一步。

4.3 把我所主理的 rednotebook ports 複制進去這目錄。目錄結構必需與 /usr/ports 之下一模一樣!

  1. ~/RedPorts% cd ~/RedPorts/你的用戶ID(英文)
  2. ~/RedPorts/你的用戶ID(英文)% mkdir deskutils
  3. cp -pr /usr/ports/deskutils/rednotebook deskutils/
复制代码
4.4 把 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotebook 登記入你的 reports.org 私人 repository,這一步必需在 ~/RedPorts/你的用戶ID(英文)  目錄之下完成

  1. ~/RedPorts/你的用戶ID(英文)% svn add deskutils
复制代码
5. 現在我可以在 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotbook 進行修改 Makefile, distinfopkg-plist,把 rednotebook 由 1.6.5 升級至 1.6.6
一如以往修改

6. 把 rednotebook 1.6.6 測試的 ports 放進 redports.org 私人 repository

  1. cd ~/RedPorts/你的用戶ID(英文)
  2. ~/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, distinfopkg-plist 三個檔案內容。
8.1 先把 /usr/ports/deskutils/rednotebook 中舊版本複制至 /tmp 每個舊版本加上 .orig 尾綴

  1. ~% cd /tmp
  2. ~/tmp%cp /usr/ports/deskutils/rednotebook/Makefile ./Makefile.orig
  3. ~/tmp%cp /usr/ports/deskutils/rednotebook/distinfo ./distinfo.orig
  4. ~/tmp%cp /usr/ports/deskutils/rednotebook/pkg-plist ./pkg-plist.orig
复制代码
8.2 然後把 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotbook 新版 Makefile, distinfo 和 pkg-plist 複制到 /tmp

  1. ~% cd /tmp
  2. /tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/Makefile .
  3. /tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/distinfo .
  4. /tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/pkg-plist .
复制代码
現在 /tmp 集齊新舊版 6 個檔案

  1. % ls /tmp
  2. Makefile.orig
  3. Makefile
  4. distinfo.orig
  5. distinfo
  6. pkg-plist.orig
  7. pkg-plist
复制代码
8.3 利用 diff 產生 補丁

  1. ~% cd /tmp
  2. /tmp% diff -u5 Makefile.orig Makefile > rednotebook.1.6.6.patch.txt
  3. /tmp% diff -u5 distinfo.orig distinfo >> rednotebook.1.6.6.patch.txt
  4. /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 維護者配置測試環境的大量前期工作。十分值得推廣。
作者: ulovko    时间: 2013-02-12 21:59
赞一个!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2