LINUX-软件安装(二)

   RPM包中文件提取

    1cpio命令

    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

-bashls: 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 选项<[文件|设备]>
  选项:
    -icopy-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       (gccc语言编译器,不装gcc,源码包不能安装)
  源码包安装
   1    远程传输工具winscp传输apachelinux
                  httpd
   2    安装
      1)解压
        2cd  解压目录  
        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包的区别 

  区别

   安装之前的区别:概念上的区别

   安装之后的区别:安装位置不同

  2RPM包安装位置

  是安装在默认位置中

    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/

    如何确定安装过程报错:

     安装过程停止

     并出现errorwarningno的提示

  3、源码包安装过程

     下载源码包

     解压缩下载的源码包

     进入解压缩目录

   ./configure --prefix=/usr/local/apache2        #软件配置与检查

     定义需要的功能选项

     检测系统环境是否符合安装要求。

     把定义好的功能选项和检测系统环境的信息

都写入Makefile文件,用于后续的编辑

    make   编译(如果保持用makeclean

    makeinstall    编译安装   

启动

    /usr/local/apache2/bin/apschect1start

    4、源码包的卸载

     不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件

   脚本安装方法

   1、脚本安装包

   脚本安装包并不是独立的软件包类型,常见安装的是源码包

   是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装

   非常类是与Windows下软件的安装方式。

   2Webmin的作用

 Webmin是一个基于WebLinux系统管理界面。您就可以通过图形化的方式设置用户帐号、ApacheDNS、文件共享等服务

 3Webmin安装过程

  下载软件

  http://sourceforge.net/projects/webadmin/files/webmin/

   解压缩,并进入加压缩目录

   执行安装脚本./setup.sh

    安装位置、日志位置、perl安装位置、端口、管理员名、管理员密码、ssl:不启用、开启启动


本文出自 “吴老二” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。