gNewSense

gNewSense

gNewSense是自由軟體基金會(FSF)基於Ubuntu Linux建立的完全自由的作業系統發行版。

gNewSense是自由軟體基金會(FSF)基於Ubuntu Linux建立的完全自由的作業系統發行版。它是由Brian Brazi和PaulO’Malley在2006年建立的,雖然Ubuntu很流行,但它並非一個完全符合GNU精神的發行版,因為它包含了一些非自由的軟體。

gNewSensegNewSense

gNewSense目標是要提供一個100%自由的作業系統,用戶可以訪問到系統里全部軟體的原始碼,無論是核心還是用戶態程式。gNewSense基於Ubuntu,Ubuntu是從 Debian GNU / Linux上創建的發行版,並且於Debian合作緊密。需要說明的是Debian/GNU Linux雖然冠GNU之名,但是不完全符合GNU的自由精神,而是有所妥協,提供了非自由軟體選項。第一個得到GNU承認的完全自由的GNU / Linux發行版是基於GentooUtuto

gNewSense發布時包含了一些改進,但不包含任何私有或非自由的組件。特別地,所有的私有固件、受限制的模組、Ubuntu的徽標,都被移除了,而“Universe”軟體倉庫預設被選中,一些GNU套用軟體如 Emacs和開發庫,以及bsdgamesNetHack,都被包含在預設安裝中。該計畫的目標是創建一份完全自由的Linux發行。

為什麼要創建gNewSense發行版

最好從Ubuntu和Debian的源的格式來簡單理解一下自由軟體與非自由軟體的區別,以及為什麼要創建gNewSense發行版,對Ubuntu和 Debian很軟體包是否自由或者/etc/apt/souce.list文間中各個源的參數很熟的讀者可以直接跳過。

“源”指的就是/etc/apt/sources.lis檔案中包含的類如此類的信息:

一、對於Ubuntu系統

deb http://cn.archive.ubuntu.com/ubuntu/ gutsy main restricted
deb http://cn.archive.ubuntu.com/ubuntu/ gutsy universe
deb http://cn.archive.ubuntu.com/ubuntu/ gutsy multiverse

注意http連結地址後面的四個參數:main restricted universe multiverse

Ubuntu把所有軟體分為4類,稱為“組件(component)”,以反映不同的許可證和可用的支持級別。預設情況下,來自main的精選包會被安裝以滿足大多數計算機用戶的基本要求,同樣被安裝的還有來自restricted的對系統可用絕對需要的任何包。

main組件只包含符合Ubuntu許可證要求並可以從Ubuntu團隊中獲得支持的包。這個策略力圖使日常使用Linux系統時所需的任何東西包括在內。在這個組件內的包可以確保得到技術支持和及時的安全升級。

restricted 組件包含了由於其重要性而被Ubuntu開發者支持的軟體,但是它們並不具有合適的自由許可證,因此不能列入 main。其中包括僅能以二進制形式獲得的顯示卡驅動程式。因為Ubuntu開發者無法獲得原始碼,其支持的水平與main相比是有限的。

universe組件包含範圍廣泛的軟體,他們或許是受限許可證,或許不是,但是都不為Ubuntu團隊支持。這樣用戶可以使用Ubuntu的包管理系統安裝各種各樣的程式,同時又與main和restricted中被支持的包相隔離。

最後是multiverse組件,其中包括了不符合自由軟體要求而且不被支持的軟體包。

二、對於Debian系統

一個source.list中包含的源,大致如下形式:

deb http://http.us.debian.org/debian stable main contrib non-free
deb http://http.us.debian.org/debian stable non-us

四項的含義分別是:

main 主要的基本的且符合GPL的軟體
non-free 不符合GPL的軟體
contrib 可以運行但是依賴non-free的軟體
non-US 非美國地區的。

三、gNewSense的特性

由上可以看出Ubuntu和Debian並非完全自由,而是做了一定的妥協。該網頁是gNewSense的一些特性說明:http://www.gnewsense.org/Main/Features

翻譯如下:

1. main組件中(名詞“組件”借用Ubuntu的概念)Firmware從核心中去掉了。
2. 製作發行版的工具Builder。
3. Restricted組件去掉了。
4. Ubuntu的圖示被替換掉了。
5. 默認開啟Universe組件。
6. 安裝了emacs, bsdgames, nethack 和 build-essential 作為默認組件。

gNewSense系統安裝配置

目前最新版是2008年8月25日發布的gNewSense 2.1版。gNewSense 2.1 DeltaH基於Ubuntu 8.04 Hardy,移除了其中的非自由軟體和非自由驅動。加入Usplash,新主題和圖案,LiveCD sudo不再詢問密碼等等。

gNewSense的安裝配置跟Ubuntu一樣。用LiveCD引導進入系統,點擊install圖示,選擇安裝的語言(中文)只需要7步,就可以把gNewSense安裝到硬碟中。

gNewSensegNewSense

但即使你選擇了中文為默認語言,進入系統後,還有大量的程式如OpenOffice、Synaptic(新立得軟體包管理器)、控制終端等等都為英文界面,這就需要我們進行一些小小的安裝配置,以快速地建立一個舒適的中文使用環境。

設定連線到網際網路

1、請確保你的系統已聯入網際網路。假如你使用ADSL上網,請參考《ADSL使用PPPoEConf連線到網際網路》方法連線。如連線不到網路請到Linuxsir論壇中求助。

2、確認連線到網際網路後,我們需要更新軟體包列表。請在終端輸入:

$ sudo aptitude update

3、安裝更新整個系統。執行下面的命令:

$ sudo aptitude dist-upgrade

或者你打開“系統→系統管理→新立得軟體包管理器”,安裝更新。

設定中文環境

如果你安裝的時候語言選擇了中國,那么你已經有一個zh_CN.UTF-8的中文環境了。

* 如果你安裝的是英文界面,在進入桌面後:單擊主選單中的“系統(System) –> 系統管理(Administration) –> 打開 語言支持(language support)”。
* 在“支持的語言”列表中找到“漢語(Chinese)”,在右端打上勾。同時將默認語言修改為“漢語(Chinese)”並勾選“啟用複雜字元輸入支持(Enable support to enter complex characters)”,點擊確定按鈕。
* gNewSense這時會下載並安裝語言包。安裝完畢之後,當你註銷後重新登錄,界面就變成中文的了。

當然你也可以在終端下安裝,gNewSense會為你自動安裝系統中未安裝中文支持程式的中文包。你也可以順便裝上高質量字型,文泉驛點陣宋體,讓你的桌面更漂亮。

$ sudo aptitude install language-pack-gnome-zh-base language-pack-gnome-zh language-pack-zh xfonts-wqy

安裝完後,在系統–>系統管理–>字型 里選擇你想要顯示的字型,這樣你的桌面就漂亮了。

安裝SCIM輸入平台及輸入法

gNewSense系統只默認安裝了SCIM輸入平台,輸入法則需要我們來選擇安裝,我用的是五筆scim-tables-zh,如果你用拼音就換成 scim-pinyin。

$ sudo aptitude install im-switch scim scim-gtk2-immodule scim-tables-zh
$ im-switch -s scim -z default

設定好後,別忘記註銷桌面重新登入。或者你啟動一下輸入法:

$ sudo scim -d
你想刪除SCIM,使用Fcitx輸入法:

$ sudo aptitude purge scim

建議你還是保留Scim輸入法,只把當前輸入法設定成了Fcitx為好。

用自己喜歡的編輯器打開一個檔案:

$ sudo gedit /usr/lib/gtk-2.0/2.10.0/immodule-files.d/scim-gtk2-immodule.immodules

找到下面這段:

# automatically generated by dh_gtkmodules, do not edit
“/usr/lib/gtk-2.0/2.10.0/immodules/im-scim.so”
“scim” “SCIM Input Method” “scim” “/usr/share/locale” “ja:ko:zh”

把最後的:zh刪除掉,即只剩下”ja:ko”,在中文環境下,不開啟Scim。重新登入系統即可。安裝Fcitx中文輸入法

$ sudo aptitude install im-switch fcitx
$ im-switch -s fcitx -z default

注意:最後一步操作不加sudo。完成設定最好重啟一下X,輸入法就生效了。

多媒體套用環境設定

說句實話,要想使用100%自由軟體,你可能就要放棄一些套用了,比如影音。因為多數影音的編碼都是專有格式。少有自由開放的編碼。如果你只需要聽MP3還好辦,只需要:

$ sudo aptitude install audacious

如果你覺得,現在的網路電影這么多,不能播放多可惜。那你就加入下面的Ubuntu的源:

$ sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
$ sudo aptitude update && sudo aptitude install medibuntu-keyring && sudo aptitude update

安裝Mplayer及DVD支持、音頻解碼及RealPlayer:

$ sudo aptitude install mplayer mplayer-fonts mplayer-skin libdvdcss2 w32codecs realplayer

這樣,你的電腦就可以播放幾十種格式的影音檔案了。

