Linux软件包管理

Linux软件包管理学习路线如下一、软件包的分类1.二进制包 二进制包指的是已经安装好了的软件包,只需要直接安装就可以使用;二进制包不需要编译,直接下载即可使用;二

大家好,欢迎来到IT知识分享网。

学习路线如下

Linux软件包管理

一、软件包的分类

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.718.el6 will be 安装 –> 处理依赖关系 libstdc++-devel = 4.4.718.el6,它被软件包 gcc-c++-4.4.718.el6.x86_64 需要 –> 执行事务检查 —> Package libstdc++-devel.x86_64 0:4.4.718.el6 will be 安装 –> 完成依赖关系计算 依赖关系解决

…………略 已安装: gcc-c++.x86_64 0:4.4.718.el6 作为依赖被安装: libstdc++-devel.x86_64 0:4.4.718.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/

Linux软件包管理

下载完成后,使用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

开启yum缓存

1.yum缓存的作用:

再次安装时,如果你的设备处于内网状态可以从本地进行安装。

2.更改配置开启yum缓存

[root@jiangfeng1 ~]# vim /etc/yum.conf 

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1    //开启缓存
debuglevel=2

至此,在/var/cache/yum/x86_64/6/下就有yum缓存了

[root@jiangfeng1 6]# ls /var/cache/yum/x86_64/6/
c6-media  mysql56-community  mysql-connectors-community  nginx-stable  timedhosts.txt
epel      mysql80-community  mysql-tools-community       qinghua

自建yum仓库

如果你想要安装指定版本的软件,并且使用本地安装时,你就需要自建yum仓库来进行安装。

1)创建一个目录来存放软件包

[root@jiangfeng1 6]# mkdir /soft

2)把你准备的软件放到/soft文件中

[root@jiangfeng1 soft]# ls
mysql-community-client-5.6.43-2.el6.x86_64.rpm
mysql-community-common-5.6.43-2.el6.x86_64.rpm
mysql-community-libs-5.6.43-2.el6.x86_64.rpm
mysql-community-libs-compat-5.6.43-2.el6.x86_64.rpm
mysql-community-server-5.6.43-2.el6.x86_64.rpm

3)使用createrepo命令进行扫描并生成repodata,如果没有此软件请使用yum安装。

[root@jiangfeng1 soft]# yum install createrepo
[root@jiangfeng1 soft]# createrepo /soft
Spawning worker 0 with 5 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@jiangfeng1 soft]# ls
mysql-community-client-5.6.43-2.el6.x86_64.rpm
mysql-community-common-5.6.43-2.el6.x86_64.rpm
mysql-community-libs-5.6.43-2.el6.x86_64.rpm
mysql-community-libs-compat-5.6.43-2.el6.x86_64.rpm
mysql-community-server-5.6.43-2.el6.x86_64.rpm
repodata

4)配置自己的yum仓库,然后重新生成缓存

[root@jiangfeng1 yum.repos.d]# vim mysql-local.repo 

[mysql-local]
name=mysql-local yum
enabled=1
baseurl=file:///soft
gpgcheck=0

5)关闭其他源后,可以通过yum list查看mysql的所有安装包

[root@jiangfeng1 yum.repos.d]# yum list | grep mysql
mysql-community-client.x86_64              5.6.43-2.el6                @mysql-local
mysql-community-common.x86_64              5.6.43-2.el6                @mysql-local
mysql-community-libs.x86_64                5.6.43-2.el6                @mysql-local
mysql-community-server.x86_64              5.6.43-2.el6                @mysql-local

6)安装5.6.43版本的mysql

[root@jiangfeng1 yum.repos.d]# yum install mysql-client mysql-server

…………略


依赖关系解决

=============================================================================================================================
 软件包                                架构                  版本                           仓库                        大小
=============================================================================================================================
正在安装:
 mysql-community-server                x86_64                5.6.43-2.el6                   mysql-local                 55 M
为依赖而安装:
 mysql-community-client                x86_64                5.6.43-2.el6                   mysql-local                 18 M
 mysql-community-common                x86_64                5.6.43-2.el6                   mysql-local                308 k
 mysql-community-libs                  x86_64                5.6.43-2.el6                   mysql-local                1.9 M


已安装:
  mysql-community-server.x86_64 0:5.6.43-2.el6                                                                               

作为依赖被安装:
  mysql-community-client.x86_64 0:5.6.43-2.el6                  mysql-community-common.x86_64 0:5.6.43-2.el6                 
  mysql-community-libs.x86_64 0:5.6.43-2.el6                   

完毕!

6)通过rpm工具查看软件是否安装

[root@jiangfeng1 yum.repos.d]# rpm -qa | grep mysql
mysql-community-libs-5.6.43-2.el6.x86_64
mysql-community-common-5.6.43-2.el6.x86_64
mysql-community-client-5.6.43-2.el6.x86_64
mysql-community-server-5.6.43-2.el6.x86_64

三、使用源码包进行安装

源代码编译安装软件有以下优点,获取软件的最新版及时修复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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/57276.html

(0)
上一篇 2024-05-05 10:00
下一篇 2024-05-05 11:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信