centos7中如何打包用户目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7中如何打包用户目录相关的知识,希望对你有一定的参考价值。
一、RPM打包的目的1、当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可。
2、当需要在目标机中安装多个软件或者增加多个文件时,可以将整体打成RPM包,方便使用。
二、RPM打包命令
$cd ~ #进入home目录 $ sudo yum -y install rpmdevtools #安装rpm打包所需的工具 $rpmdev-setuptree #生成rpm打包目录 $cd rpmbuild/SPECS #进入SPECS目录 $rpmdev-newspec test.spec #生成spec文件模板 $mv your_path/source.tar.gz ../SOURCES #将要打包的源码以tar.gz的格式移动到SOURCES目录
此时会在home目录下生成一个rpmbuild目录,此目录下有五个子目录 BUILD 编译时所用的暂存目录 RPMS 放打包好的二进制rpm包 SOURCES 放置源代码和补丁文件 SPECS 放置spec文件 SRPMS 放置RPM源码包
三、spec文件简要说明
RPM打包的关键之处就在于spec文件的编写
1、spec基本信息
Name: 软件名称 Version: 软件版本 Release: 发布次数 如: 1%?dist Summary: 软件说明 Group: 软件分组 License: 授权模式,例如 GPL,即自由软件 URL: 源码包的URL地址,可随意填写 Source0: 源码包,可指定多个,下面可用%SOURCE0变量引用 BuildRoot: 编译过程中的中间存档目录,考虑到多用户的环境,一般定义为: %_tmppath/%name-%version-%release-root , 后面可使用$RPM_BUILD_ROOT 方式引用 BuildArch: 平台 %_arch BuildRequires: 编译过程依赖的工具 Requires: 打包生成的rpm包安装时所依赖的软件包 %description 说明文档 %prep 准备部分,比如创建目录,解压源码包等,可使用%setup内部函数 %build 在BUILD目录编译,可使用%configure内部函数,或者其他编译工具,如cmake, perl等 %install 安装到BUILDROOT虚拟目录 %clean 清理文件 %files 将指定的文件添加到rpm包中,文档类型可用%doc,配置文件可 用%config %changelog 更新记录.格式: 第一行 "* 日期 作者 " 第二行 "- 更新内容" 最终的生成的rpm名称: Name-Version-Relesae-BuildArch.rpm
2、spec内部变量
在spec文件运行时,定义的宏会主动读取/usr/lib/rpm/macros中的变量
RPM_BUILD_DIR ~/rpmbuild/BUILD
RPM_BUILD_ROOT ~/rpmbuild/BUILDROOT
3、spec文件示例(以git为例)
Name: git Version: 2.10 Release: 1%?dist Summary: this is the test code License: GPL URL: http://www.hao123.com Source0: %name-%version.tar.gz BuildRoot: %_tmppath/%name-%version-root BuildRequires: automake Requires: rpm %description %prep %setup -q %build autoconf ./configure --prefix=/opt/git/ make %?_smp_mflags %install make DESTDIR=$RPM_BUILD_ROOT install %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" make clean %files %defattr (-,root,root) /opt/git/ %changelog
4、生成RPM包
$rpmbuild -ba test.spec #生成RPM包
生成的RPM包在rpmbuild/RPMS目录下。 参考技术A 、当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可。
2、当需要在目标机中安装多个软件或者增加多个文件时,可以将整体打成RPM包,方便使用。
二、RPM打包命令
$cd ~ #进入home目录 $ sudo yum -y install rpmdevtools #安装rpm打包所需的工具 $rpmdev-setuptree #生成rpm打包目录 $cd rpmbuild/SPECS #进入SPECS目录 $rpmdev-newspec test.spec #生成spec文件模板 $mv your_path/source.tar.gz ../SOURCES #将要打包的源码以tar.gz的格式移动到SOURCES目录
此时会在home目录下生成一个rpmbuild目录,此目录下有五个子目录 BUILD 编译时所用的暂存目录 RPMS 放打包好的二进制rpm包 SOURCES 放置源代码和补丁文件 SPECS 放置spec文件 SRPMS 放置RPM源码包
三、spec文件简要说明
RPM打包的关键之处就在于spec文件的编写
1、spec基本信息
Name: 软件名称 Version: 软件版本 Release: 发布次数 如: 1%?dist Summary: 软件说明 Group: 软件分组 License: 授权模式,例如 GPL,即自由软件 URL: 源码包的URL地址,可随意填写 Source0: 源码包,可指定多个,下面可用%SOURCE0变量引用 BuildRoot: 编译过程中的中间存档目录,考虑到多用户的环境,一般定义为: %_tmppath/%name-%version-%release-root , 后面可使用$RPM_BUILD_ROOT 方式引用 BuildArch: 平台 %_arch BuildRequires: 编译过程依赖的工具 Requires: 打包生成的rpm包安装时所依赖的软件包 %description 说明文档 %prep 准备部分,比如创建目录,解压源码包等,可使用%setup内部函数 %build 在BUILD目录编译,可使用%configure内部函数,或者其他编译工具,如cmake, perl等 %install 安装到BUILDROOT虚拟目录 %clean 清理文件 %files 将指定的文件添加到rpm包中,文档类型可用%doc,配置文件可 用%config %changelog 更新记录.格式: 第一行 "* 日期 作者 " 第二行 "- 更新内容" 最终的生成的rpm名称: Name-Version-Relesae-BuildArch.rpm
2、spec内部变量
在spec文件运行时,定义的宏会主动读取/usr/lib/rpm/macros中的变量
RPM_BUILD_DIR ~/rpmbuild/BUILD
RPM_BUILD_ROOT ~/rpmbuild/BUILDROOT
3、spec文件示例(以git为例)
Name: git Version: 2.10 Release: 1%?dist Summary: this is the test code License: GPL URL: http://www.hao123.com Source0: %name-%version.tar.gz BuildRoot: %_tmppath/%name-%version-root BuildRequires: automake Requires: rpm %description %prep %setup -q %build autoconf ./configure --prefix=/opt/git/ make %?_smp_mflags %install make DESTDIR=$RPM_BUILD_ROOT install %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" make clean %files %defattr (-,root,root) /opt/git/ %changelog
4、生成RPM包
$rpmbuild -ba test.spec #生成RPM包
生成的RPM包在rpmbuild/RPMS目录下。 参考技术B RPM打包命令
$cd ~ #进入home目录 $ sudo yum -y install rpmdevtools #安装rpm打包所需的工具 $rpmdev-setuptree #生成rpm打包目录 $cd rpmbuild/SPECS #进入SPECS目录 $rpmdev-newspec test.spec #生成spec文件模板 $mv your_path/source.tar.gz ../SOURCES #将要打包的源码以tar.gz的格式移动到SOURCES目录
此时会在home目录下生成一个rpmbuild目录,此目录下有五个子目录 BUILD 编译时所用的暂存目录 RPMS 放打包好的二进制rpm包 SOURCES 放置源代码和补丁文件 SPECS 放置spec文件 SRPMS 放置RPM源码包 参考技术C RPM打包命令 $cd ~ #进入home目录 $ sudo yum -y install rpmdevtools #安装rpm打包所需的工具 $rpmdev-setuptree #生成rpm打包目录 $cd rpmbuild/SPECS #进入SPECS目录 $rpmdev-newspec test.spec #生成spec文件模板 $mv your_path/source.tar.gz ../SOURCES #将要打包的源码以tar.gz的格式移动到SOURCES目录 此时会在home目录下
[CentOS 7系列]压缩与打包(下)
除了gzip、bzip2和xz外,linux中还有一款压缩软件。它支持压缩目录,也可以解压windows中同类型的文件。它就是我们熟悉的zip。
1、zip
命 令 | 作 用 |
zip 1.txt.zip 1.txt | 压缩 |
zip -r 123.zip 123/ | 压缩目录 |
unzip 1.txt.zip | 解压 |
unzip 123.zip -d /root/456/ | 解压缩到指定目录下 |
unzip -l 123.zip | 列出压缩文件所包含的内容 |
和gzip、bzip2和xz不同的是,使用zip压缩后,保留原文件。不能更改压缩后的压缩包名称。不能直接查看zip压缩包的内容,只能查看压缩包内文件列表。
2、tar
tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。它主要是用来对文件打包。
命 令 | 作 用 |
tar -cvf 123.tar 123 | 打包单个文件 |
tar -cvf 123.tar 1.txt 123 | 打包多个文件 |
tar -xvf 123.tar | 解包 |
tar -tf 123.tar | 查看打包文件列表 |
tar -cvf 123.tar --exclude 1.txt --exclude 23 | 打包时部分文件不打包 |
使用tar命令还可以做打包并压缩:
命 令 | 作 用 |
tar -zcvf 123.tar.gz 123 | 打包并压缩成gzip压缩包 |
tar -zxvf 123.tar.gz | 解包并解压缩gzip压缩包 |
tar -jcvf 123.bz2 123 | 打包并压缩成bzip2压缩包 |
tar -jxvf 123.bz2 | 解包并解压缩bzip2压缩包 |
tar -Jcvf 123.xz 123 | 打包并压缩成xz压缩包 |
tar -Jxvf 123.xz | 解包并解压缩xz压缩包 |
tar -tf 123.bz2/123.gz/123.xz | 查看压缩包文件列表 |
本文出自 “乱码时代” 博客,请务必保留此出处http://juispan.blog.51cto.com/943137/1941493
以上是关于centos7中如何打包用户目录的主要内容,如果未能解决你的问题,请参考以下文章
centos7 安装vsftpd安装和配置以及虚拟用户权限分配
centos7单用户模式下/sysroot目录对应多用户模式下的哪个目录