Linux基础_软件包管理

Posted 一头牛这么多人放

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础_软件包管理相关的知识,希望对你有一定的参考价值。

一,软件包管理

# 使用rpm安装及移除软件RPM

1:rpm:Red-Hat Package Manager

2:rpm文件形式

yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
第1部分是name,表示这个rpm软件包的名称;            # yum-metadata-parser
第2部分是version,表示这个rpm软件包的版本编号;        # 1.1.2
第3部分是release,表示这个rpm软件包的版本发布次数(修正号码);    # 16
第4部分是architectures,表示这个rpm软件包适用于哪些平台;        # el6
第5部分是CPU的位数                                    # x86_64
最后一部分是rpm,表示这个rpm软件包的文件扩展名。    # rpm
# 注:如果软件包版本编号的最后一位为奇数,说明该软件包为测试版本 偶数为稳定版本

 

# 安装软件包

# 基本操作方法
rpm -ivh + 软件包名称
i:安装   v:安装详细信息    h:显示进度

 

# 例如安装软件包 zsh-4.3.11-4.el6.centos.2.x86_64.rpm 

[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
warning: zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]
[root@localhost Packages]# 

# 查看计算机中已安装的软件包
[root@localhost Packages]# rpm -qa        # 显示所有已安装的软件包

# 对安装的软件包进行过滤
[root@localhost Packages]# rpm -qa | grep \'zsh\'
zsh-4.3.11-4.el6.centos.2.x86_64
[root@localhost Packages]# 

# 只查询一个
[root@localhost Packages]# rpm -q zsh
zsh-4.3.11-4.el6.centos.2.x86_64
[root@localhost Packages]# 

# 删除软件包
[root@localhost Packages]# rpm -e zsh

 

 

# 覆盖安装

## 当安装两遍时
# 第一遍成功
[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
warning: zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]
   
# 第二遍失败
[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
warning: zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
    package zsh-4.3.11-4.el6.centos.2.x86_64 is already installed
[root@localhost Packages]# 

--force  覆盖安装
[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm --force
warning: zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]

 

# --nodeps 忽略删除软件包时存在的依赖性

# 当删除一个文件时,该文件被另一个文件所使用,存在依赖性,不能进行删除
[root@localhost Packages]# rpm -e dhcp-common
error: Failed dependencies:
    dhcp-common = 12:4.1.1-51.P1.el6.centos is needed by (installed) dhclient-12:4.1.1-51.P1.el6.centos.x86_64

# --nodeps 忽略依赖性
[root@localhost Packages]# rpm -e dhcp-common --nodeps

 

# 当安装软件包时存在依赖性

# 安装时存在依赖性(不能进行安装)
[root@localhost Packages]# rpm -ivh dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm 
warning: dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
    dhcp-common = 12:4.1.1-51.P1.el6.centos is needed by dhclient-12:4.1.1-51.P1.el6.centos.x86_64

# 安装依赖性前的文件
    [root@localhost Packages]# rpm -ivh dhcp-common-4.1.1-51.P1.el6.centos.x86_64.rpm 
warning: dhcp-common-4.1.1-51.P1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:dhcp-common            ########################################### [100%]

# 再安装要安装的文件
[root@localhost Packages]# rpm -ivh dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm warning: dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
    package dhclient-12:4.1.1-51.P1.el6.centos.x86_64 is already installed

 

# 安装网络上的安装包(得联网)

# 从网络上直接安装
[root@localhost Packages]# rpm -ivh http://vault.centos.org/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm
Retrieving http://vault.centos.org/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm
warning: /var/tmp/rpm-tmp.fTZN9K: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:python-boto            ########################################### [100%]


# 将网路中的安装包下载下来 wget
[root@localhost ~]# wget http://vault.centos.org/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm


# 查询安装信息
[root@localhost ~]# rpm -qi python-boto
Name        : python-boto                  Relocations: (not relocatable)
Version     : 2.32.1                            Vendor: CentOS
Release     : 1.el6.centos                  Build Date: 2014年11月01日 星期六 00时47分37秒
Install Date: 2019年01月23日 星期三 22时44分30秒      Build Host: c6b8.bsys.dev.centos.org
Group       : Development/Languages         Source RPM: python-boto-2.32.1-1.el6.centos.src.rpm
Size        : 8846304                          License: MIT
Signature   : RSA/SHA1, 2014年11月04日 星期二 02时54分24秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : https://github.com/boto/boto
Summary     : A simple, lightweight interface to Amazon Web Services
Description :
Boto is a Python package that provides interfaces to Amazon Web Services.
It supports over thirty services, such as S3 (Simple Storage Service),
SQS (Simple Queue Service), and EC2 (Elastic Compute Cloud) via their
REST and Query APIs.  The goal of boto is to support the full breadth
and depth of Amazon Web Services.  In addition, boto provides support
for other public services such as Google Storage in addition to private
cloud systems like Eucalyptus, OpenStack and Open Nebula.

 

# 查询软件安装包安装的位置

# 查询软件包安装的位置 rpm -ql +文件名
[root@localhost ~]# rpm -ql python-boto

 

二,yum安装

1:yum:Yello dog Updater

2:目的:解决RPM的依赖关系问题

rpm ---->安装源(本地,网路)
yum ---->安装源(本地源:使用固定格式 file://)

# 在配置文件中添加以下内容

[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[root@localhost ~]# cat /etc/yum.repos.d/local.repo
[local]
name=local yum
baseurl=file:///media/CentOS_6.8_Final
enable=1
gpgcheck=0
[root@localhost ~]# 

# 内容
[local]
name=local yum
baseurl=file:///media/CentOS_6.8_Final
enable=1
gpgcheck=0

 

# yum解决依赖性的原理:在一个文件中存放各种依赖性关系

1)找到配置文件中的 baseurl=file:///media/CentOS_6.8_Final 
2)在该目录下有个文件repodata(里面存放依赖性关系)
3)再到baseurl=file:///media/CentOS_6.8_Final中找到所有需要的软件包

 

# 安装一个具有依赖性的文件

# 不能用rpm直接安装
[root@localhost Packages]# rpm -ivh dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm 
warning: dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
    dhcp-common = 12:4.1.1-51.P1.el6.centos is needed by dhclient-12:4.1.1-51.P1.el6.centos.x86_64

# 可以用yum安装
root@localhost ~]# yum install dhclient
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
(下面省略)

 

## 自定义yum语言

# 1 安装createrepo(createrepo用来创建repodata文件)
[root@localhost Packages]# vim /etc/yum.repos.d/local.repo
[root@localhost Packages]# yum install createrepo-0.9.9-24.el6.noarch.rpm 


# 2 在/test目录下安装repodata
#未安装repodata的 
[root@localhost Packages]# ls /test
dhcp-4.1.1-51.P1.el6.centos.x86_64.rpm
dhcp-common-4.1.1-51.P1.el6.centos.x86_64.rpm

# 安装repodata的(依赖关系文件)
[root@localhost Packages]# createrepo /test
Spawning worker 0 with 2 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

# 浏览test目录,多了一个repodata依赖性文件
[root@localhost Packages]# ls /test
dhcp-4.1.1-51.P1.el6.centos.x86_64.rpm         repodata
dhcp-common-4.1.1-51.P1.el6.centos.x86_64.rpm
[root@localhost Packages]# 
# 此时的test文档下有文件repodata,该文件具有依赖性关系的包,可以将yum的配置文件的baseurl指向/test,当安装软件包时,就会到该目录/test下找repodata文件
代码

 

# yum软件包的更多知识

yum -y install *http*    # 表示安装xxx + http + xxx

# 删除某个软件包 erase
[root@localhost Packages]# yum erase dhcp-common

# 加载依赖性关系(让安装软件包时减少时间)
[root@localhost Packages]# yum makecache

 

# 安装网络中的软件包

在baseurl中写到x86_64即可,因为该目录下有repodata(依赖性文件)


# 具体方法
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# touch centos.repo
[root@localhost yum.repos.d]# vim centos.repo
[root@localhost yum.repos.d]# cat centos.repo
[centos]
name=remote yum
baseurl=http://vault.centos.org/6.8/extras/x86_64/
enabled=1
gpgcheck=0 
[root@localhost yum.repos.d]# yum install epel-release -y
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
(下方省略)

 

## 注:当从网络上直接安装的软件包,安装完成后yum会将软件包删除
# 若想安装后保存软件包,则得修改配置文件
[root@localhost yum.repos.d]# vim /etc/yum.conf
# 文件中的该行内容控制是否保存安装后的软件包
keepcache=0 # 不保存缓存
keepcache=1 # 保存缓存

 ## 源码安装

1)准备
yum install gcc-* glibc-* make -y
源码路径:https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
# 将源码下载到本地
[root@localhost Python-3.7.2]# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

2)解包
tar xvf Python-3.7.2.tgz

3)执行脚本configure,添加编译参数,指定安装路劲
[root@localhost Python-3.7.2]# ./configure --prefix=/usr/local/python3.7

 

 ## grouplist

[root@localhost Python-3.7.2]# yum grouplist
已加载插件:fastestmirror, refresh-packagekit, security
设置组进程
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.163.com
 * updates: mirror.jdcloud.com
epel/group_gz                                            |  71 kB     00:00     
已安装的组:
   Java 平台
   Milkymist
   NFS 文件服务器
   Perl 支持
   X 窗口系统
   万维网服务器
   互联网应用程序
   互联网浏览器
   兼容程序库
   办公套件和生产率
   图形管理工具
   基本
   字体
   安全性工具
   性能工具
   打印客户端
   打印服务器
   拨号网络支持
   服务器平台
   桌面
   桌面平台
   桌面调试和运行工具
   电子实验室
   电子邮件服务器
   目录客户端
   硬件监控工具
   继承 UNIX 兼容性
   继承 X Windows 系统的兼容性
   网络基础设施服务器
   网络文件系统客户端
   联网工具
   调试工具
   输入法
   通用桌面
   附加开发
Installed Language Groups:
   不丹语支持 [dz]
   中文支持 [zh]
   乌尔都语支持 [ur]
   亚美尼亚语支持 [hy]
   伊努伊特语支持 [iu]
   印地语支持 [hi]
   叙利亚语支持 [or]
   古吉拉特语支持 [gu]
   古吉拉特语支持 [mr]
   坎纳达语支持 [kn]
   埃塞俄比亚语支持 [am]
   塔吉克语支持 [tg]
   孟加拉语支持 [bn]
   希伯来语支持 [he]
   库德语支持 [ku]
   康干语支持 [kok]
   文达语支持 [ve]
   新哈拉语支持 [si]
   旁遮普语支持 [pa]
   日语支持 [ja]
   格鲁吉亚语支持 [ka]
   比哈尔语支持 [mai]
   泰卢固语支持 [te]
   泰米尔语支持 [ta]
   泰语支持 [th]
   缅甸语支持 [my]
   老挝语支持 [lo]
   阿拉伯语支持 [ar]
   阿萨姆语支持 [as]
   韩文支持 [ko]
   马来语支持 [ml]
   高棉语支持 [km]
有效的组:
   CIFS 文件服务器
   Eclipse
   Emacs
   FCoE 存储客户端
   FTP 服务器
   Fedora Packager
   Haskell
   Infiniband 支持
   KDE 桌面
   mysql 数据库客户端
   MySQL 数据库服务器
   php 支持
   PostgreSQL 数据库客户端
   PostgreSQL 数据库服务器
   Ruby 支持
   SNMP 支持
   TeX 支持
   TurboGear 应用程序框架
   Web 服务器程序引擎
   Xfce
   iSCSI 存储客户端
   主框架访问
   可扩展文件系统
   图形生成工具
   基于网页的企业级管理
   备份客户端
   备份服务器
   大系统性能
   存储可用性工具
   客户端管理工具
   开发工具
   弹性存储
   控制台互联网工具
   教育软件
   智能卡支持
   服务器平台开发
   桌面平台开发
   目录服务器
   短信客户端支持
   科学记数法支持
   科技写作
   系统管理
   系统管理工具
   网络存储服务器
   虚拟化
   虚拟化客户端
   虚拟化工具
   虚拟化平台
   虚拟机代理
   负载平衡器
   身份管理服务器
   远程桌面客户端
   高可用性
   高可用性管理
Available Language Groups:
   上索布语支持 [hsb]
   世界语支持 [eo]
   丹麦语支持 [da]
   乌克兰语支持 [uk]
   乌兹别克语支持 [uz]
   低地撒克逊语支持 [nds]
   佛里乌里语支持 [fur]
   俄语支持 [ru]
   保加利亚语支持 [bg]
   信德语支持 [sd]
   克什米尔语支持 [ks]
   克罗地亚语支持 [hr]
   冰岛语支持 [is]
   加利西亚语支持 [gl]
   加泰隆语支持 [ca]
   匈牙利语支持 [hu]
   华隆语支持 [wa]
   南 Ndebele 语支持 [nr]
   南索托语支持 [st]
   南非荷兰语支持 [af]
   卡舒比语支持 [csb]
   卢旺达语支持 [rw]
   卢森堡语支持 [lb]
   印度尼西亚语支持 [id]
   史瓦希里语支持 [sw]
   哈萨克语支持 [kk]
   国际语支持 [ia]
   土库曼语支持 [tk]
   土耳其语支持 [tr]
   埃及古语支持 [cop]
   塔加洛语支持 [tl]
   塞尔维亚语支持 [sr]
   夫里斯兰语支持 [fy]
   奇卡瓦语支持 [ny]
   奥克西唐语支持 [oc]
   威尔士语支持 [cy]
   宗加语支持 [ts]
   尼泊尔语支持 [ne]
   巴斯克语支持 [eu]
   巴西葡萄牙语支持 [pt_BR]
   布尔吞语支持 [br]
   布尔吞语支持 [nso]
   希利盖农语支持 [hil]
   希腊语支持 [el]
   德语支持 [de]
   德顿语支持 [tet]
   恰蒂斯加尔语支持 [hne]
   意大利语支持 [it]
   拉丁语支持 [la]
   拉脱维亚语支持 [lv]
   挪威语支持 [nb]
   捷克语支持 [cs]
   斐济语支持 [fj]
   斯洛伐克语支持 [sk]
   斯洛文尼亚语支持 [sl]
   斯瓦蒂语支持 [ss]
   曼岛语支持 [gv]
   梵语支持 [sa]
   毛利语支持 [mi]
   法罗语支持 [fo]
   法语支持 [fr]
   波兰语支持 [pl]
   波斯语支持 [fa]
   泰斯文那语支持 [tn]
   爱尔兰语支持 [ga]
   爱沙尼亚语支持 [et]
   瑞典语支持 [sv]
   白俄罗斯语支持 [be]
   盖尔语支持 [gd]
   祖鲁语支持 [zu]
   科萨语支持 [xh]
   立陶宛语支持 [lt]
   索马里语支持 [so]
   罗马尼亚语支持 [ro]
   芬兰语支持 [fi]
   英国英语支持 [en_GB]
   荷兰语支持 [nl]
   菲律宾语支持 [fil]
   萨丁尼亚语支持 [sc]
   葡萄牙语支持 [pt]
   蒙古语支持 [mn]
   藏语支持 [bo]
   西班牙语支持 [es]
   越南语支持 [vi]
   阿塞拜疆语支持 [az]
   阿尔巴尼亚语支持 [sq]
   阿马兹格语支持 [ber]
   马其顿语支持 [mk]
   马尔他语支持 [mt]
   马来语支持 [ms]
   马达加斯加语支持 [mg]
完成
代码

 

 # grouplist用法

[root@localhost Python-3.7.2]# yum groupinstall \'开发工具\'

 

 ## 补充 环境变量问题

# 将python加入PATH环境变量
[root@localhost bin]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin/usr/local/Python3.7.2/bin/

# 将Python路径加到环境变量中(临时修改) [root@localhost ~]# PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/usr/local/Python3.7.2/bin/ [root@localhost ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/usr/local/Python3.7.2/bin/ [root@localhost ~]#

# 将Python路径加到环境变量中(永久修改) root@localhost ~]# vim /etc/profile # 打开配置文件 将 PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/usr/local/Python3.7.2/bin/ 加到最后将一行并保存

 

以上是关于Linux基础_软件包管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础常用开发工具——yum包管理工具

免费下载全套最新4.Linux网络服务管理视频教程+教学资料+学习课件+源代码+软件开发工具

linux基础入门之管理linux软件

linux常用命令整理:软件包管理和shell基础

Linux基础三(软件安装管理)

linux基础16软件包管理