Lubuntu16.4.3定制教程


layout: post
title: Lubuntu16.4.3定制教程
keywords: lubuntu, livecd
category : linux
tags : [linux]


<center><h1>Lubuntu16.4.3定制教程</h1></center>
<center>迟思堂工作室 李迟(li@latelee.org)</center>

本文是对lubuntu-16.04.3-desktop-amd64.iso进行定制文档,最终输出一个可以烧写到U盘并能启动的ISO镜像文件。本文要求读者对linux有一定掌握程度,比如:知道用户权限(root权限)、知道如何使用apt-get install安装软件,知道shell。本文注重的是制作的方法,另外有做好的定制脚本文件,具体参考工程仓库内文件。工程仓库里的图标、配置文件显示的字符串可能与本文有出入,最终以读者自行判断的为准。
如无特殊说明:
本文提到的命令,都是用root执行的。
本文所述“启动系统”、“重启系统”、“ISO启动”等,都是指“启动iso,进入livecd环境”。
本文假定读者能自由切换sudo和root,并能自由切换“/”和“\”。
本文工程项目仓库地址:https://github.com/cststudio/lubuntucd ,下文将其为“工程”或“工程仓库”。

1、环境搭建

制作iso镜像,需要使用一台linux系统,可以是物理机,也可以是虚拟机,只要保证安装有相应的工具即可。本文使用的系统是12核至强处理器,64GB内存的ubuntu 16.04 64bit。CPU核心数越多,制作ISO镜像越快(本文所用系统制作ISO耗时大约1分钟左右)。
就制作过程而言,需要使用的工具安装步骤如下:

sudo apt-get install squashfs-tools 
sudo apt-get install mkisofs  
sudo apt install xorriso  
sudo apt-get install isolinux  

说明:
squashfs-tools主要用于解压、压缩squash文件系统的(ISO光盘使用这种格式)。
mkisofs 和xorriso主要用于制定ISO镜像文件。
isolinux主要用于生成isohdpfx.bin。安装该工具后,在/usr/lib/ISOLINUX/下面会有isohdpfx.bin,这个文件是我们在制定ISO时使用到的,需要将其拷贝到指定目录。该文件已经整合到工程仓库里了。

2、文件说明

制作过程需要使用大量命令,为了简化其人工输入的失误,因此,在解压ISO、制作ISO过程中,均使用脚本来实现。
本文工程使用的主要文件和目录说明如下:

  • 1_tar_iso.sh:解压专用。用于将原始ISO(即从官网下载的镜像)解压,得到rootfs文件。
  • 2_tar_splash.sh :解压splash、bootlogo相关文件。
  • 3_build_splash.sh::更新并重新制作splash、bootlogo相关文件。
  • update.sh:更新ISO镜像(即本文的定制部分将通过此脚本完成,当然也可以手工一步步完成)。
  • 4_build_iso.sh:制作ISO镜像专用。用于将修改后rootfs打包、制作成新的ISO镜像。
  • work:工作目录,包括自定义图片、修改后的配置文件、语言文件、isohdpfx.bin文件,等等。
    细节请自行查阅文件。

3、制作步骤

一般来说,制作过程分几个阶段:

  1. 下载镜像文件lubuntu-16.04.3-desktop-amd64.iso,将这个镜像文件和脚本文件(1_tar_iso.sh、2_tar_splash.sh等)放置同一个目录。
  2. 解压原始镜像文件。此阶段使用1_tar_iso.sh脚本进行(注意:后面我们定制时,是基于已经解压的iso文件,因此,这个阶段就不再需要了)。执行脚本:
./1_tar_iso.sh
  1. 自定义制作。此阶段根据实际情况不同而不同。文后主要在此阶段进行说明、演示。
  2. 重新制作ISO镜像。此阶段使用4_build_iso.sh脚本进行。执行脚本:
./ 4_build_iso.sh

测试我们重新制定的ISO有2种方式。第一种是使用虚拟机vmware软件,新建一个虚拟机,然后使用新生成的iso,启动即可看到效果。这种方法在初期阶段建议,因为比较快看到效果。第二种是使用烧写工具将ISO烧写到U盘,从U盘启动,查看效果。烧写工具因系统不同而不同,这里介绍的是在Linux系统中烧写方式。
将U盘插入计算机的USB口,使用

ls /dev/sd*

查看。一般来说,只有一块硬盘的计算机,/dev/sda即为该硬盘的设备文件(盘符),而/dev/sdb就是U盘的设备文件。简单记忆就是sda表示系统识别到的第一块磁盘,sdb是第二块,sdc为第三块,等等。本文使用的系统有2块硬盘,因此U盘的设备文件为/dev/sdc。烧写命令如:

dd if=lubuntu-16.04.3-desktop-amd64.iso of=/dev/sdc

