![用户主目录](https://linux22.com/image/1205161/%E7%94%A8%E6%88%B7%E4%B8%BB%E7%9B%AE%E5%BD%95.png)
我的要求是制作一个自定义的 Ubuntu 16.04.5 版本,其中我想要的自定义是添加两个不同的用户,在这两个用户中分别添加一些新文件以及一些新的包或驱动程序,我将使用 apt 或 pip 安装,或者从源代码本身构建(如 OpenCV)。
该定制操作系统预计将用于安装在不同的硬件上,这些硬件可能在主板、RAM 和 HDD/SSD 方面有所不同。
您能给我推荐一些最适合这项任务的软件吗?我也听说过 Cubic,但它能用于创建用户和从源代码构建包吗?或者在一台机器上设置所有设置和包,然后使用 systemback 等工具将其备份为 live CD,这样可以在不同的硬件上运行吗?
编辑:这与任何其他问题都不重复,因为它在自定义 Ubuntu 中添加了用户,并且没有任何答案提到过它。
答案1
这正是 Cubic 所做的……
用户主目录
在 Cubic 中,在/etc/skel
目录内添加通用文件,这些文件应出现在所有新用户的主目录中。每当创建新用户时,此位置的文件都会复制到新用户的主目录中。
例如,如果您希望所有用户的Temp
主目录中都有一个空文件夹,请Temp
在里面创建一个文件夹/etc/skel
。如果您希望所有用户都拥有相同的 Gimp 配置,也请在此处添加。如果您希望所有用户都可以通过右键单击 Nautilus 来创建*.docx
、、或*.pptx
文件,只需在此处添加模板即可。*.xlsx
*.txt
/etc/skel
以下是...的示例布局。
/etc/skel
├── .bash_logout
├── .bashrc
├── .config
├── examples.desktop
├── .gimp-2.8
│ └── sessionrc
├── .kde
│ └── share
│ └── config
│ └── kdeglobals
├── .profile
├── Temp
├── Templates
│ ├── New Document.docx
│ ├── New Presentation.pptx
│ ├── New Spreadsheet.xlsx
│ └── New Text File.txt
└── .tlp
├── Balanced
└── Power Save
您可以将用户配置从正在运行的系统的主目录复制到此目录中。但我会不是推荐这种方法,因为您必须非常小心不要复制用户特定的文件。
用户默认设置
设置默认用户首选项的更好方法是创建一个名为的文件90_ubuntu-settings.gschema.override
并将其放在/usr/share/glib-2.0/schemas/
Cubic 目录中。
以下是示例文件:
[org.gnome.desktop.background]
picture-uri = 'file:///usr/share/backgrounds/warty-final-ubuntu.png'
show-desktop-icons = false
[org.gnome.desktop.screensaver]
picture-uri = 'file:///usr/share/backgrounds/warty-final-ubuntu.png'
[org.gnome.desktop.wm.preferences]
button-layout = 'close,minimize,maximize:appmenu'
titlebar-font = 'Roboto Regular 10'
[org.gnome.desktop.interface]
document-font-name = 'Roboto Regular 10'
font-name = 'Roboto Regular 10'
[org.gnome.shell]
favorite-apps = ['ubiquity.desktop', 'firefox.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.gedit.desktop', 'org.gnome.Terminal.desktop', 'meld.desktop', 'libreoffice-writer.desktop', 'libreoffice-calc.desktop', 'org.gnome.Calculator.desktop', 'org.gnome.Screenshot.desktop', 'gnome-system-monitor.desktop']
(您可以看到正确的键和值正在使用dconf-editor
。另外,查看此答案以了解如何备份你的 Gnome Tweaks 配置到文件)。
然后,使用以下命令编译该模式文件:
glib-compile-schemas /usr/share/glib-2.0/schemas/
所有用户都将拥有您在 中指定的偏好设置90_ubuntu-settings.gschema.override
。
添加新用户
要在 Cubic 中添加新用户,请对要创建的每个新用户使用以下命令:
adduser <user>
新用户将继承您在 中所做的更改/etc/skel
,并且将拥有您在 中指定的默认设置 90_ubuntu-settings.gschema.override
。
安装应用程序
除了使用 安装应用程序之外apt
,您还可以使用 安装下载的软件包dpkg -i <package>.deb
。
下面是使用以下命令安装包的示例pip
:
apt install python3-pip
pip3 install yapf
这些包将在 Cubic 生成的 ISO 中提供。
从源代码编译应用程序
您也可以从源代码编译软件包。只需下载或将源文件复制到 Cubic 中。确保您已安装所有必需的构建工具,然后构建您的软件包。
下面是在 Cubic 内部从源代码编译和定制 Geany 的示例:
apt install debhelper fakeroot build-essential cmake git automake autoconf libtool intltool libgtk-3-dev docutils-common
mkdir ~/Customize
cd ~/Customize
git clone https://github.com/geany/geany.git
cd geany
sed -i 's|FT_00_CM=python |FT_00_CM=python3.6 |g' ./data/filedefs/filetypes.python
sed -i 's|EX_00_CM=python |EX_00_CM=python3.6 |g' ./data/filedefs/filetypes.python
./autogen.sh --enable-gtk3 --disable-html-docs --prefix=/usr
./configure --enable-gtk3 --disable-html-docs --prefix=/usr
make
make install
git clone https://github.com/codebrainz/geany-themes.git
cp ./geany-themes/colorschemes/*.conf /usr/share/geany/colorschemes/
chmod -x /usr/share/geany/colorschemes/*.conf
已编译和安装的应用程序将在 Cubic 生成的 ISO 中提供。
驱动程序
如果您正在安装驱动程序,请务必安装dkms
。以下是安装蓝牙微码驱动程序的示例。我还成功在 Cubic 中设置了 Nvidia 驱动程序。
# Dynamic Kernel Module Support Framework
apt intall dkms
# Broadcom 802.11 Linux STA wireless driver source
apt intall bcmwl-kernel-source
# intel-microcode - Processor microcode firmware for Intel CPUs
# iucode-tool - Intel processor microcode tool
apt intall intel-microcode iucode-tool
此外,根据我的经验,如果您要安装驱动程序,最好不要更改或更新内核 Cubic。这是因为 chroot 环境使用与主机相同的内核,因此有时会为该内核安装驱动程序。