`

漫谈Linux系统的二次定制

 
阅读更多
拥有一个自己的Linux系统从内核到应用程序的定制这个对于使用Linux的用户和众多的Linux玩家来说在目前的Linux发展的技术成熟度下面已经不是梦想,完全是可以通过通俗的技术条件实现;Linux从开始就逐渐的分化为针对服务器环境应用的server 版本,这个版本基本上是因命令行方式与管理员进行交互,Linux的另外的一个重要的应用环境就是Desktop版本,这个版本完全以图形化的方式与使用者进行全部的鼠标点击操作;
Linux发行版本没有提供针对具体应用或服务的功能上的定制的版本,这个是很多的Linux用户需要反复的进行相同的操作配置,而通过Linux版本的定制可以便捷的在Linux主机安装完成后就可以直接使用某个选择或者是光盘中定制的服务的全部功能 ,无需二次的干预和配置操作;
当然能够实用的到的支持 二次定制的方式,一个是基于Desktop的 remaster 操作,这个可以将全部的环境进行iso打包组装,然后释放到新的磁盘上使用;一个是基于Server版本的方式实现;
下面的问题地址是现在的这个项目的原始ideas,大家可以参考一下
http://linux.chinaunix.net/bbs/thread-1095757-1-6.html独辟蹊径网络安装系列之Redhat衍生版重构初探[09年3月刊] 
定制化的版本有很强的实用性,针对特定的应用场合使用,这个定制的方向应该是很多做SA的成长的过程。目前开源社区中针对Centos的定制应用到语音、邮件、监控等多个方面。
而相对e师傅多功能服务器试用http://bbs3.chinaunix.net/thread-1503543-1-1.html 活动链接
完全可以通过定制Centos实现全部的功能,通过一张安装介质的方式在不同的机器上实现此类服务的定制安装,安装后就可以直接使用。
这个不是标题党,完全可以实现的,而且定制后的centos 可以按照到任何一个pc上面或者是服务器上面(小型机除外)

选择定制的centos 5.3的系统
整合一套完全的基于yum 源的 支持 主流的支持ShopEX网上商店系统、ECShop网上商店系统、Discuz!论坛系统、ECMall电子商城系统、Moodle在线教学平台、SupeSite门户系统、X-Space博客系统、SupeV影视博客系统、C3CRM客户关系管理、PpExam在线考试平台、UCenter HOME社会化网络(SNS)软件、UCenter用户中心、项目管理工具Collabtive 运行环境的LAMP 或者是LEMP的结构,同时可以整合好上述系统的最新版本;

对于邮件系统可以直接将那个什么iredmaill整合进去 或者是简单的机遇postfix mysql 的邮件方式做集成,放上一个webmail 的合成 或者是extmail 也是可以作为选择的;

共享上网 这个相对linux是非常简单的 建议一个iptables的脚本 使用tc 做流量控制 

同时可以使用 openldap做为sso的基础

NND 这个是不是已经超乎想象了

之前的那个pa什么go的 也是如此 呵呵

上面描述的  也可以再Ubuntu中完全实现
当然可以将操作系统的 issue修改 可以定制一个内核 (这样更加的有档次 OO)

e师傅多功能服务器试用 从描述上看是没有兼顾到开发应用
通过定制centos 整合cvs cvn 可以为开发提供源码管理 整理Bugzilla 可以进行BUG跟踪
同过定制系统是现在的经济环境下 很好的选择
同时也可以实现开源的存储解决方式


Linux系统的定制既包括server 具体的应用服务的安装设置,也涵括有Desktop的使用体验的设置。

这些是目前的一些方向性的畅谈。

http://linux.chinaunix.net/bbs/viewthread.php?tid=1061374
此文章是Linux部署方式系列文章中的第二部分,探讨开源社区的热点Debian/Ubuntu的所特有的软件源问题,以及实现网络安装方式的独特之处。所谓Debian/Ubuntu软件源就是一个应用程序安装库,很多很多的应用软件都在这个库里面。可以是网络服务器,是光盘,甚至是硬盘上的一个目录。作为Debian系的Ubuntu,继承了Debiandebapt系统,只要设定好软件源,就能很方便的安装软件了以及实现从网络安装Debian/Ubuntu系统本身。从实现的原理上可以将DVD/CD的介质使用dpkgapt-move等命令工具结合本地的httpftp服务可以实现一个本地的源,当此种方式生成的源多数能够完成软件安装工作,对于Debian/Ubuntu基于互联网的实时更新的特性就不能够很好的发挥出来,重要的一点是对从PXE引导的网络安装支持很不理想,对于维护数量众多的Debian/Ubuntu服务器来说不是很好的选择。

本文将讲述基于同步镜像Debian/Ubuntu某个版本一个官方的镜像的方式,实现一个基于局域网本地的Debian/Ubuntu源的网络安装部署Debian/Ubuntu服务器的方式,当然并不是全部镜像,故此只能实现镜像版本的网络安装,此方式已经足够满足网络安装的要求。
Debian官方站点 http://www.debian.org
Ubuntu官方站点 http://www.ubuntu.com 
开始工作工作之前先了解Debian/Ubuntu发行版本的渊源,Debian的开发代号来源于电影《玩具总动员》,而脱胎于DebianUbuntu,其开发代号同样很有意思。除前两个版本之外,开发代号命名按字母顺序排列,在动物名之前按照双重字母再选个形容词:Warty Warthog, Hoary Hedgehog, Breezy Badger, Dapper Drake, Edgy Eft, Feisty Fawn, Gutsy Gibbon, Hardy Heron.
表:Debian/Ubuntu发行版本信息,按照发行的先后顺序列出

Debian发行版 Ubuntu发行版
Debian GNU/Linux 2.0 (hamm)  Ubuntu 4.10 - Warty Warthog(长疣的疣猪)
Debian GNU/Linux 2.1 (slink) Ubuntu 5.04 - Hoary Hedgehog(灰白的刺猬)
Debian GNU/Linux 2.2 (potato) Ubuntu 5.10 - Breezy Badger(活泼的獾)
Debian GNU/Linux 3.0 (woody) Ubuntu 6.06 - Dapper Drake(整洁的公鸭)
Debian GNU/Linux 3.1 (sarge) Ubuntu 6.10 - Edgy Eft(急躁的水蜥)
Debian GNU/Linux 4.0 (etch) Ubuntu 7.04 - Feisty Fawn(坏脾气的小鹿)
下一代 Debian 正式发行版的代号为 lenny Ubuntu 7.10 - Gutsy Gibbon(勇敢的长臂猿)
  Ubuntu 8.04 - Hardy Heron (耐寒的苍鹭)
  Ubuntu 8.10 -Intrepid Ibex(无畏的北部高地山羊)
  Ubuntu 9.04-Jaunty Jackalope(活泼的怀俄明野兔)

当访问Debian/Ubuntu的官方源镜像站点是会在dists/目录下看到发行版本代号的目录名称。镜像Deiban/Ubuntu的源中的某个版本也是依据此目录中的代号为依据的。
当前Debian全球镜像站点清单http://www.debian.org/mirror/list
当然Ubuntu全球镜像站点清单https://launchpad.net/ubuntu/+archivemirrors

获知这些信息对于镜像某个发行版本或者是修改系统的sources.list 都是可以自行决定的,当然建立了一个自己的源将会更加的便利。补充一下Debian/Ubuntu的镜像都有Archive MirrorUbuntu releases之分,前者就是本文所说的软件源,或者就是通常所说的ISO格式的发行光盘介质。


图:浏览Debian软件源dists目录http://air.hanzubon.jp/debian/dists/


图:浏览Ubuntudists目录http://de.archive.ubuntu.com/ubuntu/dists/

镜像一个Debian/Ubuntu源的方式有很多,经过尝试排除了apt-mirror debmirror方式,选择rsync方式这个是在Debian/Ubuntus上都是适用的镜像发行版的方法。笔者在测试过程中适用的带宽仅为4MB,镜像Debianetch发行版本用时大约是10天左右,镜像Ubuntuintrepid版本用时大概2天时间,磁盘空间都是占用非常大的,如果没有500GB的磁盘容量和大于10MB的线路连接建议还是不要轻易尝试。目前无论是Debian还是Ubuntu官方站点都没有名且说明同步某一个或几个特定版本的方式,通过rsync进行同步可以在使用的时候首先要访问进行站点的dists目录,根据该站点使用--exclude排除具体的版本,格式:--exclude=*“发行版本的代号,如intrepid”* --delete-excluded 把这个加入你的参数中即可(注意有两个星号,不能少呀)。以下是测试过的Debian/Ubuntu的同步脚步,进攻参考。
表:Ubuntu rsync同步参考脚步
#!/bin/bash
HOST=de.archive.ubuntu.com
MIRROR_ROOT='ubuntu'
LOCAL="/usr/src/o"
OPTIONS="-vzrtopglK --progress --delete --delete-excluded"
EXCLUDE="--exclude daily-installer-powerpc/ \
--exclude installer-powerpc/ \
--exclude binary-powerpc/ \
--exclude upgrade-powerpc/ \
--exclude disks-powerpc/ \
--exclude *_powerpc.udeb \
--exclude *_powerpc.deb"

rsync $OPTIONS $EXCLUDE $HOST:MIRROR_ROOT $LOCAL


表:Debian rsync同步参考脚步
#!/bin/bash
HOST=ftp.jp.debian.org
SRC='debian'
DST="/usr/src/o"
OPTIONS="-aPS --delete-during --delete-excluded"
EXCLUDE="--exclude *alpha/ --exclude *_alpha.deb --exclude Contents-alpha* \
--exclude *arm/ --exclude *_arm.deb --exclude Contents-arm* \
--exclude *hppa/ --exclude *_hppa.deb --exclude Contents-hppa* \
--exclude *ia64/ --exclude *_ia64.deb --exclude Contents-ia64* \
--exclude *m68k/ --exclude *_m68k.deb --exclude Contents-m68k* \
--exclude *mips/ --exclude *_mips.deb --exclude Contents-mips* \
--exclude *mipsel/ --exclude *_mipsel.deb --exclude Contents-mipsel* \
--exclude *powerpc/ --exclude *_powerpc.deb --exclude Contents-powerpc* \
--exclude *s390/ --exclude *_s390.deb --exclude Contents-s390* \
--exclude *sparc/ --exclude *_sparc.deb --exclude Contents-sparc* \
--exclude *sarge* --exclude *Debian3* --exclude *oldstable* \
--exclude *.iso \
--exclude *~ \
--exclude *.orig.tar.gz --exclude *.diff.gz --exclude *.dsc"
rsync $OPTIONS $EXCLUDE $HOST:SRC $DST
将所需要的发行版本同步完成后,只需要在现有的apachedocumentroot目录下面建立一个软连接如:ln -s /usr/src/o /var/www/html/ubuntu 就可以通过浏览器访问到本地源。当然也可以使用ftp的方式,ftp在穿越NAT以及防火墙的时候的策略问题,所以不推荐ftp模式。
以下将讲解,在windows环境测试Debian/Ubuntu网络安装过程,进行网络安装需要选择的适合的内核引导文件initrd.gzlinux ,均需要下载本地镜像的netboot.tar.gz
下载Ubuntu的网络引导文件http://192.168.1.1:11580/ubuntu/dists/intrepid/main/installer-i386/current/images/netboot/boot.img.gz
下载Debian的网络引导文件:http://192.168.1.1:11580 /debian/dists/etch/main/installer-i386/current/images/netboot/netboot.tar.gz
将下载的netboot.tar.gzwindows系统的C盘的根目录下面,(如果是启用PXE安装只需要将netboot.tar.gz文件解压到/tftpboot目录中,此内容将在后续文章讲解)确认系统已经安装grub for dos然后编辑menu.list内容如下:
title ubuntu intrepid net install
root (hd0,0)
kernel /linux root=/dev/ram ramdisk_size=256000 devfs=mount,dall
initrd /initrd.gz
boot
这样重新开机引导就会进入Debian/Ubuntu引导过程

图:Ubuntu intrepid net install Grub 引导选项
debian/Ubuntu版本的渊源其网络引导过程极为类似,但Ubuntu提供了更多衍生版本的安装选择如Xubuntu desktopKubuntu desktopEdubuntu desktopMyehuntu Ubuntu mobileUbuntu MID editionBasic Ubuntu Server等众多的选择。故此本文的安装过程以演示Ubuntu intrepid版本网络安装的过程为主。
在系统初始化引导结束后将进入语言选择,并开始设置安装的选项与参数。

图:语言选择,本文选择中文(简体)

图:语言选择,本文选择中国


图:语言支持提示,选择否继续图:键盘选择,时候使用自动检测键盘类型,选择否继续



图:键盘选择提示,选择USA

图:键盘选择提示,选择USA

图:网络检测,网卡识别,无DHCP,选择继续执行下部手动配置

图:网络检测,选择手动进行网络设置(这个是必须的)

图:设置IP地址及掩码信息

图:设置网关信息

图:设置DNS服务器信息

图:设置主机名称,默认为ubuntu或者debian

图:设置域名信息,如果局域网没有本地DNS默认为空
以上步骤完成了Debian/Ubuntu安装的基本设置,下一步骤就是要设置使用本地的已经建立好的软件源,进行必要安装选项设置以及必要的文件复制和系统默认配置。以上步骤使用的是网络安装的引导内核,在设置完毕软件源将会下载基本的系统到本地运行。

图:选择Debian/Ubunut安装源,选择手动输入信息

图:输入进行服务器的IP地址和端口,默认80端口无需输入

图:输入镜像目录名称,默认为/debian//ubunut/ 请将最后的/符合删除

图:设置web代理服务器信息
此步骤如果看到的信息是不全的或者是以、空格等符号显示,说明镜像制作的有问题,需要重新同步。设置好系统的分区后就开始网络安装过程,观察镜像服务器的网卡流量将会增长较大。

图:设置系统分区

图:分区格式化

图:安装基本系统

图:安装基本系统

图:安装基本系统

图:查看到系统安装日志信息 /var/log/syslog
在安装过程,可以通过ALT+F2切换到其它终端窗口查看系统的安装日志信息,可以通过此日志判断问题所在。日志查看命令tail -f /var/log/syslog

图:设置用户和密码,这就是有名的sudo的开始

图:扫描镜像站点,准备下一步的软件配置

图:自动更新选项(根据网络状况选择)

图:软件选择

图:软件选择
上述两图是DebianUbuntu版本明显区别的地方,总体感觉Ubuntu的选择会比Debian有很多的便利。如果不使用软件源安装是看不到如此多的软件选择的。

图:软件安装过程

图:设置grub提示,选择是

图:安装Grub过程

图:设置系统时间,完成最后安装配置

图:Debian/Ubuntu安装完成

图:启动过程中的Ubuntu Logo

图:工作中的Ubuntu桌面
到此Debian/Ubuntu通过局域网本地的源进行安装的过程已经全部结束。从整个过程中看,主要问题点在于镜像的同步实现,如果没有足够的带宽这个工作就没有保障性,就会出现失败问题。如果企业使用Debian/Ubuntu作为服务器版本合理的方式就是要在局域网内部配置一个定期同步的本地源,这个方式希望对Linux用户能够有所提示和启发,欢迎就相关问题进行交流。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics