Linux软件安装

yum

yum简介

  • yum源就是一个软件集合地,你只需要搜索并安装你想要的软件,它会帮你解决大部分软件的依赖问题
  • 本地yum源:比如说光盘里面一般会附带一些软件,这个时候就可以把光盘当成本地源来安装软件
  • 网络yum源:比如说aliyun的镜像网站,这就属于网络源,可以通过互联网把软件下载下来并安装 yum的全称是yellow dog updater,modified,是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器下载RPM包并自动安装,可以自动处理依赖性关系 并且一次性安装所有依赖的软件包,无需一次次频繁的下载和安装

yum命令

clean all清除原有yum缓存
repolist列出仓库信息
install software安装
update更新
list software查看软件
list all查看所有软件
list installed列出已安装软件
list available列出可安装软件
reinstall software重新安装
remove software卸载
info software查看软件信息
search software根据软件信息查找软件
whatprovides file根据文件找出包含此文件的软件
history查看系统中软件管理信息
history info对该数字为id的信息进行显示
group list列出软件组
group info查看软件组的信息
group install sfgroup安装软件组
group remove sfgroup卸载软件组

本地yum源的配置

脚本 含义

[仓库名称]随意写
name=仓库描述信息 随意写
baseurl=仓库地址,网络或本地(file://开头) 安装源访问地址
gpgcheck=1校验rpm包,0不校验
repodate含有依赖性的文件
packages软件包组
首先查看需要配置yum源的主机系统版本

在这里插入图片描述

将和需要配置yum源的主机系统版本一致的镜像挂载到新建的目录下

在这里插入图片描述

编辑yum源配置文件
vim /etc/yum.repo.d/westos.repo

在这里插入图片描述

查看挂载

在这里插入图片描述

永久挂载

vim  /etc/rc.d/rc.local
或者 vim /etc/fstab

在这里插入图片描述

yum源共享配置

先安装http.并打开服务,然后在防火墙中添加http服务 将需要配置yum源的主机系统版本一致的镜像挂载到默认发布目录下

在这里插入图片描述

在使用端编辑yum源配置文件即可共享

自动更新yum源

安装apache和repository的管理工具yum-utils
yum install httpd yum-utils createrepo -y
systemctl enable httpd
systemctl start httpd

创建文件保存目录
mkdir -p /data/website/centos/6/
mkdir -p /data/website/centos/7/
mkdir -p /data/website/epel/
修改/etc/yum.repos.d/CentOS-Base.repo
## centos7

[base7]

name=CentOS-7-os-cmiot.local

baseurl=http://mirrors.163.com/centos/7/os/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#released updates

[updates7]

name=CentOS-7-updates-cmiot.local

baseurl=http://mirrors.163.com/centos/7/updates/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful

[extras7]

name=CentOS-7-extras-cmiot.local

baseurl=http://mirrors.163.com/centos/7/extras/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

## centos6

[base6]

name=CentOS-6-os-cmiot.local

baseurl=http://mirrors.163.com/centos/6/os/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates

[updates6]

name=CentOS-6-updates-cmiot.local

baseurl=http://mirrors.163.com/centos/6/updates/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful

[extras6]

name=CentOS-6-extras-cmiot.local

baseurl=http://mirrors.163.com/centos/6/extras/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

## epel

[epel6]

name=CentOS-6-epel-cmiot.local

baseurl=https://mirrors.aliyun.com/epel/6/x86_64/

gpgcheck=0

[epel7]

name=CentOS-7-epel-cmiot.local

baseurl=https://mirrors.aliyun.com/epel/7/x86_64/

gpgcheck=0
使用yum repolist验证CentOS-Base.repo文件是否生效

# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                              repo name
base6                                CentOS-6-os-cmiot.local
base7                                CentOS-7-os-cmiot.local
epel6                                CentOS-6-epel-cmiot.local
epel7                                CentOS-7-epel-cmiot.local
extras6                              CentOS-6-extras-cmiot.local
extras7                              CentOS-7-extras-cmiot.local
updates6                             CentOS-6-updates-cmiot.local
updates7                             CentOS-7-updates-cmiot.local

同步CentOS-Base.repo文件中163的centos6包文件

reposync -n --repoid=extras6 --repoid=updates6 --repoid=base6 -p /data/website/centos/6
reposync -n --repoid=epel6 -p /data/website/epel/
同步CentOS-Base.repo文件中163的centos7包文件

reposync -n --repoid=extras7 --repoid=updates7 --repoid=base7 -p /data/website/centos/7
reposync -n --repoid=epel7 -p /data/website/epel/
createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
参数选项说明:

-u  --baseurl <url>
    指定Base URL的地址

-o --outputdir <url>
    指定元数据的输出位置

-x --excludes <packages>
    指定在形成元数据时需要排除的包

-i --pkglist <filename>
    指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。

-n --includepkg
    通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。

-q --quiet
    安静模式执行操作,不输出任何信息。

-g --groupfile <groupfile>
    指定本地软件仓库的组划分,范例如下:
createrepo -g comps.xml /path/to/rpms
    注意:组文件需要和rpm包放置于同一路径下。

-v --verbose
    输出详细信息。

-c --cachedir <path>
    指定一个目录,用作存放软件仓库中软件包的校验和信息。
    当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。

--update
    如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,
    则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。

-p --pretty
    以整洁的格式输出xml文件。

-d --database
    该选项指定使用SQLite来存储生成的元数据,默认项。
创建索引
格式:createrepo -po 源目录 索引元数据的输出位置目录


createrepo -po /data/website/centos/6/base6/ /data/website/centos/6/base6/
createrepo -po /data/website/centos/6/updates6/ /data/website/centos/6/updates6/
createrepo -po /data/website/centos/6/extras6/ /data/website/centos/6/extras6/
createrepo -po /data/website/epel/epel6/ /data/website/epel/epel6/
createrepo -po /data/website/centos/7/base7/ /data/website/centos/7/base7/
createrepo -po /data/website/centos/7/updates7 /data/website/centos/7/updates7
createrepo -po /data/website/centos/7/extras7 /data/website/centos/7/extras7
createrepo -po /data/website/epel/epel7 /data/website/epel/epel7


wget http://mirrors.163.com/centos/6/base6/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml -P /tmp
wget http://mirrors.163.com/centos/7/base7/repodata/38b60f66d52704cffb8696750b2b6552438c1ace283bc2cf22408b0ba0e4cbfa-c7-x86_64-comps.xml -P /tmp
createrepo -g /tmp/43d*-comps.xml /data/website/centos/6/base6/
createrepo -g /tmp/38b*-comps.xml /data/website/centos/7/base7/

下载KEY文件
用户下载安装这个RPM包时,引入RH官方的这个RPM GPG公钥,用来验证RPM包是不是RH官方签名的
wget http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 -P /data/website/centos/
wget http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6 -P /data/website/centos/

设置apache 根目录设置为/data/website
修改/etc/httpd/conf/httpd.conf
注释#DocumentRoot "/var/www/html"这一行,在其下添加

#DocumentRoot "/var/www/html"
DocumentRoot "/data/website"
<Directory "/data/website">
  Options Indexes FollowSymLinks
  Options Indexes
  AllowOverride All
  Order allow,deny
  IndexOptions Charset=UTF-8
  Allow from all
  Require all granted
</Directory>
删除welcome配置,达到访问服务器地址直接现实站点根目录
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
开启httpd服务
systemctl restart httpd
systemctl enable httpd
浏览器就可以通过访问IP来访问/data/website目录


website目录.jpg
定时同步任务

用户端/etc/yum.repos.d/CentOS-Base.repo文件修改
下面以centos6为例:

[base]
name=CentOS-$releasever - Base - cmiot.local
baseurl=http://172.20.11.249/centos/$releasever/base6
gpgcheck=1
gpgkey=http://172.20.11.249/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates - cmiot.local
baseurl=http://172.20.11.249/centos/$releasever/updates6
gpgcheck=1
gpgkey=http://172.20.11.249/centos/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - cmiot.local
baseurl=http://172.20.11.249/centos/$releasever/extras6
gpgcheck=1
gpgkey=http://172.20.11.249/centos/RPM-GPG-KEY-CentOS-6
[epel]
name=CentOS-$releasever - Extras - cmiot.local
baseurl=http://172.20.11.249/epel/epel6
gpgcheck=0
设置每天定时更新脚本 update.sh

#!/bin/bash
echo 开始同步ubuntu
apt-mirror
echo ubuntu同步结束

echo 开始同步centos6
reposync -n --repoid=extras6 --repoid=updates6 --repoid=base6 -p /data/website/centos/6
reposync -n  --repoid=epel6 -p /data/website/epel/
echo centos6同步结束

echo 开始同步centos7
reposync -n --repoid=extras7 --repoid=updates7 --repoid=base7 -p /data/website/centos/7
reposync -n  --repoid=epel7 -p /data/website/epel/
echo centos7同步结束

#更新元数据
createrepo --update /data/website/centos/6/base6/
createrepo --update /data/website/centos/6/updates6/
createrepo --update /data/website/centos/6/extras6/
createrepo --update /data/website/epel/epel6/
createrepo --update /data/website/centos/7/base7/
createrepo --update /data/website/centos/7/updates7/
createrepo --update /data/website/centos/7/extras7/
createrepo --update /data/website/epel/epel7/
crontab -e 添加定时任务

0 6 * * * /data/update.sh
crontab -l 查看定时任务
0 6 * * * /data/update.sh


#!/bin/bash
datetime=`date + "%Y-%m-%d"`
exec > /var/log/centosrepo.log
reposync -d -r base -p /opt/yum/centos/6/os/x86_64/
reposync -d -r updates -p /opt/yum/centos/6/os/x86_64/
reposync -d -r extras -p /opt/yum/centos/6/os/x86_64/
reposync -d -r centosplus -p /opt/yum/centos/6/os/x86_64/
reposync -d -r contrib -p /opt/yum/centos/6/os/x86_64/
if [ $? -eq 0 ];then
    createrepo --update /opt/yum/centos/6/os/x86_64/
    echo "SUCCESS:$datetime epel update successful"
else
    echo "ERROR:$datetime epel update failed"
fi
这个脚本是更新所有的yum包,包括base/updates/extras/centosplus/contrib

需要说明的是,自己的centos上一定要安装epel,这也是一个库,这个库里面有很多yum源上面没有的rpm的包

之后使用root用户去设置crond进程,定时同步。

0 14 * * 0 /bin/bash /root/yum-update.sh

在这里插入图片描述

rpm

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

rpm命令参数

rpm常见命令参数
-i安装
-v显示过程
-hhash加密
-e卸载
-q查看
-a所有
-p软件包
-ql查看软件在系统中的安装文件路径
-qlp查看未安装的软件包在系统中如果安装后产生文件的路径
-qf根据某个文件找出此文件属于那个安装包
-qc查看软件的配置文件名称
-qd查看软件的帮助文件
–scritps查看脚本
–nodeps安装软件忽略软件倚赖
–force强行安装软件
-Kv检测软件包是否被篡改

在这里插入图片描述

第三方软件源搭建

都在一个目录里

建立一个目录/software:mkdir /software ,用于存放软件包

在这里插入图片描述

执行 createrepo -v  /software/
会生成repodate目录

在这里插入图片描述在这里插入图片描述

yum clean all 清除所有的yum缓存,才会使用新的yum源
yum repolist 列出仓库信息

在这里插入图片描述

查看依赖关系

在这里插入图片描述

把一个软件压缩包解压

在这里插入图片描述
在这里插入图片描述

现在就可以直接安装软件了,不用在乎依赖性

在这里插入图片描述

在这里插入图片描述

可以看到存在依赖关系的软件都自动 安装了

在这里插入图片描述

没有第三方软件源时的软件安装

先解决可以解决的依赖性: yum install 软件名 --skip-broken
然后安装软件时忽略软件依赖性: rpm -ivh 软件名 --nodeps
最后直接安装 yum install 软件名
(对于那些有死循环依赖关系的软件)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有依赖关系没有解决

在这里插入图片描述

有依赖关系没有解决

在这里插入图片描述
在这里插入图片描述

参考链接

Centos7通过reposync搭建本地Yum源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值