linux系统管理学习笔记之三----软件的安装

linux系统管理学习笔记之三----软件的安装


一、软件包的概述

1、一般软件程序包含四种文件:

配置文件、库文件、二进制程序、帮助文件。


2、linux操作系统启动需要的程序文件的存放目录

/etc                     配置文件
/bin  /sbin         二进制文件
/lib               库文件           //以上三个目录不能单独分区,必须和根目录在同一分区下。

/usr/share/man      帮助文件


重点关注:

ldd命令可以查出程序依赖的库文件


例:ldd /bin/bash   可查出bash依赖的库文件。


3、linux核心程序存放目录

/usr/                              //此目录可以单独分区,但一般不单独分区。
    bin  sbin                    //二进制文件
    lib                            //库文件
               
而配置文件同样位于/etc下
帮助文件也同样位于/usr/share/man下

4、用户程序存放目录

/usr/local/              //此用户程序存放目录是完全独立的,建议独立分区。假如此分区拿来即用,即使根分区格式化后安装系统,此分区下的软件马上就可以用不用重新安装。

             bin sbin   //二进制
             lib        //库文件
             etc        //配置文件
             man        //帮助文件

 
软件包的格式:RPM软件包、源代码包、二进制代码

二、rpm软件包安装

rpm包最简单,用rpm命令即可

rpm  [-iUFvVheqpal]  
-i:安装一个新软件包
-e:卸载一个软件
-v:(小写)查看安装过程的信息
-h:用来显示进度
-q:查看安装好的包的情况
-v:(小写)查看有关安装过程信息
-V:(大写)验证一个包
-U:(大写)升级一个包
-F:(大写)升级一个包。但如果软件并未安装到LINUX服务器,将不升级。即只升级安装过的软件。
-l:软件包的清单
-a:所有的,一般和其他的参数合用


--version 或-v查看软件的安装版本:

gcc --version


例:rpm -ivh file.rpm  //安装一个包
    rpm -evh file.rpm  //卸载一个包
    rpm -Uvh file.rpm  //更新一个包

    rpm -ql  file   //查看已看装过了的包的文件清单
    rpm  -qa        //查看所有安装好的的包的情况
    rpm  -qi  file    //查看该套件的相关说明,包括名字,版本,更新次数等。
    rpm   -qd  file  //更出该套件的所有帮助文件
    rpm   -qc  file   //列出该套件的所有配置文件
    rpm  -qR   file   //列出与该套件有关的依套套件所含的文件
    rpm  -qf   文件名称   //找出该文件属于哪一个已安装的套件。上面的file都是表示套件名,而此处的是文件名

   例:  rpm -qf   /bin/sh   会显示出:  bash-3.0-32   //即/bin/sh文件属于  bash-3.0-32这个套件。



三、源码包安装方法

(一)源码包基础知识

1、编译过程:源程序--》编译--》二进制格式。 即安装文件要是二进制文件才可以安装,所以先要制成二进制。

2、手动编译安装的前提:

需要编译环境 ,即需要开发环境:开发环境指的就是开发工具和开发库。

linux的流行开发环境有:

gcc       开发c语言的,Linux基本程序都是c开发的。

g++     开发c++

如果要编译java程序,也得先需要安装上java的开发环境。


3、make(项目管理工具)


(1)用make (项目管理工具)来管理源码。 make工具通过makefile文件来制作二进制。makefile定义了make(make是会调用gcc或g++开发环境的)按何种次序去编译这些源程序文件中的源程序。


(2)makefile文件的生成

makefile文件由 automake生成的makefile.in和autoconf生成的configure文件一起生成。

makefile.in:由automake程序生成makefile.in,判断怎么去编译程序

configure:由autoconf生成configure脚本,主要作用是在编译过程中选择使用哪些特性。如windows安装中的安装目录的指定,哪些功能不安装,哪些安装等。

(3)make  install进行安装。


即由先由automake生成makefile.in,autoconf生成configure,然后合成makefile文件。然后用make命令生成二进制。最后用make install安装。 因为Make需要调用开发环境,所以一定要先安装相应的开发工具包。





(二)安装方法


源码包一般以tar.gz  或tar.bz2结尾
1、获取源码包,把源码包移到/usr/local/src下
2、解开源码包
3、阅读源码包里在贩安装信息,一般为readme  install等。里面有编译源码包的方法及注意示项
4、编译软件

  编译软件的格式:  ./configure  参数
