|
这次来讲讲憨牛包管理器的对包风格的管理。
风格,我这么称呼它,它是这个包管理器自创的重要机制之一,因为最初的设计思路就是为了能够让用户选择自己喜欢的风格来安装包,而不是大家都一模一样的系统。
通常情况下,每个源都有一个默认的风格,即default,用户可以根据自己的需要选择源中提供的非默认风格,可以通过olive.conf来指定使用的风格
下面用一些例子来说明:
对于某个包,比如内核,有些人希望自己安装的系统内核是一个“纯净”的内核(也就是从内核的官方网站上下载的没有安装任何补丁的内核),而有些人则希望这个内核已经打好了一些常用的补丁,比如unicon、bootsplash等,那么我们可以把打上补丁的内核作为默认的风格,而“纯净”的内核则把风格名取为clear,这样对于不同的人可以通过olive.conf的设置,来让系统自动按照选择的风格来安装包。
olive.conf中设置风格
Style:default(表示使用默认的风格)
Style:clear/default(表示,优先运用clear风格,当某个包不存在clear风格的情况下使用默认风格)
风格也可以用于对包中的各种附加包有选择性的安装,比如对于zh这样风格的包,那么在安装时将自动安装上对中文化的支持,而如果选择了en这样风格的包,则很可能安装的包将不安装中文部分。
对于安装的内容而言也可以通过风格来定制,前面已经介绍过包管理器中的虚拟包的概念,那么我们假定把虚拟包设计成有多种风格的包,那么就可以实现不同的风格安装出完全不同风格或用途的系统来,比如对于一个base包,默认风格中没有加入gcc编译器,那么如果使用default的风格安装,则如不用户指定安装gcc包,则gcc包将不会进入目标系统中,但如果我是一个程序员,我需要我的系统中默认就安装好了各种编写程序的软件,那么也许我们可以为base包设计一个program的风格,这样应用该风格来安装系统的时候则自行将gcc、gdb等编写和调试程序需要的包一并安装上,当然我们也可以为C/C++或者是Java程序员设计出完全不同的系统风格,以保证这些用户安装系统的时候可以很轻松的设置一下,那么以后包管理器将人性化的为这些用户安装上他们最需要的部件,而与他们没什么关系的包则不会被安装。
默认风格的base:base-edit/base-command/base-libs/base-common
program风格的base:base-edit/base-command/base-libs/base-common/default-gcc
Java风格的base:base-edit/base-command/base-libs/base-common/java
那么如果我们将系统的风格概念再扩展一下会如何呢?
想制作自己的LiveCD的朋友一定不少,那么如何利用憨牛包管理器来轻松实现呢?
这里我通用风格机制来解决这个问题。
我们可以定制出一个LiveCD风格的一组包,这些包在安装后将形成一个LiveCD所必须的基本环境,在这个基础上,我们就可以在其上安装默认风格甚至是其它风格的包来形成我们需要的LiveCD的所有功能,最后将这些包直接安装好那么就形成了一个LiveCD了,对于扩展或者修改LiveCD中的功能就变的非常的方便。
olive.conf中Style部分的设置是非常简单的:
Style:风格1/风格2/..../风格n
一个潜规则:最好请在风格中出现default风格,以便在指定风格不存在的包应用默认风格,以保证系统的完整性。
风格与体系:
对于不同风格的包,可以有自己不同体系的优化包,不同风格之间的体系互不影响。
比如:对于default风格的包,针对不同体系编译了i686、i586以及i386三种不同体系的优化包,而对于shy这样风格的包也许只编译了针对i686体系的优化包,那么在选择shy风格的情况下将只能选择i686的包,这样有可能导致在不能使用i686包的机器上出现问题,解决的方法自然是为shy提供其它体系的包,或者将默认体系用i386,这样就可以在兼容i386的机器都能顺利运行。
风格的运用是比较灵活的,渗透在憨牛包管理器的很多方面,如果运用得当将使得整个系统的安装变的不那么死板,即使使用相同的源也可以安装出风格截然不同的系统,比如要安装一个桌面系统,那么在风格的不同设置后,可能用相同的指令却可以分别安装出了gnome和KDE,即使对于KDE,我们如果选择了不同的风格,那么使用同样的安装指令,却安装出了Mac和Windows这样明显不同的桌面样式。
目前所提到的风格是概念和使用方式都已经在Olive内部测试版中实现,只是目前不同风格的包还没有提供几个,只在base包上提供另两种略有区别的风格。
在包管理器(下),将介绍憨牛包管理器中另一特色部分——包的表达方式 |
|