使用自定义用户、文件和包创建自定义 Ubuntu 发行版

夸姆鲁兹

我的要求是制作一个自定义 Ubuntu 16.04.5 版本,其中我想要的自定义是在这两个用户中的每一个中添加一些新文件和一些新包或驱动程序,我将使用 apt 或 pip 或将从源代码本身构建(如 OpenCV)。

此自定义操作系统预计将用于安装在不同的硬件上,这些硬件可能因主板、RAM 和 HDD/SSD 而异。

你能给我推荐一些最适合这个任务的软件吗?我也听说过 Cubic,但它是否适用于从源代码创建用户和构建包?或者使用所有设置和包设置一台机器并使用一些工具(例如 systemback 等)将相同的内容与 live CD 备份将在不同的硬件上工作?

编辑:这与任何其他问题都不重复,因为它在自定义 Ubuntu 中添加了用户,并且没有任何答案提到它。

辛格

这正是 Cubic 所做的......

用户主目录

在 Cubic 中,添加通用文件,该文件应出现在目录内的所有新用户的主/etc/skel目录中。每当创建新用户时,此位置的文件都会复制到新用户的主目录中。

例如,如果您希望所有用户在他们的Temp主目录中都有一个空文件Temp夹,请在/etc/skel. 如果您希望所有用户对 Gimp 具有相同的配置,也可以在此处添加它。如果你希望所有用户必须创建选项*.docx*.pptx*.xlsx,或者*.txt通过右键单击在Nautilus文件,只需在此处添加的模板。

这是一个示例布局/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 环境使用与您的主机相同的内核,因此有时会为该内核安装驱动程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Ubuntu 14.04上构建基于自定义XFCE的Ubuntu Mini Remix发行版(14.04)

“ Ubuntu OpenStack:规范发行版”和普通的旧版Ubuntu Openstack发行版之间的区别

命名自己的自定义发行版时,我需要在哪里更改“ Ubuntu”?

我可以以编程方式创建(UBUNTU)发行版吗?

如何基于Ubuntu创建自己的Linux发行版?

如何创建自己的发行版并包含自定义内核和软件包?

如何在Ubuntu 14.04 Unity和基于Ubuntu的发行版中升级Nautilus?

我在哪里可以获得 Ubuntu 发行版/发行版(例如仿生)提供的所有虚拟包的列表?

因为什么 Ubuntu 版本/发行版是 apt 创建的?官宣在哪里?

如何在基于Ubuntu的发行版中创建虚拟音频输出并将其路由

如果Android是Linux发行版,那么Ubuntu为什么不支持.apk文件?

如何双启动Ubuntu和另一个Linux发行版?

Ubuntu和其他发行版卡在启动屏幕上

如何编写在Ubuntu和其他发行版中显示的状态图标?

我可以删除Unity和Ubuntu-Desktop并仍然获得发行版更新/升级吗?

在开发机上使用Eclipse Oxygen的Ubuntu 16.04上-我应该使用发行版Tomcat吗?

如何在Ubuntu或派生发行版中继续使用GNOME2?

如何检查我的 Ubuntu 发行版使用的底层 Debian 版本?

Canonical Landscape可以与Ubuntu发行版一起使用吗?

如何在其他发行版中使用ubuntu-sdk

Ubuntu touch的Bq发行版中使用的构建版本是什么?

其他基于Debian的发行版可以使用Ubuntu的存储库吗?

Ubuntu会成为发行版吗?

创建与C ++ 11随机标头兼容的自定义发行版

如何清除/清除我的自定义发行版不需要的文件或缓存

使用实时Linux或自定义发行版作为备份?

在Android Studio中使用自定义名称格式构建发行版APK

linux发行版的定义是什么?

新用户的Linux发行版