其中if表示要烧写的镜像文件,这里是lubuntu-16.04.3-desktop-amd64.iso,of表示要烧写的U盘设备文件。

4、定制过程

为了行文简便,本节定制过程,仅仅是描述要定制的流程,不重复涉及解压iso、重新制定iso的过程,请参考第三章节。凡是演示有效果图的,均是重新制作ISO,然后再启动ISO系统。
本文定制的镜像、脚本,统一放到/home/latelee/iso目录。ISO真正内容位于squashfs-root目录。该目录由脚本固定,本文使用该目录来描述,如果实际目录不同,目录名跟着变化即可。本节涉及路径都在/home/latelee/iso目录下面,比如

squashfs-root/usr/share/lubuntu/wallpapers  

实际在系统的全路径为:

/home/latelee/iso/squashfs-root/usr/share/lubuntu/wallpapers  

为了编写高效,有时会使用windows系统,比如存放图片、修改图片等等,会使用“\”分隔符,在本文中,不区别对待“/”和“\”,在真正操作时,请时刻记住在linux下是“/”的。
实践小结:
建议部分重要文件使用chroot进入squashfs-root来编辑。
比如ISO光盘中的/usr/share/plymouth/themes/lubuntu-text/lubuntu-text.plymouth文件,是链接到/etc/alternatives/text.plymouth的。
如果在主机上查看/etc/alternatives/text.plymouth,该文件却链接到/usr/share/plymouth/themes/xubuntu-text/xubuntu-text.plymouth。
因为本文是使用ubuntu来定制lubuntu,所以会出现这种情况。如果主机也是lubuntu,则不会这样。但是,如果不小心改错了ISO里面的文件,还是会影响主机的使用的。
下图是默认的lubuntu桌面:

image

4.1 桌面背景图片

4.1.1 背景图片

目录:squashfs-root \usr\share\lubuntu\wallpapers
默认是图片名称:lubuntu-default-wallpaper.png
分辨率:2560X1600
【定制】:
将自己喜欢的图片(最好保持分辨率),放到此目录,并修改为lubuntu-default-wallpaper.png。原来的图片可以删除可重命名。

4.1.2 菜单的logo图

目录:squashfs-root \usr\share\lubuntu\images
默认名称:1604-lubuntu-logo.png
分辨率:56x24
【定制】:
将自己喜欢的图片(最终保持分辨率),放到此目录,并修改为1604-lubuntu-logo.png。原来的图片可以删除可重命名。
注:squashfs-root \usr\share\lubuntu\images 目录下的1604-logout-banner.png是登出显示的logo图片。
定制效果如下图所示:

image

4.2 系统关机显示的图标

目录:squashfs-root\usr\share\plymouth\themes\lubuntu-logo
文件:lubuntu_logo.png
分辨率:217X58
直接替换该文件即可。

4.3 开机文字和图片

开机文字和图片是livecd启动正式系统前进行显示的。内容位于newiso目录。
开机文字涉及目录:newiso\isolinux
开机图片涉及文件:newiso\casper\initrd.lz
修改过程十分复杂,已经制作成脚本,参考2_tar_splash.sh和3_build_splash.sh。修改的图片、文件放到work\splash目录。下面介绍有关文件:
en.tr、txt.cfg、zh_CN.tr、zh_TW.tr:开机文字文件(.tr文件部分为二进制,部分为正常字符串,笔者使用notepad++对正常字符串进行修改),需要将修改后的文件放到newiso\isolinux目录,同时也要重新制定该目录的bootlogo文件。
splash.pcx:开机选择安装系统时显示的图片,pcx格式(用photoshop可修改、保存。注:相同分辨率,大小不同,开机图片会显示不正常,暂未知原因)。放到newiso\isolinux目录,同时也要重新制定该目录的bootlogo文件。
lubuntu_logo.png、progress_dot_on.png:系统启动过程显示的图片。需要重新制作,最后生成initrd.lz文件。
就本节实验而言,修改的地方有:
en.tr文件中,将

Install Lubuntu

改为

Install Lubuntu-KXS

Try Lubuntu without installing

改为

Try Lubuntu without installing-KXS

修改txt.cfg文件(menu label一行最后的“-KXS”为新加字符串):

default live
label live
  menu label ^Try Lubuntu without installing-KXS
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/lubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
  menu label ^Install Lubuntu-KXS
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/lubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet splash ---
label check

zh_CN.tr文件中,将

试用 Lubuntu 而不安装

改为

试用 Lubuntu 而不安装-人生

安装 Lubuntu

改为

安装 Lubuntu-何处

zh_TW.tr文件中,将

在不需安裝的情況下試用 Lubuntu

改为

在不需安裝的情況下試用 Lubuntu-天涯

安裝 Lubuntu

改为

安裝 Lubuntu-行客

效果如下(红框部分所示):
英文界面:

image
</br>
简体中文界面:
image
</br>
繁体中文界面:
image
</br>
从图中看到,繁体中文效果不佳,原因未知,个人猜测和文字长度或者编码格式有关。
另外在测试中发现,即使是简体中文,如果字符串长度太长,也会显示不正常。

4.4 修改终端效果

lubuntu使用的终端是lxterminal,其配置文件目录为:
/usr/share/lxterminal/
配置文件为(如终端默认字体、字体大小):
/usr/share/lxterminal/lxterminal.conf
修改该文件即可对lxterminal进行定制,修改示例:

[general]
fontname=Ubuntu Mono 11
selchars=-A-Za-z0-9,./?%&#:_
scrollback=100

修改的是fontname这一行。
说明:这是修改GUI的终端配置(字体选择和字体大小)。效果如下图红框所示。

image
</br>
说明:默认为Monospace 10,现改为Monospace 11。

4.5 修改鼠标样式

使用chroot进入squashfs-root目录。

rm /etc/alternatives/x-cursor-theme
ln -s /usr/share/icons/DMZ-Black/cursor.theme /etc/alternatives/x-cursor-theme

此方法修改无效果,请参考下文。笔者认为理论上应该修改正确了,但却不生效,原因待查。

4.6 修改桌面图标

lubuntu的桌面图标配置文件目录是:squashfs-root/usr/share/applications/,配置文件以.desktop结尾。
默认情况下启动,桌面会有安装系统的图标。下面修改图标的显示文字。
修改文件:squashfs-root/usr/share/applications/ubiquity.desktop

安裝 RELEASE

改为

安装我的!系统! RELEASE

也可以修改为其它想显示的字符。重新制作ISO,启动ISO后,桌面出现效果如下:

image
</br>
说明:通过修改配置文件,可以定制桌面图标显示的文字。

4.7 放置图标快捷到桌面

为了方便在桌面直接双击打开程序,需要放程序图标放到桌面上。
使用chroot进入squashfs-root目录。
创建/etc/skel/Desktop目录,将需要显示到桌面的图标文件拷贝到该目录。下面将firefox和终端快捷方式放到桌面:

mkdir -p /etc/skel/Desktop
cd /etc/skel/Desktop/
cp /usr/share/applications/firefox.desktop .
cp /usr/share/applications/lxterminal.desktop .
chmod +x *

效果如下:

image
</br>

说明:此方式适用于默认lubuntu用户的情况。(注意和以下方式有区别,如果使用自添加用户的话,则本节设置方法无效)
知识点:
/etc/skel/是新加用户时,该用户拥有的设置,系统启动时,会创建lubuntu用户,则这个目录的内容将会拷贝到lubuntu的home目录。

4.8 新加home目录和根目录到桌面

默认情况下,桌面是没有home目录和根目录的图标的。
根据《放置图标快捷到桌面》一节的启示,只要找到home目录的图标配置文件,将其放到/etc/skel/Desktop/,就能在桌面显示了。
lubuntu文件系统管理使用pcmanfm工具,其桌面配置文件为:
/usr/share/applications/pcmanfm.desktop
将该文件拷贝一份,重命名为pcmanfm_home.desktop(表示是home目录),要修改的内容如下(下面的内容已修改):

Icon=system-file-manager # 在桌面上的图案名称(需要搜索目录以确认要添加的图标名)
Name=Home # 显示的图标名(英文系统显示图标名称)
Name[zh_CN]=家目录 # 中文系统图标名
Name[zh_TW]=家目录 # 繁体系统图标名
Exec=pcmanfm %U # 要执行的命名,注:%U表示本次登陆的用户的home目录

再重新拷贝一份,重命名为pcmanfm_rootfs.desktop(表示是根目录),要修改的内容如下(下面的内容已修改):

Icon=system-file-manager
Name=File System
Name[zh_CN]=根目录
Name[zh_TW]=根目录
Exec=pcmanfm /

内容注释参考前面,不再赘述。

效果如下图所示:

image
</br>
(注:左为中文,右为英文,可以看到两者图标间距不同,猜测是字符编码原因,也可能是笔者截图导致的视觉误差。)

4.9 新加锁屏

lubuntu默认使用lxlock作为锁屏工具。这里使用另一种锁屏方案:xlock。xlock官网为:http://www.sillycycle.com/xlockmore.html,源码下载地址为:http://www.sillycycle.com/xlock/
但是,笔者没有编译通过。限于时间,就直接使用livecd里面的xlock来实现。
实现方法:
1、将livecd的xlock和xlockless拷贝出来,再拷贝到/usr/bin目录,并修改其权限为777。
2、添加桌面图标文件xlock.desktop(参考/usr/share/applications/lubuntu-screenlock.desktop文件进行修改),内容如下:

[Desktop Entry]
Icon=system-lock-screen
Exec=lxlockless
Type=Application
Categories=GTK;System;Utility;

