Press "Enter" to skip to content

Month: November 2013

一些Linux srpm源码包下载地址

对于Linux从业者来说,有时候可能会经常找一些.src.rpm格式的源码包,这里提供了几个常见的srpm源码包的下载地址。

http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/
redhat官网的源码包,重要性不言而喻。有些源码包有好几个版本,从低版本到高版本都有。更新的也比较频繁。注意:此目录中的源码包全部下载以后可能会占用28G的容量,下载前要看看本地空间够不够。

http://vault.centos.org/6.4/os/Source/SPackages/
这个更新的不如redhat官方及时。但一个源码包仅有一个版本,暂时还不确定其中源码包的版本是不是跟CentOS发行版里的版本一致。但可以确定的是,更新相对上面的redhat官方较慢。

其它的待补充。如果要批量下载,可以考虑使用wget命令配合以下参数实现批量下载,关于wget的详细用法可以参考wget命令用法简介

wget -r -np -nd --accept=src.rpm http://vault.centos.org/6.4/os/Source/SPackages/
Leave a Comment

Linux Kernel 更新 Patch 方法

在《Linux的patch原理》一文中,本博客讲述了使用patch命令来更新Patch的方法。今天写写正常情况下向Linux Kernel加入Patch的过程。本文实验环境基于CentOS 6.4 64bit。

1,准备工作

安装rpmbuild及相关依赖包,并准备好一个kernel源码

yum install rpm-build
yum install make gcc redhat-rpm-config patchutils xmlto asciidoc elfutils-libelf-devel zlib-devel binutils-devel newt-devel python-devel perl-ExtUtils-Embed bison flex hmaccalc
wget http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-431.el6.src.rpm

2,更新Patch

useradd mockbuild   #rpmbuild默认使用mockbuild用户来执行
rpm -ivh kernel-2.6.32-431.el6.src.rpm
cp zhukun.net.patch rpmbuild/SOURCES  #将写好的patch文件放入SOURCES目录中,重要!
cd rpmbuild/SPECS
vi kernel.spec
Leave a Comment

Linux系统安装程序简介

一,CentOS 6的光盘目录介绍

(1)Packages目录:包含安装所需的所有二进制RPM包。
(2)EFI目录:用于64位的基于EFI的系统引导。其中BOOT目录下的BOOTX64.conf为grub的配置文件,用于显示引导菜单。
(3)TRANS.TBL文件:记录当前目录的列表,用mkisofs的-T参数重新生成,主要是为了长文件名称。
(4).discinfo文件是安装介质的识别信息。.treeinfo文件记录不同安装方式安装程序所在的目录结构,如PXE方式时,内核kernel=images/pxeboot/vmlinuz,根文件系统initrd=images/pxeboot/initrd.img。
(5)isolinux目录:有开机引导系统安装的内核(vmlinuz)及RAM镜像(initrd.img),在引导系统时会载入内存,给系统的安装提供一个Linux安装引导平台,文件夹中还有在不同模式下显示信息的boot.msg文件,splash.jpg是特殊格式的引导过程背景图片(640*480)。安装时这个画面上的引导菜单内容在isolinux/isolinux.cfg文件中指定。按Enter会自动进入图形界面安装模式,若按Esc,会显示”boot: “命令提示符,进入用户交互模式,界面上会有各种模式操作提示。键入”linux text”,会进入文本安装模式。
(6)images目录:包含有各种引导镜像。最重要的是引导第二阶段安装需要用到的镜像文件install.img(CentOS 5中是stage2.img),anaconda程序就在这个镜像文件中。另外还有用于制作微型启动光盘的boot.iso(为节省空间CentOS 6中已经删除了,在CentOS 5中是有的),有可放置于USB或其他大容量可引导介质的VFAT分区上,制作引导工具的镜像diskboot.img(CentOS 5中有),也有用于制作PXE安装方式引导介质的pxeboot文件夹等。

系统安装的两个阶段:

Leave a Comment

定制Linux发行版:向CentOS6安装镜像添加自定义软件包

定制Linux发行版的一个重要步骤,是向安装程序添加自定义的软件包,这里简要记录一下过程。本文的实验环境基于CentOS 6.4 64bit。

首先需要明白一下概念,通常来讲,一个package指一个软件包,一个group里包含了若干个package,一个category里则包含了若干个group。只要明白这点,下面就简单多了。在使用Linux安装光盘安装系统的时候,有一个自定义软件包的步骤。在此步骤中,左侧显示的是category,右则显示的是group。它们之间对应关系记录于repodata/xxx-comps.xml文件中。

