在Ubuntu 9.10中DIYGoogleChrome OS (附下載

來源:互聯網
上載者:User
文章目錄
  • 1.1 硬體環境
  • 1.2 作業系統
  • 1.3 編譯環境
  • 1.4 安裝Googledepot tools
  • 2.1 下載瀏覽器的源碼
  • 2.2 下載作業系統的源碼
  • 3.1 編譯瀏覽器
  • 3.2 配置環境
  • 3.3 編譯作業系統
  • 3.4 編譯VMWare鏡像
Google的天才們在上周發布了Google Chrome OS的開源項目Chromium OS,因為從個人角度來講,我一直支援雲技術(Cloud Computing)和網路應用(Web Application),並儘力為其推進做些貢獻,那麼,Google發布雲端式計算的作業系統,當然要來嘗嘗鮮。當然,如果你對技術不感興趣,而只想嘗試10年後,下一代作業系統是什麼樣子的,那麼,你可以直接跳到本文末尾,閱讀運行相關的內容。

1. 準備工作1.1 硬體環境

個人覺得這個無所謂,32位和64位都可以,PC和Mac也都可以。我用的是今年六月份款的64位Macbook pro,可以成功編譯。
1.2 作業系統

理論上非Ubuntu的Linux系統也是可以成功編譯的,但是,我們都知道Google內部使用的Linux是Ubuntu,所以,我選擇最新的Ubuntu 9.10作為編譯環境。(因為以前一直用Fedora,這次裝Ubuntu發現Ubuntu太“傻瓜”了,看來Linux的案頭應用真的是越來越平民化 了。)Google官方聲稱Ubuntu 8.04+的版本都可以成功編譯,但是我在cros-dev的mailing list上面看到很多人抱怨低版本會出現一些問題。而有一個新加坡的牛人用Fedora 11也編譯成功了。
另外,因為Ubuntu不同於Fedora,在安裝的時候不會設定root密碼,而使用sudo。所以,用下面的命令設定root密碼,後面會用到。
$ sudo -i
系統會要求你輸入目前使用者的密碼
$ sudo passwd root
這裡輸入新的root密碼
1.3 編譯環境

下面這些是我直接從Google官方頁面拷貝過來的,裡麵包含了必須的庫,也包含一些選擇性(Optional)的,我一口氣都裝了,免得後面麻煩。
* Subversion
* git-core
* Python >= 2.4
* Perl >= 5.x
* gcc/g++ >= 4.2
* g++-multilib >=4.2
* bison >= 2.3
* flex >= 2.5.34
* gperf >= 3.0.4
* pkg-config >= 0.20
* libnss3-dev >= 3.12
* libasound2-dev
* libgconf2-dev
* libglib2.0-dev
* libgtk2.0-dev
* libnspr4-0d >= 4.7.1+1.9-0ubuntu0.8.04.5
* libnspr4-dev >= 4.7.1+1.9-0ubuntu0.8.04.5
* msttcorefonts (Microsoft fonts)
* freetype-dev
* libcairo2-dev
* libdbus-1-dev
* wdiff
* lighttpd
* php5-cgi
* sun-java6-fonts
Google為Ubuntu使用者提供了一個指令碼,http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh,我沒用到,我自己手動用apt-get裝的這些庫。
1.4 安裝Googledepot tools

在你喜歡的檔案夾checkout一份google depot tools的repository。
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
之後把這個檔案夾設定在PATH裡面
PATH="/path/to/depot_tools:$PATH"

2. 下載源碼2.1 下載瀏覽器的源碼

這一步是選擇性的,因為Google已經提供了編譯好的Linux版的Chrome瀏覽器二進位檔案。去這個地址把最新的 http://build.chromium.org/buildbot/archives/chromium-chromiumos- r*****.zip載下來備用。
如果你和我一樣喜歡自己嘗試,那就採用下面的方法。建立一個檔案夾,cd到該檔案夾,
$ gclient config http://src.chromium.org/svn/trunk/src
因為我們要做的是編譯一個Chrome流覽器給Chrome OS用,所以我們不用把Windows和Mac相關的源碼都載下來,我們只載Linux的, 所以,這裡我們用,
$ gclient sync --deps="unix,chromeos" --force 
而不用gclient sync.
2.2 下載作業系統的源碼

獨立於流覽器的源碼檔案夾,再建立一個新的檔案夾,cd到這個檔案夾
$ gclient config http://src.chromium.org/git/chromiumos.git
$ gclient sync

3. 編譯3.1 編譯瀏覽器

如果你2.1跳過了,這一步就不用做了。哦,對了,官方提供了一種方法可以直接在作業系統的編譯過程中直接到這裡來編譯瀏覽器的指令碼,我選擇先單獨編譯瀏覽器,確保其是工作正常的。
我們只是得到瀏覽器,為了編譯作業系統,所以,很多的測試案例(test case)和第三方(third party)的很多東西我們就不必要產生了,直接進入瀏覽器源碼的src目錄下,直接
$ make chrome
就等好了。
3.2 配置環境

首先要建立本地repository
$ cd /path/to/chromiumos/src/scripts
$ ./make_local_repo.sh

因為Chrome OS的編譯過程需要chroot環境,所以在正式編譯之前,我們要建立chroot環境,以備後面進入這個環境
make_chroot.sh
3.3 編譯作業系統

首先把剛剛出爐的瀏覽器打個zip包,或是下載好的zip包,命名為chrome-chromeos.zip,並複製到/path/to/chromiumos/src/build/x86/local_assets目錄下面。
之後回到/path/to/chromiumos/src/scripts目錄下,輸入
$ ./enter_chroot.sh
進入chroot環境。
正式開始編譯,輸入
$ ./build_all.sh
編譯platform package和kernel,之後輸入
$ ./build_image.sh
編譯Chrome OS的鏡像檔案(image)。

Figure 1. Ubuntu下編譯瀏覽器的3.4 編譯VMWare鏡像

編 譯好的GoogleChrome OS現在可以有三種方式使用,第一種是在少些到暫時支援的少許硬體上(聽說後天的黑色星期五這些notepad能賣到很便宜);第二種是燒到隨身碟上,這種 比較方便,可以現在絕大部分的機器都支援usb引導,唯一的限制就是你需要一個4Gb的硬碟,考慮到我現在手頭沒有4Gb的隨身碟,也沒有dollar買一 個4Gb的隨身碟,所以,準備感恩節過了找哥們借個燒一下看看;第三種就是編譯VMWare鏡像。cd到作業系統源碼的src/scripts目錄下,輸入
$ ./image_to_vmware.sh
產生的VMWare硬碟鏡像檔案即可可以使用了,當然後面的內容就不屬於這篇文章的範疇了。下面是一些我在VMWare Fusion裡面跑的。

4. 運行Figure 2. 歡迎介面

Figure 3. Google首頁

Figure 4. 應用程式列表

Figure 5. 測試對HTML 5的支援,圖片的陰影製作效果和圓角邊都渲染的不錯

Figure 6. 在國記憶體在爭議的Google Books

Figure 7. 哈哈,Crash啦!Googler還有很多功課要做呀!

Figure 8. 配置介面

Figure 9. 命令列介面(Terminal)

Figure 10. 關於本文作者

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.