1. tar.gz和tar.bz2的包 怎么转换成 rpm的包
我觉得应该有tar2rpm之类的工具,可是我一般都是用RPMBuilder来打包的,它功能就是打包已经存在的文件。
这样你需要把tar.gz类似的源码包,直接解压、编译生成最终的目标文件,然后用RPMBuilder按下边的步骤简单操作就好了:
RPMBuilder,开源C++的,基于linux。很easy:
>rpmbuilder # 执行第一次是为了生成RPMBuilder.xml配置文件
>vi RPMBuilder.xml # 简单配置一下
>rpmbuilder # 开始打包
搞定!
去下边的link去下载rpm包,安装,直接用~
Links:
https://sourceforge.net/projects/xml2rpm/files/
2. 如何编译内核及制作RPM包
前言
要编译自内核能各种同答案列举:
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-.src.rpm'
4.安装内核源码系统默认目录/usr/src/neoshine:
rpm -Uvh kernel-.src.rpm
三 配置内核(config配置文件)
面介绍何解源码包并修改配置重新打包源码
1. 解源码包并打所补丁BUILD目录
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec
kernel源码找:
/usr/src/neoshine/rpmbuild/BUILD/kernel-/linux-. 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. 拷贝.configSOURCES/:
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新内核配置安装完毕
3. 如何从Linux源码创建RPM或DEB包
在Linux系统操作中,因为某些原因而想要直接从源码创建安装的软件包,下面就如何在Linux系统下从源码创建RPM或DEB包,以便将来可以更容易的卸载程序。
如果已经从它的源码运行“make install”安装了linux程序。想完整移除它将变得真的很麻烦,除非程序的开发者在Makefile里提供了uninstall的目标设置。否则必须在安装前后比较系统里文件的完整列表,然后手工移除所有在安装过程中加入的文件。
这时候Checkinstall就可以派上使用。Checkinstall会跟踪install命令行所创建或修改的所有文件的路径(例如:“make install”、“make install_moles”等)并建立一个标准的二进制包,让能用发行版的标准包管理系统安装或卸载它,(例如Red Hat的yum或者Debian的apt-get命令)。已知它在 Slackware、SuSe、Mandrake 和 Gentoo 上也工作很好,请参考其官方文档。
在这只集中在红帽子和Debian为基础的发行版,并展示怎样从源码使用Checkinstall创建一个RPM和DEB软件包
在linux上安装Checkinstall
在Debian及其衍生发行版上安装Checkinstall:
# aptitude install checkinstall
在红帽子的发行版上安装Checkinstall,你需要下载一个已经打包好的Checkinstall rpm包(例如:从 http://rpm.pbone.net/找到),不过它已经从Repoforge库里删除了。这个包是针对Cent OS6的,不过也可在Cent OS7里工作。
# wget
ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm# yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm
一旦checkinstall安装好,你就可以用下列格式创建一个特定的软件包
# checkinstall 《install-command》
如果没有参数,默认安装命令“make install”将被使用
用Checkinstall创建一个RPM或DEB包
在这个例子里,我们将创建一个htop包,这是一个linux交互式文本模式进程查看器(类似 top)。
首先,让我们从项目的官方网站下载源代码,作为一个好的习惯,我们存储源码包到/usr/local/src下,并解压它。
# cd /usr/local/src# wget http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz# tar xzf htop-1.0.3.tar.gz# cd htop-1.0.3
让我们看看htop的安装命令是什么,以便我们能用Checkinstall命令调用它,如下面所示,htop用“make install”命令安装。
# 。/configure# make install
因此,要创建一个htop安装包,我们可以不带任何参数的调用checkinstall,这将使用“make install”命令创建一个包。在这个过程中, checkinstall命令会问你几个问题。
简而言之,如下命令会创建一个htop包:
# 。/configure# checkinstall
“Should I create a default set of package docs?(我会创建一个默认设置的包文件?)”,回答“Y”:
此可以输入一个包的简短描述,然后按两次回车:
输入一个数字以修改下面的任何值或ENTER继续:
上面就来Linux系统下使用checkinstall从源码创建RPM或DEB包的方法。
4. 如何使用rpmbuild编译源码RPM包
1、查看操作系统版本和内核版本
2、创建相关目录
/usr/src/redhat/SOURCES //存放源代码,补丁,图标等文件。/usr/src/redhat/SPECS //存放用于管理rpm制作进程的spec文件。/usr/src/redhat/BUILD //解压后的文件存放在这里。/usr/src/redhat/RPMS //存放由rpmbuild制作好的二进制包。/usr/src/redhat/SRPMS //存放由rpmbuild制作好的源码包。
3、下载Nginx源码包
下载源码包到SOURCES目录,不需要解压。
4、手工创建SPEC文件,由于spec文件是由spec语言编写的,请注意spec语言的语法。
SPEC文件内容如下:
#Example Spec File For Nginx# Edited By LaoXu 7.Mar.2013#Summary: High Performance Web ServerName: nginxVersion: 1.3.9Release: el5License: GPLGroup: Applications/ServerSource:URL:Distribution: LinuxPackager: XuYuanzhen <absolutey.>%descriptionnginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server%preprm -rf $RPM_BUILD_DIR/nginx-1.3.9zcat $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -%buildcd nginx-1.3.9./configure --prefix=/usr/local/nginxmake%installcd nginx-1.3.9make install%preunif [ -z "`ps aux | grep nginx | grep -v grep`" ];thenkillall nginx >/dev/nullexit 0fi%files/usr/local/nginx5、开始RPM制作
5. 怎样制作RPM包
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。使用rpm安装软件和管理软件非常的方便。而这节我们不是介绍如何使用rpm安装或管理软件,而是如何把源码制作成rpm包。
我们日常工作一般会使用源码包安装软件,因为源码包相对灵活多变,操作自由,唯一的问题就是容易编译出错。rpm包安装简单方便,唯一问题就是不能自定义参数且更新的速度相对于源码慢很多。
1、查看操作系统版本和内核版本
2、创建相关目录
/usr/src/redhat/SOURCES //存放源代码,补丁,图标等文件。
/usr/src/redhat/SPECS //存放用于管理rpm制作进程的spec文件。
/usr/src/redhat/BUILD //解压后的文件存放在这里。
/usr/src/redhat/RPMS //存放由rpmbuild制作好的二进制包。
/usr/src/redhat/SRPMS //存放由rpmbuild制作好的源码包。
3、下载Nginx源码包
下载源码包到SOURCES目录,不需要解压。
4、手工创建SPEC文件,由于spec文件是由spec语言编写的,请注意spec语言的语法。
SPEC文件内容如下:
#############################
# Example Spec File For Nginx
# Edited By LaoXu 7.Mar.2013
#############################
Summary: High Performance Web Server
Name: nginx
Version: 1.3.9
Release: el5
License: GPL
Group: Applications/Server
Source: http://nginx.org/download/nginx-1.3.9.tar.gz
URL: http://nginx.org/
Distribution: Linux
Packager: XuYuanzhen <[email protected]>
%description
nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server
%prep
rm -rf $RPM_BUILD_DIR/nginx-1.3.9
zcat $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -
%build
cd nginx-1.3.9
./configure --prefix=/usr/local/nginx
make
%install
cd nginx-1.3.9
make install
%preun
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi
%files
/usr/local/nginx
6. rpm包都有源代码吗
有rpm的源码包的 使用rpm命令的--recompile和--rebuild可以进行再编译和构建 rpm --recompile xxx.rpm #这个命令会把源代码解包并编译、安装它,如果用户使用命令:rpm --rebuild xxx.rpm #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm 的RPM软件包。
7. Linux打包Python文件为RPM格式
花费了将近一周的时间,才把rpm打包弄好.不能说已经了然于胸,但至少踩过了很多坑.接下来就顺顺在打包过程中的二三事.刚开始接到任务的时候,一脸懵逼.
作为专业的 JAVA Web 程序员,确定要让我干这么跨界的事情吗?之前自己虽然也安装过其他的rpm包,但我保证,我只是看说明书,跟着一路弄下来的.并且之后对它可是有多远躲多远的.不过考虑到自己的title,我知道那不应该是我关心的事情.那么问题来了,什么是rpm呢?
看到了rpm是什么,我们就来了解一下RPM相关的命令
本来准备直接 rpm -help 让大家看看相关参数的,但是考虑到内容太多,感兴趣的 自行点击 .这里放几个常用的命令.
至此,基本的rpm基础已经了解到了.那么关键的问题来了,如何制作RPM
把制作RPM,道上传闻有多种方式,我自己测过的有两种
注意:无论上述那种都需要 setup.py 及 setup.cfg 文件,描述相关的软件信息.
我自己使用的是第二种rpmbuild,
至此就可以欢快的进行打包了.执行
以上命令运行成功后会在当前用户目录下生成rpmbuild目录,该目录会包含以下子目录
--BUILD #编译之前,如解压包后存放的路径 --BUILDROOT #编译后存放的路径 --RPMS #打包完成后rpm包存放的路径 --SOURCES #源包所放置的路径 --SPECS #spec文档放置的路径 --SPRMS #源码rpm包放置的路径
安装成功后,即可直接执行相关命令了.
rpmbuild
8. 如何将源代码打成rpm包
不管你想打什么RPM包,这个应该能帮上你。
RPMBuilder, 一个Linux下的C++开源工具,自己make和make install. 然后用命令rpmbuilder:
> rpmbuilder # 此次运行,生成一个RPMBuilder.xml
> vi RPMBuilder.xml # 配置
> rpmbuilder # 打包
完成!
Link:
https://sourceforge.net/projects/xml2rpm/files/rpmbuilder-1.0.1/
9. 如何从Linux源码创建RPM或DEB包
你好,这个需要安装Checkinstall创建一个RPM和DEB软件包。
在linux上安装Checkinstall,在Debian及其衍生发行版上安装Checkinstall:
# aptitude install checkinstall
在红帽子的发行版上安装Checkinstall,需要下载一个已经打包好的Checkinstall rpm包。
# wget
ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories
/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm#
yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm
一旦checkinstall安装好,就可以用下列格式创建一个特定的软件包
# checkinstall 《install-command》
如果没有参数,默认安装命令“make install”将被使用Checkinstall创建一个RPM或DEB包。在这个例子里,将创建一个htop包,这是一个linux交互式文本模式进程查看器(类似 top)。
首先,让从项目的官方网站下载源代码,作为一个好的习惯,存储源码包到/usr/local/src下,并解压。
10. 如何将apache源码打成rpm安装包
这些命令一半都是制作rpm包和tar.gz调试时用的,一般的用户不会用到这些命令 一半安装rpm包时用命令: rpm -ivh XX.rpm 卸载命令: rpm -e XX.rpm 安装和卸载过程其实就已经执行了上面的命令,至于具体执行那些命令