每个软件的参数都不一样,可以用./configure --help查看参数项
最常用的参数有:  --prefix即指定软件包安装的目录。缺省为:   /usr/local目录下
如果参数多,可以分多次运行  ./configure配置软件,  也可以一次把参数加完一次性配置。


5、运行./configure后将生成一个特殊的文件类型"makefile",即制作文件,制作文件是编译阶段的基石。

6、用make命令编译软件包 

7、make install命令安装软件

安装完后清理安装文件。

(三)环境变量配置

1、如为新软件建立了专门的用户名,如Mysql等软件会专门建一个mysql用户名,那么要把安装目录更改为专用用户名的属主。如:chown -R /usr/local/src/mysql


2、修改PATH环境变量,以能够识别此程序的二进制文件路径。

    方法下一:修改/etc/profile文件,在增加一条path的条目。

    方法二:在/etc/profile.d/目录下建个以.sh为名称的后缀文件,在里面定义export PATH=$PATH:/path(编译文件的路径)。

  方法三:(这种是临时的,重启后消失)

export HTTP_HOME=/usr/local/apache2/bin

export  PATH=$PATH:HTTP_HOME                     //把路径加到环境变量PATH中。              

或合并以上两步为以下一步:

export PATH=$PATH:/usr/local/apache2/bin


/etc/profile属于系统级别的环境变量,设置在里面的东西对所有用户适用。

etc/bashrc只对当前用户适 用,而且只有在你使用的也是bash作为shell时才行,如果你使用zsh那么也就要说要使用.zshrc文件了,至于/etc/profile,应该 没有这个问题。


3、库文件路径。默认情况下,系统搜索库文件的路径为:/lib  /usr/lib,要添加入额外的库文件路径,要在/etc/ld.so.conf.d/中创建以.conf为后缀的文件,而后把要增加的库文件路径直接写至此文件中。再用   ldconfig命令,ldcofnig -v重新搜寻库的过程 ,以使新的库文件生效


4、头文件:include,包含其他库文件的话,就需要在头文件中包含。默认头文件存放路径为/usr/include/  ,需要把编译 好的软件的所有头文件或头文件目录做软链到此目录下。安装目录下也会包含一个/include目录的。 如: ln -s /usr/local/src/mysql/include  /usr/include 


5、man文件,即帮助文件。系统会在/etc/man.conf中的配置文件中查找man文件。所以需要把编译软件的Man路径加到/etc/man.conf配置文件中。


6、让程序自启动

先编写一个脚本,然后把脚本放到/etc/rc.d/init.d目录中。用checkconfig命令增加到想自动启动的对应级别中。

例:

cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd    //把apache加入到系统启动
vi /etc/init.d/httpd                                        //编辑httpd脚本,加入两行
在#!/bin/sh下面添加以下两行
#chkconfig:2345 10 90
#description:Activates/Deactivates Apache Web Server

3、chkconfig --add httpd                               //把httpd加入到启动脚本中。一定要先在脚本中加入前面两行才可以。



四、  .src.rpm文件的安装方法

方法一:
1、获取软件包
2、使用  rpm  -ivh  *.src.rpm  安装软件包
3、安装完后会在/usr/src/redhat目录下生成不同的安装包文件

   /usr/src/redhat/Build   中处理安装包源代码的解包和建立,即暂存数据
   /usr/src/redhat/RPMS    存放生成的二进制rpm包,即生成我们常用的rpm包。里面会有子目录,如i386   i486 等。
   /usr/src/redhat/SRPMS    的生成二进制RPM包时,生成的一引起源代码RPM包
   /usr/src/redhat/SOURCES 存放生成的源代码,如*.tar.gz 或配置文件
   /usr/src/redhat/SPEC      控制RPM包建立过程的文件,即规范文件。如包的信息参数,配置项目等。

4、 cd /usr/src/redhat/SPEC   进入SPEC子目录
5、rpmbuild -ba  packagename.spec  //生成源代码RPM包和二进制RPM包。packagename与软件包同名。
   rpmbuild -bb  packagename.spec  //只生成二进rpm包
   rpmbuild -bs packagename.spec   //只建源代码RPM包

6、cd /usr/src/redhat/RPM/i386 目录中,安装刚生成的rpm包即可。 