repodata/xxx-comps.xml文件的写法:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE comps PUBLIC "-//CentOS//DTD Comps info//EN" "comps.dtd">
<comps>

  <group>
   <id>组1的ID,非数字</id>
   <name>组1的名字</name>
   <description>组1的描述</description>
   <default>是否预安装,true或者false</default>
   <uservisible>是否可见,true或者false</uservisible>
   <langonly>zh</langonly>  #仅在某个语系的安装界面中显示,可选项
   <packagelist>
      <packagereq requires="依赖包" type="conditional">软件包1</packagereq>
      <packagereq type="default">软件包2</packagereq>
      <packagereq type="default">软件包3</packagereq>
   </packagelist>
  </group>
  <group>
   <id>组2的ID,非数字</id>
   <name>组2的名字</name>
   <description>组2的描述</description>
   <default>是否预安装,true或者false</default>
   <uservisible>是否可见,true或者false</uservisible>
   <packagelist>
      <packagereq requires="依赖包" type="conditional">软件包1</packagereq>
      <packagereq type="default">软件包2</packagereq>
      <packagereq type="default">软件包3</packagereq>
   </packagelist>
  </group>
……

  <category>
   <id>分类1的名字,非数字</id>
   <name>将显示在左侧列表里</name>
   <description>将显示在下面的描述栏里</description>
   <grouplist>
    <groupid>组1的ID</groupid>
    <groupid>组2的ID</groupid>
    <groupid>组3的ID</groupid>
   </grouplist>
  </category>
  <category>
   <id>分类2的名字,非数字</id>
   <name>将显示在左侧列表里</name>
   <description>将显示在下面的描述栏里</description>
   <grouplist>
    <groupid>组4的ID</groupid>
    <groupid>组5的ID</groupid>
    <groupid>组6的ID</groupid>
   </grouplist>
  </category>

</comps>
Leave a Comment

Linux系统创建iso镜像文件

Linux系统下创建ISO镜像文件的方法:

dd if=/dev/cdrom of=/root/name.iso
cat /dev/cdrom > /root/name.iso
cp -r /home/user name.iso            #根据目录创建,不具备boot功能
mkisofs -r -o filename.iso /home/user  #根据目录创建,具备boot功能

下面着重介绍一下最后一种方法,mkisofs是Linux系统下用于创建iso镜像的工具。

安装:

yum install mkisofs     (同时适合CentOS 5,6)
yum install genisoimage  (仅适合CentOS 6)

CentOS 6中,mkisofs改了一个名字叫genisoimage,但yum install mkisofs一样可以安装,安装的软件名却叫genisoimage。

Leave a Comment

Linux sed 高级用法实例

Linux 中,sed 可以实现替换或者插入等功能,用法简单归纳一下。注意:本文所有写法都是正确的,不存在错误写法。

1,要替换一些文字时,用”/”把各部分隔开;

sed -i 's/原内容/新内容/g' 文件

注意:原内容可以是一整行,也可以是一行中的某一段。

2,要替换时,如果“原内容”或“新内容”中含有特殊字符(比如”/”或者”#”等),可以使用其它符号把各部分隔开,比如以下几种格式都是正确的

sed -i 's,原内容,新内容,g' 文件
sed -i 's#原内容#新内容#g' 文件
sed -i 's:原内容:新内容:g' 文件
sed -i 's~原内容~新内容~g' 文件

3,要插入新一行内容时,写法:

sed -i '/原行内容/a要添加的新一行内容' 文件

注意:a表示append,后面不需要添加符号。如果“原行内容”没有输入完整,比如只输入了开头一部分,那么新的内容仍将插入下一行。

2 Comments

构建Koji编译服务器(2): Koji Builder端的配置

在上一篇中,我们搭建好了 Koji Server 端,本文开始配置 Koji Builder 端。Koji Builder 端的配置依然需要安装第三方yum源EPEL,安装方法请参考 Koji Server 端的安装过程。

一,koji builder 端的配置

[root@koji ~]# yum install koji koji-builder mock rpm-build

配置文件
/etc/kojid/kojid.conf – Kojid 守护进程配置文件
/etc/sysconfig/kojid – Kojid 守护进程

修改配置文件 /etc/koji.conf,指定证书的位置:

[koji]
server = http://10.152.11.84/kojihub
weburl = http://10.152.11.84/koji
topurl = http://10.152.11.84/kojifiles/
topdir = /mnt/koji
cert = ~/.koji/client.crt
ca = ~/.koji/clientca.crt
serverca = ~/.koji/serverca.crt
Leave a Comment