Name=ScreenLock
Name[zh_CN]=锁屏
Name[zh_TW]=锁屏

注:Categories项的内容决定于图标显示在启动菜单的位置。Name为显示的名字(不同国家语言,显示的名字不同)
3、将xlock.desktop拷贝到/etc/skel/Desktop目录
4、安装缺少的工具:

apt-get install -y rxvt-unicode

5、由于xlock不是在本地编译的,其使用的链接器文件为/lib/ld-linux-x86-64.so.2,而x64平台的链接器为/lib64/ld-linux-x86-64.so.2,因此需要额外拷贝一份,命令如下:

cp /lib64/ld-linux-x86-64.so.2 /lib/

重启制作ISO,启动,在桌面上会看到锁屏图标,双击,然后输入2次相同的密码,就会锁屏(此时屏幕是黑色的)。按任意键后,在出现的界面中输入刚才的密码,即能解锁。效果图如下:

image
</br>

4.10 启动菜单添加新图标

在桌面左下角启动菜单新加项目,不需要修改panel相关文件。以新加的锁屏功能放到System Tools分类为例,在.desktop文件中关键的语句为:

Categories=GTK;System;Utility;

效果图如下(左侧中文,右侧英文):

image
</br>
注意,菜单中显示的图标上的文字,由.desktop文件的Name决定。

4.11 启动菜单添加新分类

以安装的vim添加到编程分类为例进行说明。
用apt-get install vim方式安装vim后,会自动在/usr/share/applications目录下创建vim.desktop文件。
将其拷贝一份,重命名为myvim.desktop,修改Categories,由

Categories=Utility;TextEditor;

改为

Categories=Development;Programming;  

为了与vim.desktop作区别,修改名称,如下:

Name=MyVim
GenericName=My Text Editor

重新制作ISO,启动后,效果图如下(左侧英文,右侧中文)

image
</br>

总结:不管是新安装的软件还是系统已有的软件,如果要显示在桌面或菜单,都需要添加(或修改).desktop文件。放到桌面上,则要将.desktop文件拷贝到Desktop目录,菜单分类则需要将Categories修改为合适的字段。至于显示的名称,则由该文件的Name字段确定。参考其它的.desktop文件,进行学习了解。

4.12 添加用户:普通用户latelee

使用chroot进入squashfs-root目录。

adduser latelee (回车,然后输入2次密码,一路回车即可)  

将用户添加root权限:

addgroup -system admin
adduser latelee admin

命令说明:首先添加admin组,将latelee用户添加到admin组。

注:添加用户后,启动ISO时,会提示输入用户名密码,所以无法直接进入系统,是否需要此功能,三思而定。
登陆效果图如下:

image
</br>
在此前提下,创建桌面快捷方式:
创建文件:/home/latelee/Desktop/lxterminal.desktop。Desktop目录默认没有,需要自行创建。
内容如下:

[Desktop Entry]
Type=Link
Name=LXTerminal
Icon=lxterminal
URL=/usr/share/applications/lxterminal.desktop

启动ISO,登陆后,桌面有图标出现。想要其它桌面图标,操作同理。桌面“快捷方式”位于/usr/share/applications/目录下。

说明:这个操作主要是在ISO光盘添加一个用户,并以该用户运行系统。如果想要默认的lubuntu用户,则不需要新加用户。

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《TMPTMPTMPTMP

/etc/lightdm/lightdm-gtk-greeter.conf.d/30_lubuntu.conf

修改该文件,无效果。
[greeter]
logo=/usr/share/icons/lubuntu/places/64/start-here.svg
background=/usr/share/lubuntu/wallpapers/lubuntu-default-wallpaper.png
theme-name=Lubuntu-default
icon-theme-name=lubuntu
font-name=Ubuntu
xft-antialias=true
#xft-dpi=
xft-hintstyle=full
xft-rgba=rgb

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》TMPTMPTMPTMP

4.13 添加用户:root用户

添加root密码:

# passwd root

TODO:经尝试,不生效。原因待查。

4.14 修改主题、鼠标样式

下面是一种折中的方法。最好的方案暂时未找到。
使用livecd启动,开机,用默认的lubuntu用户登陆,先修改好自己想要的主题、鼠标样式,设置好桌面上显示的图标,之后得到配置文件在/home/lubuntu/目录(在.config和.icons目录),将这个目录做成压缩包(lubunut.tar.bz2),然后拷贝到制作ISO镜像的主机(建议用scp通过ssh来拷贝,快速)。
在主机上,将上面lubuntu目录压缩包(lubunut.tar.bz2)解压出来(本示例是放到work/lubuntu目录),拷贝到目录squashfs-root/etc/skel/。下面是一个示例(注:下面命令的当前目录在iso,work目录存放一些配置文件、图片等,squashfs-root是iso文件系统所在目录)。
拷贝主题、字体,等等:

cp work/lubuntu/.config/ squashfs-root/etc/skel/ -a

拷贝鼠标样式:

cp -a work/lubuntu/.icons/ squashfs-root/etc/skel/

拷贝桌面图标:

cp -a work/lubuntu/Desktop/ squashfs-root/etc/skel/

注意,为了防止权限问题造成无法读取文件,需要执行以下命令更改权限:

chroot squashfs-root # 进入chroot环境
chmod 777 squashfs-root/etc/skel/.* -R
exit #退出chroot环境。

最后,制作光盘ISO,启动新的ISO,即可看到修改后的效果。
总结:
因为squashfs-root/etc/skel/存放的是默认用户lubuntu的配置文件,因此,只要将我们想要的效果配置文件拷贝到对应的位置即可(如.config、.icons)。

知识点:
work/lubuntu/.config/gtk-3.0/settings.ini:主题、字体大小、鼠标样式
work/lubuntu/.config/lxsession/Lubuntu/desktop.conf:桌面配置(主题、字体大小、鼠标样式)
work/lubuntu/.config/lxterminal/lxterminal.conf:终端配置
work/lubuntu/.icons/user-dirs.dirs:里面是home目录的默认目录(video等)
work/lubuntu/.icons/default/index.theme:主题
(为什么主题配置要写那么多文件,笔者也不懂>_>)

4.15 修改时区

livecd默认是UTC时间,为了方便定制与实际时间对应起来,需要修改默认的时区。
使用chroot进入squashfs-root目录。将所需时区文件链接到/etc/localtime文件。下面示例是设置系统时间为东八区(上海):

rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

4.16 添加环境变量

使用chroot进入squashfs-root目录。
编辑文件/etc/bash.bashrc,在文件最后添加想要的环境变量或命令别名。比如默认是没有ll命令的,则可以添加:

alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

测试:即时生效:source /etc/bash.bashrc,然后输入ll即可看到生效了。

说明:修改这个文件,主要是方便定制一些命令。如果没有这方面的需要,则不用理会。

4.17 系统汉化

lubuntu默认情况下已经有部分界面汉化了,但不完整。系统的汉化需要对应语言包的支持(需要哪种语言则安装哪个语言支持包)。本节安装的是简体中文、繁体中文。语言包由世界各国志愿者维护(即每种语言,都需要人工进行翻译,放到mo或po文件里面)。
使用chroot进入squashfs-root,安装简体中文语言支持包:

apt-get install -y language-pack-zh-hans language-pack-gnome-zh-hans

繁体中文支持包:

apt-get install -y language-pack-zh-hant language-pack-gnome-zh-hant

英文包(注:默认已经安装了,所以会提示“升级”而不是安装)

apt-get install -y language-pack-en language-pack-gnome-en

下面对比原版和定制版本的效果:

image
</br>
从图中看到,有部分已经进行了汉化,但有部分依然没有被汉化。根据网络为数不多的资料猜测,应该是语言包并没有全部翻译造成的。如果要完全汉化,只能通过修改语言包文件达到目的,虽然4.18小节讲述了语言文件的修改方法,但整体而言,语言包的翻译是一个大工程,已超过本文范围了,故不再深入讲解。

4.18 语言文件修改

前面安装的语言包,实际上将mo文件放到合适的位置。不同语言,“合适的位置”也不同。
简体中文的mo文件位置:/usr/share/locale/zh_CN/LC_MESSAGES/
繁体中文:/usr/share/locale/zh_TW/LC_MESSAGES/
英文系统:/usr/share/locale/en/LC_MESSAGES/(注:似乎英文是天然支持的,因此该目录下的mo文件并不多。)
mo文件是二进制文件,无法直接修改,需要将其转换成po文件,修改po文件,再将其转成mo,这样才能完成更新的操作。
下面是文件系统管理器pcmanfm的语言文件为例说明。
找到/usr/share/locale/zh_CN/LC_MESSAGES/pcmanfm.mo,使用以下命令转换po文件:

msgunfmt pcmanfm.mo -o pcmanfm.po

然后编辑pcmanfm.po文件,此处修改示例如下:

msgid "translator-credits"
msgstr "Wylmer Wang <wantinghard@gmail.com>\nLate Lee <li@latelee.org>"

msgid "using LibFM ver. %s\n"
msgstr "--我的--使用 LibFM 版本 %s\n"

然后再转换成mo文件:

msgfmt pcmanfm.po -o pcmanfm.mo

将重新生成的pcmanfm.mo拷贝到原处,制作ISO,启动,选择简体中文。得到的效果图如下所示:

image
</br>

4.19 添加拼音、五笔输入法

安装fcitx拼音、五笔:

apt-get update # 更新源
apt-get install -y fcitx-pinyin fcitx-table-wubi fcitx-table-wbpy # 依次是拼音、五笔、五笔拼音

