对于最新版本的Ubuntu,请参考这个答案。
注意:Ubuntu Builder项目已经停止维护。
##使用Ubuntu-Builder创建一个带有Gnome-Classic的自定义12.04 CD
(目前,这只适用于Karthik的需求;我稍后会更新答案,加入更一般/Unity特定的内容)
###1. 获取Ubuntu Builder和源ISO
Ubuntu Builder自动化了许多之前需要手动完成的初步步骤(挂载ISO、提取squashfs、创建chroot等)。它还提供了Synaptic和一个“图形化”的chroot(Unity用户界面)。
添加PPA以安装Ubuntu Builder:
sudo add-apt-repository ppa:kamilion/ubuntu-builder
sudo apt-get update
sudo apt-get install ubuntu-builder
同样下载你计划使用的Ubuntu桌面ISO。
###2. Ubuntu Builder基础知识
从启动器中启动Ubuntu Builder。我建议你将所有三个字段都设置为"Ubuntu"(就像实际的LiveCD一样),因为设置自定义字段会导致软件中心崩溃。安装时,你可以像往常一样选择自己的用户名、机器名等。
加载你的ISO;我加载了64位的带有本地磁盘选项,尽管如果你想的话,Ubuntu Builder应该可以下载ISO。
右侧的按钮是不言而喻的。Console
给你一个CLI chroot,而Desktop
给你一个图形化界面!,即一个LiveCD会话本身(这可能需要一些时间来加载)。请注意,Select DE/WM
有时会做得不完整,所以最好通过apt-get/Synaptic进行安装。
###3. 更新,添加Gnome Classic和其他软件包管理
注意:如果您更习惯使用Synaptic,所有这些操作也可以在Synaptic中完成。
您可以通过按钮(或通过控制台)编辑sources.list文件,以添加自己的镜像、ppa等。
让我们开始吧:
1. 删除游戏:
```
apt-get remove --purge aisleriot gnome-games-data gnomine mahjongg -y
```
2. 进行一次常规更新和升级,以获取最新的软件版本(可选,但建议进行,因为您添加的Gnome Classic和其他软件包将是最新版本)- 在12.04上,此步骤还会安装Thunderbird和核心Samba组件。这样做还可以节省实际安装的时间。
```
apt-get update && apt-get dist-upgrade
```
3. 安装Gnome Classic(gnome-shell用于引入指示器等)、Samba和SSH:
```
apt-get install gnome-shell samba ssh
```
###4. 自定义1:文件、配置和移除顶部面板
注意:除非另有说明(通常是在从您自己的系统复制文件时),所有命令都必须从Ubuntu Builder的chroot控制台中运行。chroot的绝对路径为/home/ubuntu-builder/FileSystem。
1. 替换Samba配置文件(从您自己的系统终端,即chroot之外!)
sudo cp /path/to/mysmb.conf /home/ubuntu-builder/FileSystem/etc/samba/smb.conf
2. 在桌面上放置Firefox快捷方式:
mkdir -p /etc/skel/Desktop && cd /etc/skel/Desktop
cp /usr/share/applications/firefox.desktop .
chmod +x firefox.desktop
3. 从chroot之外复制自定义快捷方式和文件夹到桌面
sudo cp -r /path/to/mydesktopitems/ /home/ubuntu-builder/FileSystem/etc/skel/Desktop/
4. 将gnome-classic设置为默认shell:
/usr/lib/lightdm/lightdm-set-defaults -s gnome-classic
删除顶部的Gnome-Classic面板,并将顶部项目移动到底部面板:
打开默认的面板布局:
nano /usr/share/gnome-panel/panel-default-layout.layout
通过删除1-4行来删除顶部面板:
[Toplevel top-panel]
expand=true
orientation=top
size=24
通过修改下面的参数中的粗体值,将开始菜单移动到左下角:
[Object menu-bar]
object-iid=PanelInternalFactory::MenuBar
toplevel-id=bottom-panel
pack-index=0
通过修改下面的参数中的粗体值,将指示器移动到右下角,就在工作区切换器的左侧:
【对象指示器】
object-iid=IndicatorAppletCompleteFactory::IndicatorAppletComplete
toplevel-id=bottom-panel
pack-type=end
pack-index=1
- 从左下角删除“显示桌面”按钮;我更喜欢开始菜单是第一个出现的,你可以保留它或将其移动到右下角等。删除以下行:
【对象显示桌面】
object-iid=WnckletFactory::ShowDesktopApplet
toplevel-id=bottom-panel
pack-index=0
###5. 自定义2:背景和主题
注意:/usr/share/glib-2.0/schemas包含大部分默认的背景/主题设置;我发现直接修改这些设置对于LiveCD来说更容易,而不必处理复杂的事情,例如防止登录屏幕背景与桌面背景相同。
禁用登录界面(lightdm)从“复制”桌面背景和其他更改:
打开nano /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
如果需要,您可以在此处更改默认的登录背景:
'/usr/share/backgrounds/warty-final-ubuntu.png'
通过将其设置为false来禁用“复制”桌面背景:
false
将登录主题设置为Radiance:
'Radiance'
更改默认壁纸;在这里,我们将把它设置为包含的
"Tie My Boat"(
/usr/share/backgrounds/Tie_My_Boat_by_Ray_García.jpg
):
打开
nano /usr/share/glib-2.0/schemas/10_gsettings-desktop-schemas.gschema.override
,并将下面的行更改为您文件的路径:
picture-uri='file:///usr/share/backgrounds/warty-final-ubuntu.png'
将主题更改为Radiance
[org.gnome.desktop.interface]
gtk-theme="Ambiance"
...
[org.gnome.desktop.wm.preferences]
theme="Ambiance"
重要:编译修改后的模式!
现在我们已经完成了定制,使用以下命令编译修改后的模式:
glib-compile-schemas /usr/share/glib-2.0/schemas
###6. 构建、测试和安装!
在Ubuntu Builder中点击“构建”按钮开始构建自定义的Live-CD ISO。UB会自动处理以前需要手动完成的清理等工作。
ISO文件可以在/home/ubuntu-builder目录下找到,您可以使用内置的QEMU或其他虚拟机进行测试。
我的最终CD大小为778 MB(删除旧的.23内核后),如果用户希望,Unity和Gnome 3D仍然可用,所以这对于定制来说非常好! :)
应该得到以下结果:
开机后,您会看到“尝试Ubuntu”或“安装Ubuntu”的选项。
点击“尝试”按钮,我们就能获得我们定制的桌面!
登出后(使用
ubuntu
登录,空密码),可以看到登录壁纸仍保持默认状态。
安装程序在时区选择时不会崩溃。
选择用户名等进行安装:
安装的登录界面:
已安装的桌面: