码迷,mamicode.com
首页 > 系统相关 > 详细

Linux软件包管理

时间:2019-07-15 01:28:53      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:方便   ack   apr-util   uri   官方   sysconf   search   计算机   运行   

学习路线如下

技术图片

 

 

一、软件包的分类

1.二进制包

    二进制包指的是已经安装好了的软件包,只需要直接安装就可以使用;二进制包不需要编译,直接下载即可使用;二进制包需要根据自己的计算机CPU和操作系统去选择合适的包来安装

2.源码包

    源码包是编程人员写的程序代码文件,不能够直接在计算机上运行;源码包需要进行编译,编程二进制的软件包后才能安装使用;源码包一般是压缩后的文件。

3.二进制源码包(了解)

    二进制源码包是一个半成品,安装后不能直接使用,需要使用rpmbuild工具重建成真正的rpm包或源码包才可安装使用

 

二进制包的安装

使用rpm工具

1.rpm工具安装软件的思路和rpm包的获取

    1)通过网络下载或通过光盘等镜像文件找到相应的rpm包

    2)使用rpm命令进行安装

    3)推荐网站下载rpm包:

    http://rpmfind.net

    rpm.pbone.net

 

2.rpm工具对rpm包的管理

① rpm工具安装rpm包
# rpm -ivh 软件包

[root@jiangfeng1 Packages]# rpm -ivh gcc-4.4.7-18.el6.x86_64.rpm 
warning: gcc-4.4.7-18.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:gcc                    ########################################### [100%]

② rpm工具卸载rpm包
# rpm -e 软件包名字
注:卸载软件只需跟软件包名,卸载成功不会有提示

[root@jiangfeng1 Packages]# rpm -e gcc
[root@jiangfeng1 Packages]# echo $?
0
[root@jiangfeng1 Packages]# rpm -e gcc-c++
error: package gcc-c++ is not installed

③ rpm包的升级rpm包
# rpm -Uvh 软件包 或者 # rpm -Fvh 软件包 选项说明: -v:输出详细信息 -h:打印散列标记,一般-vh一起使用 -U:升级软件包,如果该软件包没安装,会自动帮你安装 -F:升级软件包,如果该软件包没安装,不会自动帮你安装

[root@jiangfeng1 Packages]# rpm -Fvh gcc-4.4.7-18.el6.x86_64.rpm 
warning: gcc-4.4.7-18.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
[root@jiangfeng1 Packages]# rpm -qa | grep gcc
libgcc-4.4.7-18.el6.x86_64
[root@jiangfeng1 Packages]# rpm -Uvh gcc-4.4.7-18.el6.x86_64.rpm 
warning: gcc-4.4.7-18.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:gcc                    ########################################### [100%]
[root@jiangfeng1 Packages]# rpm -qa | grep gcc
libgcc-4.4.7-18.el6.x86_64
gcc-4.4.7-18.el6.x86_64

④ 查看rpm包相关信息
查看已经安装的软件的文件列表
     rpm -ql  软件包名
查看未安装的rpm包里的文件列表
     rpm -qlp  软件包(xxx.rpm)
查看已经安装的所有rpm包
     rpm -qa 软件包名
查看已经安装软件的文档列表
     rpm -qd 软件包名
查看已经安装软件的配置文件
     rpm -qc 软件包名
查看已经安装软件的详细信息
     rpm -qi 软件包名
查看指定文件来自哪个rpm包
     rpm -qf 文件名

⑤ rpm工具其他安装选项
--force     表示强制
     rpm -ivh 软件包 --force    强制安装软件包
     rpm -e 软件包名 --force    强制卸载软件包
--nodeps    忽略依赖关系
     rpm -ivh 软件包 --nodeps   忽略依赖关系安装
     rpm -e 软件包 --nodeps     忽略依赖关系卸载

   

使用yum进行安装

1.本地yum源的配置

    注:需要光盘或U盘的系统镜像

1)把镜像文件挂在到系统中

[root@jiangfeng1 ~]# mount /dev/sr0 /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only

2)更改/etc/yum.repos.d目录下的配置文件;对CentOS-Base.repo进行重命名(方便之后更改),对CentOS-Media.repo文件进行更改。

    其中CentOS-Media.repo配置文件改成如下内容

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/
#file:///media/CentOS/
#        file:///media/cdrom/
#        file:///media/cdrecorder/
gpgcheck=0
enabled=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

    CentOS-Base.repo可重命名为CentOS-Base.repo.bak.

3)重新生成yum仓库

[root@jiangfeng1 yum.repos.d]# yum makecache
已加载插件:fastestmirror, security
Determining fastest mirrors
c6-media                                                                                       | 4.0 kB     00:00 ... 
c6-media/group_gz                                                                              | 226 kB     00:00 ... 
c6-media/filelists_db                                                                          | 6.3 MB     00:00 ... 
c6-media/primary_db                                                                            | 4.7 MB     00:00 ... 
c6-media/other_db                                                                              | 2.7 MB     00:00 ...  
元数据缓存已建立

4)对本地yum源进行测试

[root@jiangfeng1 ~]# yum install gcc-c++ 已加载插件:fastestmirror, security 设置安装进程 Loading mirror speeds from cached hostfile 解决依赖关系 --> 执行事务检查 ---> Package gcc-c++.x86_64 0:4.4.7-18.el6 will be 安装 --> 处理依赖关系 libstdc++-devel = 4.4.7-18.el6,它被软件包 gcc-c++-4.4.7-18.el6.x86_64 需要 --> 执行事务检查 ---> Package libstdc++-devel.x86_64 0:4.4.7-18.el6 will be 安装 --> 完成依赖关系计算 依赖关系解决

…………略 已安装: gcc-c++.x86_64 0:4.4.7-18.el6 作为依赖被安装: libstdc++-devel.x86_64 0:4.4.7-18.el6

 

2.使用网络yum源

1)使用Centos自带的yum源。

      当你装好Centos系统后,系统就会默认配置好了指向Centos的网络yum源,配置文件为/etc/yum.repos.d/CentOS-Base.repo。

          如果你像本人一样做了备份,直接更改改名即可,如果没有文件的代码如下。

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

2)使用国内知名yum源

    访问国外的源,网速或多或少会有限制,配置成为国内的yum源,下载软件速度会有所提高。这里以配置清华园为例;清华源网址为:https://mirrors.tuna.tsinghua.edu.cn/

[root@jiangfeng1 yum.repos.d]# vim qinghua.repo 

[qinghua]
name=qinghua network yum
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/6/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6

     配置完成后重新生成yum仓库即可。

3.使用特定软件yum源。

在使用yum安装时,有许多软件在本地、网络yum仓库中没有这些软件(如Nginx,MYSQL),这时你可以去官网下载软件包或配置特定软件的源,这里我以Nginx和MYSQL为例进行配置。

1)配置Nginx源

在Nginx官网中,nginx就提供了yum源的配置,详情见http://nginx.org/en/linux_packages.html

我们按照官方文档进行配置。

[root@jiangfeng ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

重新生成缓存结果如下。

[root@jiangfeng1 yum.repos.d]# yum makecache
已加载插件:fastestmirror, security
Loading mirror speeds from cached hostfile
c6-media                                                  | 4.0 kB     00:00 ... 
nginx-stable                                              | 2.9 kB     00:00     
nginx-stable/filelists_db                                 |  61 kB     00:18     
nginx-stable/primary_db                                   |  49 kB     01:12     
nginx-stable/other_db                                     |  26 kB     00:01     
qinghua                                                   | 3.7 kB     00:00     
qinghua/group_gz                                          | 242 kB     00:00     
qinghua/filelists_db                                      | 6.4 MB     00:36     
qinghua/primary_db                                        | 4.7 MB     00:26     
qinghua/other_db                                          | 2.8 MB     00:15     
元数据缓存已建立

2)配置MYSQL YUM存储库

    MYSQL官网有Yum源的配置,相应选择与你系统匹配的文件进行下载。相应的官方文档网址为:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

技术图片

       下载完成后,使用rpm命令进行安装,我下载的为第二个,如果你也一样的话 可以按下面的代码进行安装。

yum mysql80-community-release-el6-3.noarch.rpm
//默认情况下启用最新GA系列,需要通过命令进行相应的禁用和启动
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql56-community


[root@jiangfeng1 yum.repos.d]# yum repolist all | grep mysql
mysql-cluster-7.5-community        MySQL Cluster 7.5 Community       禁用
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - Sou 禁用
mysql-cluster-7.6-community        MySQL Cluster 7.6 Community       禁用
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - Sou 禁用
mysql-cluster-8.0-community        MySQL Cluster 8.0 Community       禁用
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - Sou 禁用
mysql-connectors-community         MySQL Connectors Community        启用:    94
mysql-connectors-community-source  MySQL Connectors Community - Sour 禁用
mysql-tools-community              MySQL Tools Community             启用:    78
mysql-tools-community-source       MySQL Tools Community - Source    禁用
mysql-tools-preview                MySQL Tools Preview               禁用
mysql-tools-preview-source         MySQL Tools Preview - Source      禁用
mysql55-community                  MySQL 5.5 Community Server        禁用
mysql55-community-source           MySQL 5.5 Community Server - Sour 禁用
mysql56-community                  MySQL 5.6 Community Server        启用:   512
mysql56-community-source           MySQL 5.6 Community Server - Sour 禁用
mysql57-community                  MySQL 5.7 Community Server        禁用
mysql57-community-source           MySQL 5.7 Community Server - Sour 禁用
mysql80-community                  MySQL 8.0 Community Server        禁用
mysql80-community-source           MySQL 8.0 Community Server - Sour 禁用

更改完成后,重新生成yum缓存

[root@jiangfeng1 ~]# yum makecache
已加载插件:fastestmirror, security
Loading mirror speeds from cached hostfile
c6-media                                                                                       | 4.0 kB     00:00 ... 
mysql-connectors-community                                                                     | 2.5 kB     00:00     
mysql-tools-community                                                                          | 2.5 kB     00:00     
mysql56-community                                                                              | 2.5 kB     00:00     
nginx-stable                                                                                   | 2.9 kB     00:00     
qinghua                                                                                        | 3.7 kB     00:00     
元数据缓存已建立

测试:指定安装mysql5.6.43版本

[root@jiangfeng1 ~]# yum install mysql-community-server-5.6.43 mysql-libs-5.6.43

[root@jiangfeng1 ~]# rpm -qa | grep mysql
mysql-community-libs-5.6.44-2.el6.x86_64
mysql-community-client-5.6.44-2.el6.x86_64
mysql80-community-release-el6-3.noarch
mysql-community-common-5.6.43-2.el6.x86_64
mysql-community-libs-compat-5.6.44-2.el6.x86_64
mysql-community-server-5.6.43-2.el6.x86_64

 

补充:yum的相关命令

1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install <package_name>
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包 命令:yum search <keyword>
8.清除缓存命令:
    yum clean packages: 清除缓存目录下的软件包
    yum clean headers: 清除缓存目录下的 headers
    yum clean oldheaders: 清除缓存目录下旧的 headers
    yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

 

 

使用源码包进行安装

源代码编译安装软件有以下优点,获取软件的最新版及时修复bug,软件功能可按需选择或定制,有更多软件可供选择,源码包适用于各种平台。

1.可能需要的软件gcc,gcc-c++,make

    [root@jiangfeng ~]# yum install gcc gcc-c++ make –y

2.举例:APR的安装

tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure
make && make install

注:./configure后可以根据需要指定相应的编译参数,拿Apache作为参考

# 选择安装目录
--prefix=/usr/local/apache

# 选择安装配置目录
--sysconfdir=/etc/httpd

# 定义apr目录
--with-apr=/usr/local/apr

# 定义apr-util目录
--with-apr-util=/usr/local/apr-util

详细的./configure的配置和用法可以查看这位博主的博客https://blog.csdn.net/sunjing_/article/details/79146827

Linux软件包管理

标签:方便   ack   apr-util   uri   官方   sysconf   search   计算机   运行   

原文地址:https://www.cnblogs.com/feng0919/p/11186573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!