Linux之安装软件

软件包分类

o   源码包----Windows几乎没有,源码包安装有好处就是,1.可以自己选择的功能多,不想Windows中安装软件可以选择的功能比较少,2.并且由于是在本机上编译的源码包,这个程序更适合自己的系统,更快速。速度快百分之5左右。3.而且还有卸载方便的特性,直接删除安装位置就可以了。坏处就是1.安装时间过长,因为需要编译,比如安装一个50兆左右的软件,源码包需要两个小时,而二进制包,只需要几分钟就搞定

o   二进制包(RPM包,系统默认包)--其实就是源码包经过编译之后的二进制(0101...)包,只不过两者编译的格式不一样,Windows是.exe格式,Linux是.rpm格式。这种二进制包的好处就是1.可以节约安装时间和选择,2.只通过几个命令就可以了实现包的安装 、升级、查询和卸载。坏处就是 1.不能再看到源代码了,2.功能 选择不如源码包灵活。3. 还有软件的依赖性(就是安装一个软件必须先安装另一个软件等,和Windows中的大型游戏比较像,比如安装一个大型游戏之前,必须安装一些渲染软件,但是Linux中的依赖性非常多),软件依赖性,可以通过www.rpmfind.net来查询,就不用自己一个一个查了。

RPM包的命名规则

  jdk-7u80-linux-x64.rpm

       jdk                软件包名

         7u80                软件版本

       linux              适用操作系统

       x64               适用硬件平台是64位的

       rpm                文件扩展名

  • 为什么要说这个命名规则呢?是因为在操作没有安装的软件包的时候,需要使用包全名,也就是 jdk-7u80-linux-x64.rpm,操作已经安装好的软件包的时候,只需要使用薄酒就可以了,因为安装好的是去搜索/var/lib/rpm中的数据库。和locate命令很像

RPM安装

1.   安装

rpm -ivh 包全名

   选项:

     -i (install)安装

     -v (verbose)显示详细信息

     -h (hash)显示进度

             --nodeps 不检测依赖性=========但是不建议检测依赖性,因为软件安装没有依赖性,也就是用不了了。

2.升级

rpm -Uvh 包全名

    选项:

    -U (upgrade)升级

3.卸载

              rpm-e 包名

                    选项:

                    -e (erase)卸载

                  --nodeps 不检测依赖性

4.查询

rpm -q 包名

   #查询包是否安装

         -q 查询(query)

   rpm -qa

   #查询所有已经安装的rpm包

    -a 所有(all)

  rpm -qi 包名

  选项:

    -i 查询软件安装信息(information)

    -p 查询没有安装的信息(package)=====用这个命令的时候必须用包全名,因为操作的是没有安装的包。

-l 列表(list)(查询包中文件的安装位置)

      

              rpm -qf 系统文件名=====这个文件名必须是包安装出来的

                     选项

                    -f 查询系统文件属于那个包(file)

5.检查是否被修改

       rpm-V 包名(检验,就是自己的文件是否被修改)(verify)

       做法:是将原来软件包安装的时候的状态记录下来,然后和这个命令出来的进行对比,如果一致,就证明没人更改过,如果不一致就证明有人更改过,除非是自己更改的。

       如果做了修改会出现下面内容,比如

       S.5….T c  /etc/httpd/conf/httpd.conf

       如果做了修改,那么验证内容之中,第一部分会有八个信息,具体内容如下:

①   S(size)                  文件大小是否改变

②   M(modify)            文件类型或者文件的权限是否改变

③   5                         文件MD5(一种加密方式,校验值)校验和是否改变,也就是说文件内容是改变

④   D                         设备的中,从代码是否改变

⑤   L(locate)          文件的路径是否改变

⑥   U(user)           文件的所有者是否改变

⑦   G(group)        文件所属的组是否改变

⑧   T(Time)           文件的修改时间是否改变

以上如果有修改使用字母代表,如果没有修改,用“.”代表

第二部分内容是文件类型

①   c(configfile)                    配置文件

②    d(document)                  普通文档

③   g(GOST file)                    鬼文件,很少见,就是说这个文件不应该被rpm包包含

④   l (license file)                    授权文件

⑤   r(read me)                      描述文件      

第三部分内容,就是路径了                           

6.rpm包的默认安装位置

/etc/              配置文件安装目录

   /usr/bin/        可执行的命令安装目录

   /usr/lib/         程序锁使用的函数库的保存位置

   /usr/share/doc/     基本软件使用手册保存位置

   /usr/share/man/   帮助文件保存位置

7.rpm包的提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径

      #将文件提取到当前目录下的,文件绝对路径下

       #比如:rpm2cpio 包全名 | cpio -idv .bin/ls

      #将bin/ls提取到当前目录的bin/ls

rpm2cpio 包全名

# rpm2cpio是一个工具,将rpm包转换为cpio格式的命令

cpio

   #是一个标准工具,他用于创建软件档案和档案文件中提取文件

选项:

       -i:copy-in模式,还原---从文件之中提取数据

       -d:还原的时候自动新建目录

       -v:显示还原过程

后面那个点“.”,是代表将文件提取到当前目录下

◆应用场景是什么?

       有时候做了误操作,比如将系统的命令一不小心删除了,那么这个时候不用重装系统,只需要知道这个命令位于哪一个包,然后用这个命令将另一个系统的rpm安装包中提取出这个命令文件,然后对自己的操作系统进行覆盖就可以了。

yum自动安装RPM包

注意事项:在centOs中yum是免费试用的,但是在红帽子等一些Linux发行版本中,yum被认为是一个售后服务,所以是收费的。yum也不一定非得是联网,而也可以用本地光盘作为本地yum源

1.yum源所在位置

              在/etc/yum.repos.d路径下,有四个个yum源

              分别是:CentOS-Base.repo(默认使用的是这个,基本yum源)

                            CentOS-Debuginfo.repo(修复bug的,类似于打补丁)

CentOS-Media.repo(本地光盘yum源)

CentOS-Vault.repo(虚拟yum源)

2.  网络yum源

说明:需要联网

/etc/yum.repos.d下的CentOS-Base.repo

文件中的一些说明:

◆    [base]                 容器名称,一定要放置在[]中,

◆    name                                   容器说明,可以自己随便写

◆    mirrorlist                              镜像站点,这个可以注释掉,和baseurl留一个就行

◆    baseurl                                yum源服务器地址,默认是CentOS官方的yum源服务器地址,如果觉得慢,可以修改为自己国内的yum源地址

◆    enabled                               此容器是否生效,如果不写或者写成enabled=1都是生效的,如果写成enabled=0就是不生效

◆    gpgcheck                             如果是1,则是指RPM的数字证书生效,如果是0,则不生效。

◆    gpgkey                                数字证书的公钥文件保存位置。不用修改

2.1常用yum命令

       yum中不再有包全名,只是使用包名即可

       ◆ 查询

              yumlist

                     #查询yum源中所有可用的软件包列表

              yumsearch 关键字

                     #搜索服务器上所有和关键字相关的包,关键字主要指的是包名

       ◆ 安装

              yum-y install 包名

              选项:

                     install                    安装

                     -y                         自动回答yes,就不用每一步骤都回答yes了

      

       ◆ 升级

              yum-y update 包名

              选项:

                     update                  升级

                     -y                         自动回答yes,就不用每一步骤都回答yes了

              说明:如果后面不加包名,会升级所有的软件包,包括Linux内核,但是Linux内核,只有在做了一定配置的时候,才能用,所以远程连接是无法连接,不能开机的。一定不要这样做。

      

◆    卸载

yum -y remove 包名

选项:

                     remove                 卸载

                     -y                         自动回答yes,就不用每一步骤都回答yes了

              注意:如果卸载一个包,他可能依赖于其他包,Linux的yum卸载的时候,会先卸载依赖性最小的那个,最后卸载依赖性最大的那个,这样在卸载的过程中,某一个包不仅要被卸载的包依赖,还有可能被Linux本身依赖,如果这个包被卸载了,会导致很多问题,所以安装软件的时候,选择最小化安装,需要的时候在安装软件,尽量不要卸载,升级的时候选对包

2.2. yum软件组的管理命令

◆    查询

       yum grouplist

              #查询出所有可用的软件组列表

◆    安装软件组名

yum groupinstall软件组名  (如果软件包组有空格,双引号加上软件组名)

#安装指定的软件组,软件组名可以由上面那个命令查找出来,注意:软件组名必须是英文

 ◆  卸载软件组

       yum groupremove 软件组名(如果软件包组有空格,双引号加上软件组名,而且必须是英文)

       #卸载指定的软件组名

3.  光盘yum源

搭建光盘yum源:

1) 挂载光盘,mount /dev/cdrom /mnt/cdrom/

2) 让其他yum源失效,有两种方式,第一种方式是将yum源文件中的enabled修改成0,另一种是将yum源文件,改名,只要后缀不是repo,就可以了

3) 修改本地光盘yum源文件,将enabled改成1,然后baseurl指定,本地光盘的挂载点,file:///mnt/cdrom,说明,这里面有三个斜杠,最后一个斜杠指的是根路径,最后,注释不存在的路径,比如file:///media/cdrom

其他的就和网络yum源的操作是一样的了。

源码包安装

       首先,在用源码包安装之前,要用yum安装一个gcc编译器,因为源码包都是 用c语言写的,所以需要一个可以编译c语言的,编译器。

       说明:源码包的一般安装位置就是,/usr/local/软件名/

                RPM包安装的服务,可以使用系统服务管理命令(service)来管理,例如RPM包安装Apache的启动方法是:

              正常模式:/etc/rc.d/init.d/httpd start-----à所有通过rpm包安装的服务都会在这个目录下。

              service模式:service httpd start-------à这个service在其他Linux中不一定有,是CentOS有的。

              源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认的安装位置中,所以只可以通过绝对路径来进行服务管理

       ◆源码包的保存位置在/usr/local/src/

         源码包的安装位置  /usr/local/软件名/

1.源码包安装过程   

       在解压缩的目录下,有INSTALL,打开,就会有安装过程的指导,每一个Linux源码包都会有,README这个文件是记录的软件操作指导。

1.将压缩包放入/usr/local/src/

       2.解压缩。

       3.进入压缩包的路径下。必须执行,因为后续的命令默认就是这个路径下

       4:./configure --prefix=/usr/local/软件包名(这条命令指定安装位置)

              #当安装过程停止之后,就查看最后几行,有没有出现error,warning,no等字样,没有就证明安装成功,当执行到这一步之后,就会将安装信息生成并且写入到makefile文件,后续步骤就依赖于这个文件

5:make --------à执行到这一步就是编译的意思,

       #如果报错,就是编译出错,这个时候是没有安装的。不用删除任何安装目录文件。

            make clean (万一报错就执行这个,是清楚缓存,变成没有缓存,实际上就是清除了,makefile的相关信息)

6:make install (编译安装)

       #没有报错,就证明安装成功了。

2.  源码包卸载

直接删除安装目录即可。


脚本安装包

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

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

       第一步:下载源码包

       第二步:解压源码包

       第三步:执行解压缩的源码包中的setup.sh脚本,是这样的 ./setup.sh

       第四步:选择功能

       第五步:完成


猜你喜欢

转载自blog.csdn.net/swf_shixinshou/article/details/80198736