RPM包中文件提取
1)cpio命令
cpio命令主要有三种基本模式:“-o”模式指的是copy-out模式,就是把数据备份到文件库中;"-i"模式指的是copy-in模式,就是把数据从文件库中恢复;“-p”模式指的是复制模式,就是不把数据备份到cpio库中,而是直接复制为其他文件。命令如下:
[root@localhost ~]# cpio -o[vcB] > [文件|设备] #备份
选项:
-o: copy-out模式,备份
-v: 显示备份过程
-c: 使用较新的portableformat存储方式
-B: 设定输入输出块为5120bytes,而不是模式的512butes
[root@localhost ~]# cpio -i[vcdu] < [文件|设备] #还原
选项:
-i: copy-in模式,还原
-v: 显示还原过程
-c: 使用较新的portable format 存储方式
-d: 还原时自动新建目录
-u: 自带使用较新的文件覆盖较旧的文件
[root@localhost ~]# cpio -p 目标目录
一下举例说明:
利用find命令找到文件,备份
[root@localhost sdc1]# find /etc/ -print |cpio -ocvB > /root/etc.cpio
#利用find指定要备份/etc/目录,使用>导出到etc.cpio文件
[root@localhost ~]# ll -h etc.cpio
-rw-r--r--. 1 root root 24M 4月 2215:27 etc.cpio #etc.cpio文件生成
再来看看如何恢复cpio的备份,命令如下:
[root@localhost ~]# cpio -idvcu </root/etc.cpio #还原etc的备份
#但是如果打架查看下当前目录/root,会发现没有生存etc目录。这是因为备份是/etc目录使用的绝对路径,所以恢复的数据直接恢复到了/etc系统目录中,而没有生成在/root/etc中。
在CentOS5.x的版本中,是可以利用上面的命令备份与恢复指定的文件。但是到CentOS6.x当中,需要更加严禁。如果备份时使用绝对路径,则恢复的数据会直接到绝对路径指定的路径中,如果需要把数据恢复到当前目录中,则需要使用相对路径,例如:
[root@localhost ~]# cd /etc/ #进入/etc目录
[root@localhost etc]# find . -print | cpio-ocvB > /root/etc.cpio
#利用find指定要备份/etc/目录,使用>导出到etc.cpio文件
恢复:
[root@localhost etc]# cd /root/ #回到/root目录中
[root@localhost ~]# mkdir etc_test #建立恢复测试目录
[root@localhost ~]# cdetc_test/ #进入测试目录,数据恢复到此
[root@localhost etc_test]# cpio -idvcu </root/etc.cpio
#还原/etc目录的数据,因为备份时使用的是相对路径,则会还原到/root/etc_test/目录下
最后在来掩饰一下cpio命令的“-p”复制模式,命令如下:
[root@localhost ~]# cd /tmp/ #进入/tmp目录
[root@localhost tmp]# rm -rf * #删除/tmp目录中所有数据
[root@localhost tmp]# mkdir test #建立备份目录
[root@localhost tmp]# find /boot/ -print |cpio -p /tmp/test/ #备份/boot/目录到/tmp/目录中
[root@localhost tmp]# ls test/ #在/tmp/test/目录中备份出了boot目录
boot
2)提取RPM包中文件
#rpm2cpio 包全名 | cpio-idv .文件绝对路径
rpm2cpio #将rpm包转化为cpio格式的命令
cpio #是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
举个例子,现在我假设把系统中的/bin/ls命令不小心误删除了,那么可以修复过来吗?这时有两种方法修复,要不就是使用--force选项覆盖安装一遍coreutils-8.4-31.el6.x86_64包,要不就可以使用cpio命令提取出/bin/ls命令文件,再把它拷贝到对应位置就可以了。不过我是怎么知道/bin/ls命令是属于coreutils-8.4-31.el6.x86_64这个软件包的呢?命令如下:
[root@localhost ~]# rpm -qf /bin/ls #查看ls文件属于哪个软件包
coreutils-8.4-31.el6.x86_64
那么我们在讲RPM包中文件提取,所以我们使用第二章方法,cpio命令提取出ls命令文件,然后拷贝到对应位置,命令如下:
[root@localhost ~]# mv /bin/ls/root/ #把/bin/ls命令移动到/root目录下,造成误删除的假象
[root@localhost ~]#ls
-bash:ls: command notfound #这时执行ls命令,系统会报错“命令没有找到”
[root@localhost ~]# rpm2cpio/mnt/cdrom/Packages/coreutils-8.4-31.el6.x86_64.rpm | cpio -idv /root/bin/ls
25227 块
#提取ls命令到/root/目录下
[root@localhost ~]#ls #ls命令可以正常使用
anaconda-ks.cfg bin comp install.log install.log.syslog tmp
cpio的标准格式
#cpio 选项<[文件|设备]>
选项:
-i:copy-in模式,还原
-d: 还原时自动新建目录
-v:显示还原过程
例:
#rpm-qf /bin/ls
#查询ls命令属于哪个软件包
#mv/bin/ls /tmp/
#造成ls命令误删除假象
#rpm2cpio /mnt/cdrom/Pachages/coreutils-8.4-19.e16.i686.rpm | cpio-dv./bin/ls
#提取RPM包中ls命令到当前目录的/bin/ls下
#cp/root/bin/ls /bin/
#把ls命令复制会/bin目录,修改文件丢失
网络yum源
#vi/etc/yum.repos.d/CentOS-Base.repo
[base] 容器名称,一定要放在[]中
name 容器说明,可以自己随便写
mirrorlist 镜像站点,这个可以注释掉
baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉的慢可以改成你喜欢的yum源地址
enabled 此容器是否生效,如果不写或者写成enable=1都是生效,写成enable=0就是不生效
gpgchech 如果是1是指RPM的数字证书生效,如果是0则不生效
gpgkey 数字证书的公钥文件保存位置。不用修改
yum命令
查询
#yumlist
#查询所有可用软件包列表
#yumsearch 关键字
#搜索服务器上所有和关键字相关的包
安装
#yum-y install 包名
选项:
install 安装
-y 自动回答yes
升级
#yum -yupdate 包名
选项:
update 升级
-y 自动回答yes
卸载
#yum -y remove 包名
选项:
remove 卸载
-y 自动回答yes
更新软件
yum -y update 包名
yum list 查询所有可以安装的包
YUM软件组管理命令
#yum grouplist
#列出所有可用的软件组列表
#yum groupinstall 软件组名
#安装指定软件组,组名可以由grouplist查询出来
#yum groupremove 软件组名
#卸载指定软件组
pkill-9 yum-updatesd 如果yum报错正在升级,执行此命令,强制杀死升级进程
yum -y install gcc (gcc是c语言编译器,不装gcc,源码包不能安装)
源码包安装
1 远程传输工具winscp传输apache到linux。
httpd
2 安装
1)解压
2)cd 解压目录
3) 查看安装文档
INSTALL README
4)编译前准备
./configure --prefix=/usr/local/apache2
功能:
1 检测系统环境,生成Makefile
2 定义软件选项
5)编译 makeclean
make
6)编译安装
make install
报错判断:
第一:安装过程是否停止
第二:注意error warning no 等错误报警
3 启动
/usr/local/apache2/bin/apachectl start
4 删除
直接删除安装目录
光盘yum源搭建
1、挂载光盘
#mount /dev/sr0 /mnt/cdrom
2、让网络yum源文件失效
#cd /etc/yum.repos.d
#mv mv CentOS-Base.repo CentOS-Base.repo.bak
#mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
#mv CentOS-Vault.repo CentOS-Vault.repo.bak
3、修改光盘yum源文件
#vim CentOS-Media.repo [c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
# file:///media/cdrom/
# fils:///media/cdrecorder/
#注释这两个不存在的地址
gpgchech=1
enabled=1
#把enable0改为enable=1,让这个yum源配置文件生效gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
源码包与RPM包的区别
区别
安装之前的区别:概念上的区别
安装之后的区别:安装位置不同
2、RPM包安装位置
是安装在默认位置中
RPM包默认安装路径
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib 程序所使用的函数库保存位置
/usr/share/doc 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
3、源码包安装位置
安装在指定位置当中,一般是/usr/local/软件名
4、安装位置不同带来的影响
RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
/etc/rc/init.d/httpdstart
service httpdstart
而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如:
/usr/local/apache2/bin/apachectlstart
源码包安装过程
1、安装准备
安装C语言编译器
下载源码包
http://mirror.bit.edu.cn/apache/httpd
2、安装注意事项
源码包保存位置:/usr/local/src.
软件安装位置:/usr/local/
如何确定安装过程报错:
安装过程停止
并出现error、warning或no的提示
3、源码包安装过程
下载源码包
解压缩下载的源码包
进入解压缩目录
./configure --prefix=/usr/local/apache2 #软件配置与检查
定义需要的功能选项
检测系统环境是否符合安装要求。
把定义好的功能选项和检测系统环境的信息
都写入Makefile文件,用于后续的编辑
make 编译(如果保持用makeclean)
makeinstall 编译安装
启动
/usr/local/apache2/bin/apschect1start
4、源码包的卸载
不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件
脚本安装方法
1、脚本安装包
脚本安装包并不是独立的软件包类型,常见安装的是源码包
是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装
非常类是与Windows下软件的安装方式。
2、Webmin的作用
Webmin是一个基于Web的Linux系统管理界面。您就可以通过图形化的方式设置用户帐号、Apache、DNS、文件共享等服务
3、Webmin安装过程
下载软件
http://sourceforge.net/projects/webadmin/files/webmin/
解压缩,并进入加压缩目录
执行安装脚本./setup.sh
安装位置、日志位置、perl安装位置、端口、管理员名、管理员密码、ssl:不启用、开启启动
本文出自 “吴老二” 博客,谢绝转载!
原文:http://9827789.blog.51cto.com/9817789/1656941