大功告成,請註銷重新進入桌面!以上對gNewSense系統的基本設定,你已經完成。不過這些設定對於你來說遠遠不夠。你一定還想安裝自己需要的軟體,那就用圖形化安裝程式按需要安裝吧。

圖形化安裝程式

gNewSense的Gnome桌面中還提供了兩種圖形化前端工具,一個是:應用程式->添加/刪除程式,另一個是:系統->系統設定->新立得軟體包管理器。

gNewSense圖形化添加/刪除程式

如果你厭煩了用終端安裝程式,就用這兩種圖形化程式來安裝你需要的軟體吧。

* 添加/刪除程式提供了更多、更詳細的說明,並且有和應用程式選單相對應的軟體分類,和漂亮直觀的圖示顯示。即使你不懂命令也可以輕鬆使用,不用命令你就能添加、刪除程式,非常方便。

* 新立得軟體包管理器不但有軟體包的管理,還提供系統升級的功能。如果你安裝了中文環境支持,你打開之後就會有中文界面,否則只是英文界面。如果在管理器中細心尋找就可以發現寶藏,很多你想要的軟體,不用到網路上去搜尋下載,它就已經在你的安裝源里。並且,它還提供了強大的搜尋功能,你可以搜尋軟體名稱、軟體注釋、軟體介紹關鍵字來想辦法找到需要的軟體。

用Builder工具創建屬於自己的GNU/Linux發行版

作為創建gNewSense的一部分,我們導出了Builder工具,允許在Ubuntu Hardy的基礎上創建新的GNU/Linux發行版。通過一個簡單的配置檔案,你就能夠選擇發行版的名稱,版本號,標語以及你想要安裝或者移除默認的軟體包。圖像將會自動生成。雖然這些腳本主要的目的是為了創建gNewSense,但是它還是一個不錯值得利用的工具。需要注意的是你可以不遵循下面的步驟使用gNewSense,因為你可以從網站的鏡像下載到相關的鏡像檔案。

你需要至少60GB的硬碟空間,最好有一個非常快的網路連線(因為你將要下載40GB的數據)。同時你的鏡像點(也可以在同一個系統中)也需要 40GB左右的空間。如果你會利用硬連結,就能夠避免一些重複的下載。這一些操作都將在Ubuntu Hardy(或者更高版本的)系統執行。所有的命令都必須運行在Root許可權下。

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

第一步:GPG Key

軟體庫中很多最近版本的apt,需要經過GPG簽名的版本檔案,這樣可以保證發行版的集成度,所以我們的第一步就是創建一個GPG Key。

gpg --gen-key

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

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

為了避免重複下載檔案,我建議創建一個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伺服器,這樣你就能通過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

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

第四步: 配置

用文本編輯器,打開配置檔案。你主要關心的設定有MIRROR,RELEASE,DISTRONAME,DOMAIN,BASEDIR,和REPOAPT。 如果還有其它的定製要求可以修改配置檔案的其它設定部分。

MIRROR 指的是你在第二步中創建的鏡像點,或者Ubuntu鏡像點,它應該包含安全的軟體包。

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

DISTRONAME 指的是你的發行版名稱,只能包含字母和數字。

BASE_RELEASE 指的是你的版本號。版本號應該是小寫的,因為它將在路徑出現。

TAGLINE 出現在開機啟動和登錄的螢幕中。

SIGNINGKEY 指的是第一步中你設定的GPG Key,不能包含任何空格。

BASEDIR 指的是放置軟體庫、livecd、臨時檔案的目錄名稱,REPODST 指的是當前檔案系統下建立的鏡像點位置($BASEDIR/發行版名稱的小寫形式)。

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

RSYNC_DEST 指的是可以通過push-repo 或者push-cd來同步的軟體庫和livecd的位置。

LOGO_LETTER 指的是標誌中的字母。

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

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

第五步: 構造軟體庫

./gen-repo && ./do-update

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

如果你在64位的核心上運行32位的用戶程式,安裝linux32軟體包,然後執行命令

./gen-repo && linux32 ./do-update

第六步: 創建LiveCD

./gen-livecd

創建好的鏡像檔案將放在 $LIVECDDIR/$DISTRONAME_L-livecd-$LIVECD_VERSION.iso

./gen-cdsource

./stage-cd

這兩個命令將創建一個源碼包,並把這個ISO放置在 $REPODST/CDimage

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

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

./push-repo

./push-cd

? Brian Brazil 2006

Minor edits by Karl Goetz

相關詞條

相關搜尋

熱門詞條

聯絡我們