另外,网上有说法要添加以下源:

add-apt-repository ppa:fcitx-team/stable

经测试,不添加也可以正常安装。

输入法选择界面:

image
</br>
五笔输入界面:
image
</br>
fcitx拼音、五笔在中文环境才能显示出来,英文环境无法使用。

注:fcitx从源码安装十分麻烦,依赖库有十多个,详细参考以下文章:
https://fcitx-im.org/wiki/Compile_from_source

4.20 删除软件安装途径

为防止源更新,需要删除ISO安装软件的途径。安装软件的途径有:apt、dpkg、新立得(synpatic)、软件中心。只要将其删除掉,则在启动ISO时就无法再安装软件了。

使用chroot进入squashfs-root目录。
卸载synpatic:

apt-get autoremove -y synaptic

卸载软件中心:

apt-get autoremove -y lubuntu-software-center

卸载gdebi:

apt-get autoremove -y gdebi gdebi-gtk

卸载软件更新:

apt-get autoremove -y software-properties-gtk update-manager

删除apt、dpkg:

rm -rf $(find /usr -name "*dpkg*") $(find /usr -name "*apt*")
rm -rf $(find /etc -name "*dpkg*") $(find /etc -name "*apt*")

命令解释:删除所有带“dpkg”、“apt”字样的文件。

注意,此操作具备一定危险,需要谨慎操作。如果不是在chroot环境,会将主机的dpkg和apt删除掉。三思而定。

5、最终定制效果及ISO下载

定制效果图如下:


image

</br>

本工程定制的ISO镜像下载地址如下:
链接: https://pan.baidu.com/s/1jJ7bRNo 密码: 5c1u
md5sum:4ac0996167214e0b541be7016be19220

关于本文任何问题或建议,欢迎反馈给我:li@latelee.org
本教程花费大量时间,如果觉得有帮助,欢迎捐赠作者:

donate

6、免责声明

本文开源于此,旨在让自己(或他人)更深入地研究lubuntu(以及linux)系统内部结构及原理。lubuntu、ubuntu、linux的商标(和版权)归属各自所属组织/公司,笔者无意亦不愿侵犯。

7、附

在lubuntu安装不同国家(地区)的语言包,则可显示该国(地区)文字,完整的语言支持包列表如下:

