gNewSense

gNewSense是自由软件基金会(FSF)基于Ubuntu Linux建立的完全自由的操作系统发行版。它是由Brian Brazi和PaulO’Malley在2006年建立的,虽然Ubuntu 很流行,但它并非一个完全符合GNU 精神的发行版,因为它包含了一些非自由的软件。

gNewSense目标是要提供一个100%自由的操作系统 ,用户可以访问到系统里全部软件的源代码,无论是内核还是用户态程序。gNewSense基于Ubuntu,Ubuntu是从 Debian GNU / Linux上创建的发行版,并且于Debian合作紧密。需要说明的是Debian/GNU Linux虽然冠GNU之名,但是不完全符合GNU的自由精神,而是有所妥协,提供了非自由软件选项。第一个得到GNU承认的完全自由的GNU / Linux发行版是基于Gentoo 的Ututo 。

gNewSense发布时包含了一些改进,但不包含任何私有或非自由的组件。特别地,所有的私有固件、受限制的模块、Ubuntu的徽标 ,都被移除了,而“Universe”软件仓库缺省被选中,一些GNU应用软件如 Emacs 和开发库,以及bsdgames 和NetHack ,都被包含在缺省安装中。该计划的目标是创建一份完全自由的Linux发行。

目录

  • 1 为什么要创建gNewSense发行版
  • 2 gNewSense系统安装配置
  • 3 用Builder工具创建属于自己的GNU/Linux发行版

gNewSense- 为什么要创建gNewSense发行版

最好从Ubuntu和Debian的源的格式来简单理解一下自由软件与非自由软件的区别,以及为什么要创建gNewSense发行版,对Ubuntu和 Debian很软件包是否自由或者/etc/apt/souce.list文间中各个源的参数很熟的读者可以直接跳过。

“源”指的就是/etc/apt/sources.list文件中包含的类如此类的信息:

一、对于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-gNewSense 系统安装配置

目 前最新版是2008年8月25日发布的gNewSense 2.1版。gNewSense 2.1 DeltaH基于Ubuntu 8.04 Hardy,移除了其中的非自由软件和非自由驱动。加入Usplash,新主题和图案,LiveCD sudo不再询问密码等等。

gNewSense的安装配置跟Ubuntu一样。用LiveCD引导进入系统,点击install图标,选择安装的语言(中文)只需要7步,就可以把gNewSense安装到硬盘中。

但即使你选择了中文为默认语言,进入系统后,还有大量的程序如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桌面中还提供了两种图形化前端工具,一个是:应用程序->添加/删除程序,另一个是:系统->系统设置->新立得软件包管理器。

clip_image002[2] 图形化添加/删除程序

如果你厌烦了用终端安装程序,就用这两种图形化程序来安装你需要的软件吧。

* 添加/删除程序提供了更多、更详细的说明,并且有和应用程序菜单相对应的软件分类,和漂亮直观的图标显示。即使你不懂命令也可以轻松使用,不用命令你就能添加、删除程序,非常方便。

* 新立得软件包管理器不但有软件包的管理,还提供系统升级的功能。如果你安装了中文环境支持,你打开之后就会有中文界面,否则只是英文界面。如果在管理器中细心寻找就可以发现宝藏,很多你想要的软件,不用到网络上去搜索下载,它就已经在你的安装源里。并且,它还提供了强大的搜索功能,你可以搜索软件名称、软 件注释、软件介绍关键词来想办法找到需要的软件。

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

你可能感兴趣的:(gNewSense)