方法二:

1、 1到4步与上面的方法一相同
2、 rpmbuild -bp  packagename.spec    //解开源码包并打补丁
3 、cd  /usr/src/redhat/Build/packagename/  进入这个子目录下
4、用安装源代码的方法安装软件。

   ./configure  配置包
    make       编译包
    make install  安装包


五、yum安装

1、rpm -qa|grep yum   //查询是否安装了yum软件

2、如果没有安装,请下载yum软件包安装。

3、配置 /etc/yum.conf,这是yum的主配置文件。一般不用作修改。

     cachedir=/var/cache/yum     #yum下载的RPM包的缓存目录
     keepcache=0         #缓存是否保存,1保存,0不保存。
     debuglevel=2         #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
     logfile=/var/log/yum.log     #yum的日志文件所在的位置
     exactarch=1         #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
     obsoletes=1         #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
     gpgcheck=1         #是否检查GPG(GNU Private Guard),一种密钥方式签名。
     plugins=1         #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
     installonly_limit=3     #允许保留多少个内核包。
     exclude=selinux*     #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。





4、配置源配置文件 /etc/yum.repos.d/*.repo
即/etc/yum/yum.repos.d下的*.repo文件。主要用来配置源的位置。一般更改name和baseurl即可。


        name=Red Hat Enterprise Linux $releasever - $basearch - Source                     \\软件仓库的名字,随便取。
        baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/ 

\\软件仓库的地址。
        enabled=0                   \\这个选项表示这个repo中定义的源是启用的,0为禁用
        gpgcheck=1             \\这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release                        

   \\定义用于校验的gpg密钥
        exclude=compiz* *compiz* fusion-icon* #exclude                                      

\\这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加


5、yum命令

(1)列出资源库中的rpm安装包

#yum list              //列出资源库中所有可以安装或更新的包。

#yum list perl*         //列出perl 开头的包

# yum list perl*        //列出perl 开头的包

# yum list updates    //列出资源库中所有可以更新的rpm包

# yum list installed   //列出已经安装的所有的rpm包
 
# yum list extras       列出已经安装的但是不包含在资源库中的rpm包,注:extras是repos.d中定义的资源列表名称


(2)列举资源信息

# yum info    //列出资源库中所有可以安装或更新的rpm包的信息

# yum info perl*         //列出perl 开头的所有包的信息

# yum info updates      //列出资源库中所有可以更新的rpm包的信息

# yum info installed    //列出已经安装的所有的rpm包的信息

# yum info extras        //列出已经安装的但是不包含在资源库中的rpm包的信息

(3)搜索

搜索匹配特定字符的rpm包

# yum search perl            //在包名称、包描述等中搜索

# yum provides realplay      //搜索有包含特定文件名的rpm包


(4)管理包

安装rpm包

# yum install perl     //安装perl 包

# yum install perl*     //安装perl 开头的包


删除rpm包,包括与该包有倚赖性的包

# yum remove perl*            //会删除perl-* 所有包

(5)更新


# yum check-update     //检查可更新的rpm包



# yum update            //更新所有的rpm包


# yum update kernel kernel-source  //更新指定的rpm包,如更新kernel和kernel source



# yum upgrade    //大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级

(6)清空缓存

清除暂存中rpm包文件

# yum clean packages

清除暂存中rpm头文件

# yum clearn headers

清除暂存中旧的rpm头文件

# yum clean oldheaders

清除暂存中旧的rpm头文件和包文件

# yum clearn



# yum clearn all

(7)其他

安装Livna.org rpms GPG key

# rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY

检查GPG Key

# rpm -qa gpg-pubkey*

显示Key信息

# rpm -qi gpg-pubkey-a109b1ec-3f6e28d5

删除Key

# rpm -e gpg-pubkey-a109b1ec-3f6e28d5

例:把安装光盘当作yum以安装软件


1、把光盘挂载到系统中来

mount  /dev/cdrom   /mnt     //把光盘挂载到mnt目录下


2、编辑/etc/yum.repos.d/*.repo

编辑此目录下的.repo文件,把配置中的 baseurl项改成:baseurl=file:///mnt

即Yum指定完成。

3、yum install progarm   //program是你想安装的软件名。 

你可能感兴趣的:(linux,职场,休闲,系统管理)