定制linux
Ⅰ 如何打造自己的 linux 发行版
从头开发一个 Linux 发行版这件事情被称作 Linux From Scratch (LFS)。
在开始之前,我总结了一些有关 LFS 的内容,如下:
1. 那些想要打造他们自己的 Linux 发行版的人应该了解打造一个 Linux 发行版(打造意味着从头开始)与配置一个已有的 Linux 发行版的不同
如果您只是想调整下启动屏幕、定制登录页面以及拥有更好的外观和使用体验。您可以选择任何一个 Linux 发行版并且按照您的喜好进行个性化配置。此外,有许多配置工具可以帮助您。
如果您想打包所有必须的文件、引导加载器和内核,并选择什么该被包括进来,然后依靠自己编译这一切东西。那么您需要的就是 Linux From Scratch (LFS)。
注意:如果您只想要定制 Linux 系统的外表和体验,这个指南并不适合您。但如果您真的想打造一个 Linux 发行版,并且向了解怎么开始以及一些其他的信息,那么这个指南正是为您而写。
2. 打造一个 Linux 发行版(LFS)的好处
您将了解 Linux 系统的内部工作机制
您将开发一个灵活的适应您需求的系统
您开发的系统(LFS)将会非常紧凑,因为您对该包含/不该包含什么拥有绝对的掌控
您开发的系统(LFS)在安全性上会更好
3. 打造一个Linux发行版(LFS)的坏处
打造一个 Linux 系统意味着将所有需要的东西放在一起并且编译之。这需要许多查阅、耐心和时间。而且您需要一个可用的 Linux 系统和足够的磁盘空间来打造 LFS。
4. 有趣的是,Gentoo/GNU Linux 在某种意义上最接近于 LFS。Gentoo 和 LFS 都是完全从源码编译的定制的 Linux 系统
5. 您应该是一个有经验的Linux用户,对编译包、解决依赖有相当的了解,并且是个 shell 脚本的专家。
了解一门编程语言(最好是 C 语言)将会使事情变得容易些。但哪怕您是一个新手,只要您是一个优秀的学习者,可以很快的掌握知识,您也可以开始。最重要的是不要在 LFS 过程中丢失您的热情。
如果您不够坚定,恐怕会在 LFS 进行到一半时放弃。
**6. 现在您需要一步一步的指导来打造一个 Linux 。LFS 手册是打造 LFS 的官方指南。
Ⅱ 自己定制的linux系统没有apt-get,如何安装apt-get包
apt-cache search package 搜索软件包。
apt-cache show package 获取包的相关信息,如说明、大小、版本等。
sudo apt-get install package 安装包。
sudo apt-get install package --reinstall 重新安装包。
sudo apt-get -f install 修复安装。
sudo apt-get remove package 删除包。
sudo apt-get remove package --purge 删除包,包括配置文件等。
sudo apt-get update 更新源。
sudo apt-get upgrade 更新已安装的包。
sudo apt-get dist-upgrade 升级系统。
apt-cache depends package 了解使用该包依赖那些包。
apt-cache rdepends package 查看该包被哪些包依赖。
sudo apt-get build-dep package 安装相关的编译环境。
apt-get source package 下载该包的源代码。
sudo apt-get clean && sudo apt-get autoclean 清理无用的包。
sudo apt-get check 检查是否有损坏的依赖。
Ⅲ 如何制作最简minilinux
自己定制linux系统这个是需要非常了解和理解linux内核和其他系统代码方面知识才能完成的(以下是知识准备):Linux的启动过程原理
initramfs的本质,如何编译内核,制作OpenStack镜像的根本原理
initramfs, 内核,镜像之间的关系
chroot的根本原理,以及网上将linux安装在arm的安卓手机的基本原理
简要说下系统定制的基本流程(步骤):
创建工作目录
使用busybox生成根文件系统中的bin等目录
创建服务启动脚本与inittab文件与fstab文件
创建根文件系统的init脚本(initrc使用linuxrc,而initramfs使用init脚本,所以先删除busybox为initrc生成的默认的linuxrc文件,rm-rf$LINUX/linuxrc),init文件可以是任何ELF格式的可执行性文件,例如如果是一个编译过的C程序也是可以的,记得安装编译c文件要用到的库:sudoyum install -y glibc-static libstdc++-static。
使用chroot在未make内核之前就可以先测试initramfs
构建initramfs,先配置支持Generalsetup -> Initial RAM filesystem and RAM disk (initramfs/initrd)support (默认就是支持的),再将linux内核的CONFIG_INITRAMFS_SOURCE(Generalsetup -> initramfs sourcefile(s))指向这个目录,然后执行make命令内核就会自动构建生成initramfs了(是一个压缩过的cpio档案文件),并且将它链接到内核镜像中。
调试验证。可以使用物理机验证,也可以采用qemu虚机验证。如果使用物理机来验证的话,本来可以直接使用makeinstall命令自动安装,但最好不要这么做,因为它会自动执行updategrub命令来破坏你的grub文件,可以手工做:
initramfs是一个最小化的根文件系统,它的根本目的是为了为切换到新的根文件系统做准备。initrd方式使用pivot_root命令切换到新的根文件系统,然后卸载ramdis,但是initramfs方式由于它是本身就是rootfs(rootfs是ramfs的一个实例)位于内存中,所以它既不能pivot_root,也不能umount,是常驻内存的。
对模块的支持,到目前为止,我们在构建initramfs时还没有涉及内核模块的支持,所用到的硬件驱动程序都是直接编译到内核中。现在我们就看看如何使initramfs支持内核模块。
总结:
整个过程是,initrc或者initramfs都是一个运行在内存的小根文件系统,它有一个叫init的脚本,做完一些准备工作之后,如加载硬件的驱动,然后会切换到镜像所在的新根文件系统上。
Ⅳ 定制LINUX防火墙系统
内核不用说了,自己编译去。
文件系统可以看嵌入式 initrd 的制作,这种嵌入式 initrd 都很小。而且你也不需要启动什么东西,直接启动防火墙也不需要太多的支持程序。自己纯手工做 initrd 启动脚本直接启动防火墙程序应该非常小。不过这要看你的防火墙程序的依赖问题了。一般来说这种防火墙系统(已经有了……)最小的是一张软盘。1.44 的那种软盘,当然使用了压缩技术。总的解压缩体积好像不到 4M 。
反正只要是能自己制作一个足够小的文件系统能运行你的防火墙就行了,之后有很多制作 liveCD 的程序,把这个系统做成 liveCD 就行了。如果你确实会 linux ,那么根本没难度,而且根本不需要问这个问题。centos 反正是非常大,做这种超小型的定向专用系统,基本都应该是选择 LFS 来完全掌控自己的系统。不然就去剪裁 CentOS 这种全功能的服务器系统,不过这东西最小化安装都超级大。根本没有去剪裁到如此小的最起码的基础。
Ⅳ 如何定制自己的linux内核
一 前言
为什么要编译自己的内核?这可能会有各种不同的答案,列举如下:
1 为了研究,学习内核源码。
2 为了支持新的硬件或者打开某项内核功能。
3 升级内核到更新版本。
4 按自己的要求定制和优化内核功能。
如此种种...
折腾不需要理由,这里我就不在多说,下面直接进入主题。
编译方式
编译内核有多种方式,从kernel.org下载选择下载需要的版本的内核源码,
如:linux-2.6.32-rc1.tar.bz2,下载内核源码到/home/user/目录,进入下载目录,解压压缩包。
#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2
二 准备编译环境
开始之前,首先确认下面软件包已经安装(编译中标普华4.0时,直接全部安装CD3可保证此条件)。
* rpmdevtools
* yum-utils
fedora系统可以使用如下命令安装:
#yum install yum-utils rpmdevtools
1. 生成一个rpmbuild命令工作所需的目录树,下面命令可以完成该操作,也可以手动建立目录树。
命令建立:
#rpmdev-setuptree
此命令将会在/usr/src/rpmbuild/目录下生成如下目录结构(如果此位置没有,则可能在当前用户目录下).
# tree /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
上面部分是rpmbuild的环境建立。rpm
3. 安装内核源码包需要的依赖组件(在此可以跳过此步操作)
su -c 'yum-builddep kernel-<version>.src.rpm'
4.安装内核源码到系统,默认目录在/usr/src/neoshine:
rpm -Uvh kernel-<version>.src.rpm
三 配置内核(生成config配置文件)
下面将介绍如何解开源码包,并修改,配置和重新打包源码
1. 解开源码包并打上所有的补丁到BUILD目录
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec
kernel源码将在这里找到:
/usr/src/neoshine/rpmbuild/BUILD/kernel-<version>/linux-<version>.<arch> directory
配置内核源码
1. 进入内核源码:
cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 复制/boot/config*配置文件到源码目录下,此config文件也可以是已经配好或者其他地方备份的kernel配置文件:
cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先检查kernel配置中新增的选项:
make oldconfig
4. 定制内核功能,关闭initrd支持选项,执行图形化内核配置工具:
make menuconfig
注:在generic setup选项下找到initial RAM system and RAM disk(initramfs and initrd) support 项,取消编译。同时确保跟文件系统对应的驱动和系统所在存储器对应的驱动都已经编译到内核(否则会无法启动系统).
5. 在.config文件第一行改为下面内容(注意:没有此行时,后面的编译会报错)
# i386
6. 拷贝.config到SOURCES/:
cp .config ../SOURCES/config-$arch
四 编译新内核
1. 下面开始准备编译新的内核包
打开SPEC/kernel.spec
vim SPEC/kernel.spec
改变下面行内容,可以定制自己的内核扩展名(如fc10之类):
%define buildid .<自己内核的小版本名>
下一步将生成一个新内核的rpm包,此过程需要编译内核源码包
使用下面命令生成新的内核源码包
rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec
参数说明:bb表示只编译二进制包,即不生成源码包,without debuginfo 表示没有调试信息,
target=`uname -r`表示生成对应当前平台的内核包
如果上面的命令成功执行完成,那么会在BUILD/i686目录下生成新的内核安装包
五 安装新内核
rpm -ivh kernel-$ver-$arch.rpm
此步操作会自动安装内核到boot目录下,安装对应内核模块到/lib/moles/目录下,并且生成新内核对应的grub引导菜单。
修改grub引导菜单为以下格式
title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)
注意,此处不要使用uuid指定跟文件系统(可能会无法挂载根分区而导致内核死机),也不要再加和显示相关的参数(内核不支持对应设置时,只会看到一个黑黑的屏幕)。
至此一个禁用initrd的新内核配置安装完毕!
Ⅵ 如何定制Linux Mint 15 Cinnamon
与其他任何发行版一样,有些用户喜欢Cinnamon,另一些用户则认为其界面过时了。我要说,你喜欢啥,就用啥。毕竟,这是自由软件和自由软件社区倡导的理念之一。目前我在自己的主计算机上使用KDE,但是最新版的GNOME 3(GNOME 3.8)问世后,我打算改用GNOME外壳桌面,使用几个插件来进行定制。自由万岁!这就引出了这篇文章的主题:如何定制Linux Mint 15 Cinnamon。要定制的方面不是太多,但如果我要在主计算机上使用Cinnamon桌面,这些变更却... [详细]
Ⅶ 自己定制linux系统,最好的方法是什么
自己定制?
用 DVD 安装盘装,而不是用 livecd 装。最好的选择是最小化网络安装。
精神不正常的可以自己 LFS 一个系统。略微正常点的可以用 Gentoo 。
Ⅷ 如何定制Linux Mint 15 Cinnamon
与其他任何发行版一样,有些用户喜欢Cinnamon,另一些用户则认为其界面过时了。我要说,你喜欢啥,就用啥。毕竟,这是自由软件和自由软件社区倡导的理念之一。目前我在自己的主计算机上使用KDE,但是最新版的GNOME 3(GNOME 3.8)问世后,我打算改用GNOME外壳桌面,使用几个插件来进行定制。自由万岁!这就引出了这篇文章的主题:如何定制Linux Mint 15 Cinnamon。要定制的方面不是太多,但如果我要在主计算机上使用Cinnamon桌面,这些变更却又是我需要进行的变更,以便桌面适合我使用计算机的方式。1. 禁用热区(Hot Corner):我在KDE和GNOME 3上遇到的最烦人的功能特性之一就是热区(Hot Corner)了。我要是将鼠标移来移去,桌面看起来就完全不一样。怎么回事?原来鼠标光标移到了热区。在Linux Mint 15 Cinnamon中,热区位于桌面的左上角。要是你与我一样,无法忍受热区,下面是如何禁用它的办法。从Cinnamon的Settings(设置)管理器,点击Hot Corner(热区)。在默认情况下,热区在桌面的左上角被启用。而默认效果是Expo(展示)模式。想禁用热区,只要从下拉式菜单中选择Disabled(禁用)。这样就可以搞定热区。2. 将Expo(展示)和Scale(缩放)等小应用程序添加到面板:虽然我觉得热区很烦人,但是它触发的效果实际上很有用。这种效果即Expo模式可以缩小,显示系统上的所有工作区或虚拟桌面。默认情况下,有两个工作区。另一个模式是Scale(缩放),它可以缩小,显示目前工作区中打开的所有窗口。想进一步控制展示和缩放模式何时被激活,我觉得更好的办法是,将Expo和Scale这两个小应用程序添加到面板。那样一来,我只要点击某个小应用程序,就可以触发相应效果。想将小应用程序添加到Cinnamon面板,鼠标右击面板,然后选择Add applets to the panel(将小应用程序添加到面板)。Applets(小应用程序)窗口应该会打开。寻找Expo(展示)小应用程序。选择它,点击Add to panel(添加到面板)按钮。针对Scale(缩放)小应用程序,重复步骤即可。想从面板移除某个小应用程序,别忍不住点击Restore to default(恢复至默认值)按钮。这会清除你之前对面板进行的任何更改。想清除某个小应用程序,鼠标右击它,然后选择Remove from panel(从面板删除)。这是Expo(展示)模式被触发后呈现的样子。Scale(缩放)模式被触发后,呈现一样的桌面。3. 将Workspace(工作区)切换器小应用程序添加到面板:Expo和Scale模式的视觉效果很眩。比如说,Scale模式为你提供了你已经可以从任务管理器能够访问的效果。Expo模式复制了Workspace(工作区)切换器的一项特性,不过它增添了一项功能。如果将Workspace切换器小应用程序添加到面板,那么只要点击一下鼠标,就可以在虚拟桌面之间自如切换。想将该小应用程序添加到面板,重复刚才添加Expo和Scale小应用程序的同一步骤即可。在我的那台测试计算机上,我在面板上有这三个小应用程序。完全为我提供了许多的选项。除了本文中给出的自定义设置外,你还可以运用更多的设置,以便让这个桌面符合你平时使用桌面的方式。Cinnamon的Settings(设置)管理器有许多模块可以帮助你,花点时间好好探究这些模块吧。
Ⅸ 为什么没有一款Linux定制版取代Windows桌面版
Linux做出的发行版很多,但是要维持一个生态比较难。国产的Deepin做的还不错,兼容了大部分日常软件,办公上网,聊天看电影基本没有问题,使用也比较方便,界面类似macOS,但是像游戏和专业软件,本身软件就有很强的排斥性,需要各种依赖库,比如.net系列支持库,有些东西本身就是微软提供开发的,不会到Linux系统上。而且用户基数不大,也导致桌面软件开发商不会有太大决心去开发Linux版本。不过就国内的情况,如果当下政治局面持续,那么迟早国产系统上马,用户基数不是问题,国产系统一般都基于Linux开发,无论有多少发行版os出来,软件商兼容也不是问题,生态迟早会好的