language-pack-af                  language-pack-gnome-ka            language-pack-kde-pl
language-pack-af-base             language-pack-gnome-ka-base       language-pack-kde-pt
language-pack-am                  language-pack-gnome-kk            language-pack-kde-ro
language-pack-am-base             language-pack-gnome-kk-base       language-pack-kde-ru
language-pack-an                  language-pack-gnome-km            language-pack-kde-si
language-pack-an-base             language-pack-gnome-km-base       language-pack-kde-sk
language-pack-ar                  language-pack-gnome-kn            language-pack-kde-sl
language-pack-ar-base             language-pack-gnome-kn-base       language-pack-kde-sr
language-pack-as                  language-pack-gnome-ko            language-pack-kde-sv
language-pack-as-base             language-pack-gnome-ko-base       language-pack-kde-tg
language-pack-ast                 language-pack-gnome-ku            language-pack-kde-th
language-pack-ast-base            language-pack-gnome-ku-base       language-pack-kde-tr
language-pack-az                  language-pack-gnome-lt            language-pack-kde-ug
language-pack-az-base             language-pack-gnome-lt-base       language-pack-kde-uk
language-pack-be                  language-pack-gnome-lv            language-pack-kde-vi
language-pack-be-base             language-pack-gnome-lv-base       language-pack-kde-zh-hans
language-pack-bg                  language-pack-gnome-mai           language-pack-kde-zh-hant
language-pack-bg-base             language-pack-gnome-mai-base      language-pack-kk
language-pack-bn                  language-pack-gnome-mk            language-pack-kk-base
language-pack-bn-base             language-pack-gnome-mk-base       language-pack-km
language-pack-bo                  language-pack-gnome-ml            language-pack-km-base
language-pack-bo-base             language-pack-gnome-ml-base       language-pack-kn
language-pack-br                  language-pack-gnome-mn            language-pack-kn-base
language-pack-br-base             language-pack-gnome-mn-base       language-pack-ko
language-pack-bs                  language-pack-gnome-mr            language-pack-ko-base
language-pack-bs-base             language-pack-gnome-mr-base       language-pack-ku
language-pack-ca                  language-pack-gnome-ms            language-pack-ku-base
language-pack-ca-base             language-pack-gnome-ms-base       language-pack-lt
language-pack-crh                 language-pack-gnome-my            language-pack-lt-base
language-pack-crh-base            language-pack-gnome-my-base       language-pack-lv
language-pack-cs                  language-pack-gnome-nb            language-pack-lv-base
language-pack-cs-base             language-pack-gnome-nb-base       language-pack-mai
language-pack-cy                  language-pack-gnome-nds           language-pack-mai-base
language-pack-cy-base             language-pack-gnome-nds-base      language-pack-mk
language-pack-da                  language-pack-gnome-ne            language-pack-mk-base
language-pack-da-base             language-pack-gnome-ne-base       language-pack-ml
language-pack-de                  language-pack-gnome-nl            language-pack-ml-base
language-pack-de-base             language-pack-gnome-nl-base       language-pack-mn
language-pack-dz                  language-pack-gnome-nn            language-pack-mn-base
language-pack-dz-base             language-pack-gnome-nn-base       language-pack-mr
language-pack-el                  language-pack-gnome-oc            language-pack-mr-base
language-pack-el-base             language-pack-gnome-oc-base       language-pack-ms
language-pack-en                  language-pack-gnome-or            language-pack-ms-base
language-pack-en-base             language-pack-gnome-or-base       language-pack-my
language-pack-eo                  language-pack-gnome-pa            language-pack-my-base
language-pack-eo-base             language-pack-gnome-pa-base       language-pack-nb
language-pack-es                  language-pack-gnome-pl            language-pack-nb-base
language-pack-es-base             language-pack-gnome-pl-base       language-pack-nds
language-pack-et                  language-pack-gnome-pt            language-pack-nds-base
language-pack-et-base             language-pack-gnome-pt-base       language-pack-ne
language-pack-eu                  language-pack-gnome-ro            language-pack-ne-base
language-pack-eu-base             language-pack-gnome-ro-base       language-pack-nl
language-pack-fa                  language-pack-gnome-ru            language-pack-nl-base
language-pack-fa-base             language-pack-gnome-ru-base       language-pack-nn
language-pack-fi                  language-pack-gnome-si            language-pack-nn-base
language-pack-fi-base             language-pack-gnome-si-base       language-pack-oc
language-pack-fr                  language-pack-gnome-sk            language-pack-oc-base
language-pack-fr-base             language-pack-gnome-sk-base       language-pack-or
language-pack-ga                  language-pack-gnome-sl            language-pack-or-base
language-pack-ga-base             language-pack-gnome-sl-base       language-pack-pa
language-pack-gd                  language-pack-gnome-sq            language-pack-pa-base
language-pack-gd-base             language-pack-gnome-sq-base       language-pack-pl
language-pack-gl                  language-pack-gnome-sr            language-pack-pl-base
language-pack-gl-base             language-pack-gnome-sr-base       language-pack-pt
language-pack-gnome-af            language-pack-gnome-sv            language-pack-pt-base
language-pack-gnome-af-base       language-pack-gnome-sv-base       language-pack-ro
language-pack-gnome-am            language-pack-gnome-ta            language-pack-ro-base
language-pack-gnome-am-base       language-pack-gnome-ta-base       language-pack-ru
language-pack-gnome-an            language-pack-gnome-te            language-pack-ru-base
language-pack-gnome-an-base       language-pack-gnome-te-base       language-pack-si
language-pack-gnome-ar            language-pack-gnome-tg            language-pack-si-base
language-pack-gnome-ar-base       language-pack-gnome-tg-base       language-pack-sk
language-pack-gnome-as            language-pack-gnome-th            language-pack-sk-base
language-pack-gnome-as-base       language-pack-gnome-th-base       language-pack-sl
language-pack-gnome-ast           language-pack-gnome-tr            language-pack-sl-base
language-pack-gnome-ast-base      language-pack-gnome-tr-base       language-pack-sq
language-pack-gnome-az            language-pack-gnome-ug            language-pack-sq-base
language-pack-gnome-az-base       language-pack-gnome-ug-base       language-pack-sr
language-pack-gnome-be            language-pack-gnome-uk            language-pack-sr-base
language-pack-gnome-be-base       language-pack-gnome-uk-base       language-pack-sv
language-pack-gnome-bg            language-pack-gnome-uz            language-pack-sv-base
language-pack-gnome-bg-base       language-pack-gnome-uz-base       language-pack-ta
language-pack-gnome-bn            language-pack-gnome-vi            language-pack-ta-base
language-pack-gnome-bn-base       language-pack-gnome-vi-base       language-pack-te
language-pack-gnome-bo            language-pack-gnome-xh            language-pack-te-base
language-pack-gnome-bo-base       language-pack-gnome-xh-base       language-pack-tg
language-pack-gnome-br            language-pack-gnome-zh-hans       language-pack-tg-base
language-pack-gnome-br-base       language-pack-gnome-zh-hans-base  language-pack-th
language-pack-gnome-bs            language-pack-gnome-zh-hant       language-pack-th-base
language-pack-gnome-bs-base       language-pack-gnome-zh-hant-base  language-pack-touch-ast
language-pack-gnome-ca            language-pack-gu                  language-pack-touch-bg
language-pack-gnome-ca-base       language-pack-gu-base             language-pack-touch-bs
language-pack-gnome-crh           language-pack-he                  language-pack-touch-ca
language-pack-gnome-crh-base      language-pack-he-base             language-pack-touch-cs
language-pack-gnome-cs            language-pack-hi                  language-pack-touch-da
language-pack-gnome-cs-base       language-pack-hi-base             language-pack-touch-de
language-pack-gnome-cy            language-pack-hr                  language-pack-touch-el
language-pack-gnome-cy-base       language-pack-hr-base             language-pack-touch-en
language-pack-gnome-da            language-pack-hu                  language-pack-touch-es
language-pack-gnome-da-base       language-pack-hu-base             language-pack-touch-eu
language-pack-gnome-de            language-pack-ia                  language-pack-touch-fi
language-pack-gnome-de-base       language-pack-ia-base             language-pack-touch-fr
language-pack-gnome-dz            language-pack-id                  language-pack-touch-gd
language-pack-gnome-dz-base       language-pack-id-base             language-pack-touch-gl
language-pack-gnome-el            language-pack-is                  language-pack-touch-he
language-pack-gnome-el-base       language-pack-is-base             language-pack-touch-hr
language-pack-gnome-en            language-pack-it                  language-pack-touch-hu
language-pack-gnome-en-base       language-pack-it-base             language-pack-touch-id
language-pack-gnome-eo            language-pack-ja                  language-pack-touch-it
language-pack-gnome-eo-base       language-pack-ja-base             language-pack-touch-ja
language-pack-gnome-es            language-pack-ka                  language-pack-touch-ko
language-pack-gnome-es-base       language-pack-ka-base             language-pack-touch-lt
language-pack-gnome-et            language-pack-kde-ar              language-pack-touch-lv
language-pack-gnome-et-base       language-pack-kde-bg              language-pack-touch-ms
language-pack-gnome-eu            language-pack-kde-bs              language-pack-touch-nb
language-pack-gnome-eu-base       language-pack-kde-ca              language-pack-touch-nl
language-pack-gnome-fa            language-pack-kde-cs              language-pack-touch-oc
language-pack-gnome-fa-base       language-pack-kde-da              language-pack-touch-pa
language-pack-gnome-fi            language-pack-kde-de              language-pack-touch-pl
language-pack-gnome-fi-base       language-pack-kde-el              language-pack-touch-pt
language-pack-gnome-fr            language-pack-kde-en              language-pack-touch-ro
language-pack-gnome-fr-base       language-pack-kde-es              language-pack-touch-ru
language-pack-gnome-ga            language-pack-kde-et              language-pack-touch-sk
language-pack-gnome-ga-base       language-pack-kde-eu              language-pack-touch-sl
language-pack-gnome-gd            language-pack-kde-fa              language-pack-touch-sr
language-pack-gnome-gd-base       language-pack-kde-fi              language-pack-touch-sv
language-pack-gnome-gl            language-pack-kde-fr              language-pack-touch-tr
language-pack-gnome-gl-base       language-pack-kde-ga              language-pack-touch-ug
language-pack-gnome-gu            language-pack-kde-gl              language-pack-touch-uk
language-pack-gnome-gu-base       language-pack-kde-he              language-pack-touch-zh-hans
language-pack-gnome-he            language-pack-kde-hi              language-pack-touch-zh-hant
language-pack-gnome-he-base       language-pack-kde-hr              language-pack-tr
language-pack-gnome-hi            language-pack-kde-hu              language-pack-tr-base
language-pack-gnome-hi-base       language-pack-kde-ia              language-pack-ug
language-pack-gnome-hr            language-pack-kde-is              language-pack-ug-base
language-pack-gnome-hr-base       language-pack-kde-it              language-pack-uk
language-pack-gnome-hu            language-pack-kde-ja              language-pack-uk-base
language-pack-gnome-hu-base       language-pack-kde-kk              language-pack-uz
language-pack-gnome-ia            language-pack-kde-km              language-pack-uz-base
language-pack-gnome-ia-base       language-pack-kde-ko              language-pack-vi
language-pack-gnome-id            language-pack-kde-lt              language-pack-vi-base
language-pack-gnome-id-base       language-pack-kde-lv              language-pack-xh
language-pack-gnome-is            language-pack-kde-mr              language-pack-xh-base
language-pack-gnome-is-base       language-pack-kde-nb              language-pack-zh-hans
language-pack-gnome-it            language-pack-kde-nds             language-pack-zh-hans-base
language-pack-gnome-it-base       language-pack-kde-nl              language-pack-zh-hant
language-pack-gnome-ja            language-pack-kde-nn              language-pack-zh-hant-base
language-pack-gnome-ja-base       language-pack-kde-pa
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容