Linux基础:软件安装(rpm,yum,源代码)

Software Installation on Linux

  • Linux安装分为rpm包(可通过yum或者是rpm命令安装)和源码包(源代码或者是编译过的二进制码)两种。
  • Linux是开源系统,很多应用都是开源以源代码的形式发布的,源代码形式除了阅读和修改方便以外,还可以兼容多平台,不同平台
  • rpm包,.rpm结尾,源码编译后的二进制包,看不到源码,但安装速度快,不容易出现安装错误。安装的服务被默认为系统服务(redhat镜像文件本身就是rpm包),包安装在系统默认目录中。程序员在构建rpm包时会约定俗成的指定这些默认目录,使rpm安装的各个文件插入现有系统中的目录(opt,etc...)。删除时使用特定的命令可以自动去多个目录下删除相关文件。
    • /etc
    • /usr/bin
    • /usr/lib
    • /usr/share/doc  + /usr/share/man
  • 源码包安装,.gz结尾,直接解压可以看到原文件。所有的安装文件会在/usr/local 下面,删除一个文件夹即可卸载。因为安装文件仅在/user/local下,不能被一些系统命令启动(root   cause系统命令往往是搜索特定路径起作用)如service chkconfig……除非手动去做更改。
  • service命令只能启动rpm包安装的命令,因为service命令默认搜索路径/etc/rc.d/init.d/(所有rpm方式安装的文件都会在此目录下保存一个启动文件)。只有rpm包安装才会把启动服务放到该路径下,源码包安装不会,如果把源码包的启动文件拷到init.d目录下,service可以识别。
  • chkconfig --list 查询rpm包自启动状态,可以查看系统安装过的所有rpm包,查看不了源码包安装服务状态。

 

RPM Software management (rpm 命令管理 & yum 管理)

  • rpm两种管理方式:rpm命令管理 && yum在线管理
  • rpm命名规则:名字-版本号-发布次数-适合的Linux平台.硬件平台.rpm
  • rpm最大问题是依赖问题:树形依赖,环形依赖,库依赖。
  • noarch 任何硬件平台,不写平台也意味着任何平台
  • iso/packages 里会有大部分包,但这些包并不会全部安全,从运行效率和安全性的角度考虑,系统管理员会选择minimum的安装方式。如果要自己增加新的组件,将iso文件挂载,进入光盘目录找到需要的rpm包,运行安装命令。

 

RPM命令管理

  • 可以去 www.rpmfind.net 下载所需要的依赖包,如果是Rhel或者是CentOS 可以去http://mirrors.163.com/centos/6/os/x86_64/Packages/ 下载相关内容
  • RPM 安装包(rpm -ivh  packagename.rpm)
    •  i-install安装  v-verbose显示安装信息  h-hash 显示安装过程
  • RPM 删除包(rpm -e packagename)
    • e - erase
  • RPM 查询安装情况(rpm -qi packagename)
    • q -query i- information
    • 和grep结合起来非常好用 rpm -qa|grep python 就能轻易找到指定关键词相关的安装包名
    • rpm -qi python 查询Python安装包的具体信息
    • rpm -ql python 查询Python应用所在的所有目录
    • rpm -qf filename查询安装程序中某个文件的名字

 

Yum 命令管理(最好只用于安装,yum删除会产生级联影响)

  • 安装前提:需要可以联网,需要设置Yum源
  • Yum源设置
    • 网络Yum源(Redhat的网络yum源需要收费,因此可以删除yum源再重新安装配置其他yum源)
    • 光盘Yum源(挂载redhat/centos.iso,指定光盘为镜像源并进行安装)
  • Yum安装软件
    • yum -y install packagename
  • Yum搜索软件安装情况
    • yum search packagename
  • Yum删除软件(Yum最好只用来安装)
    • yum -y remove packagename(high risk! cascade delete)
  • Yum 更新软件
    • yum -y update packagename (high risk!)


Source Code Software management(有些程序官网只提供源代码包,比如python)

      • 源代码包安装
        • 解压以后查看Install或者是Readme文件,会有详细步骤说明如何安装。
      • 源代码包删除
        • 删除直接删除整个文件夹

           

​更新Yum源和软件安装

可以有多个随意命名的yum文件,只要在etc/yum.repo下即可。
安装外部yum源
删掉原有配置文件
新增配置文件配置外部yum源即可直接使用
源码包安装:源码包安装步骤基本一致
1.解压下载源码包:tar -xzf 文件
2. 进入目录进行安装前检查和配置:./configure --prefix-指定安装路径,若不指定,默认安装路径/usr/local(累似windows c:\programfiles\),所有安装后的文件,包括bin和lib都在这个目录下面,删除安装直接删除整个文件夹即可。
3.编译:运行make命令,无需参数,在解压目录下即可
4.安装:makeinstall命令,无需参数,解压目录运行即可
启动服务,源码包安装无法通过service 服务名 start来执行启动或暂停操作,需要进入到相应的bin目录下运行启动或者关闭脚本。相应的,rpm安装方式下的软件对应的bin目录下就没有启动脚本,需要通过service开启或者关闭脚本。
应用程序的不同安装方式导致应用的管理方式也不同。实例:yum方式安装的tomcat和源码包安装的tomcat启动和关闭的方法就不同。
虚拟机上安装网络应用如果希望能被主机掉用,必须关闭防火墙!!!
安装应用必须看清楚对应的操作系统版本!!
不同安装方式的安装位置不同,因此源码包安装和rpm包安装对应的服务启动,停止和重启都不同。
对于源码包,启动停止重启脚本都在/usr/local/appName/bin 下,示例:
./zookeeper start/stop/restart。所有服务相关文件都在/local/appName下(除非配置的时候制定特殊安装目录)。rpm包可以通过 service调用,本质上是因为安装时系统把启动脚本放到/usr/bin,如果给源码包做一个软连接,也可以通过service启动源码包服务。(查 看下文件夹里到底包含什么)
对于rpm包,启动停止可以直接通过服务的
方式运行 service app start/stop/restart,示例:
service tomcat6 start/stop/restart
更改服务自启动状态
rpm 包可以直接通过chkconfig --list 查看各个级别下的默认启动状态,service --status-all查看所有服务的状态是启动启动中还是关闭,源码包安装的服务不可以。对两种安装方式来说,都可以通过/etc/rc.d /rc.local来设置(绝对路径加上 start,具体的启动脚本可以查看install的说明,并不总是服务名,apache的启动脚本就是apachectl)。
Linux的一切都是文件 只要安装位置不同你可以通过多种方式在linux上安装多个同样的应用。
posted @ 2016-01-24 15:24  heartGoOn99  阅读(424)  评论(0编辑  收藏  举报