软件包管理
2022-10-07 08:09:47 0 举报
AI智能生成
Linux-软件包管理 yum
作者其他创作
大纲/内容
清理机器环境
yum remove nginx httpd -y
会有配置文件的残留
直接恢复系统的快照
简单干净
什么是软件包
Windows下
软件包,指的就是,程序安装所需要的一个文件,在可视化的系统下,一般是双击安装即可,用于安装某个程序,某个软件。
Linux下
软件包顾名思义就是将应用程序、配置文件和数据打包的产物
yum install -y nginx<br>#先下载nginx.rpm软件包,然后yum自动去帮你安装了这个包
/usr/bin/nginx #命令,可执行文件<br>/etc/nginx/nginx.conf # 配置文件,里面写了用于控制该软件的不同功能的参数
不同的系统,使用的软件包格式不一样
centos、Redhat使用的是rpm软件包
xxx.rpm
ubantu使用的是deb包
xxx.deb
Linux下的rpm软件包
是一个将二进制文件+配置文件+数据文件 ,打包好的一个单个文件
二进制文件是源码经过编译后的产物
什么是源码包
编译型语言源码
go语言
golang
c语言
未编译源码包
解释型语言源码
python
脚本语言程序源码
bash
cat hello.sh<br>echo 'hello world'
计算机只能识别机器语言,也就是二进制语言,所以源码包安装之前需要编译。
c语言的的gcc编译器
golang语言使用的是golang编译器
python语言,解释型语言(python解释器)
一边编译程序员写的代码,一边编译机器认识的机器语言
编译的缺点
编译过程耗时较长
大多数用户不懂开发,编译过程中可能会有各种错误,用户无力解决。
什么是二进制包
已经编译好
centos平台可以使用的rpm包
支持二进制包下载的某些软件
*.tar.gz
下载解压即用
二禁止源码包(了解即可)
下载后还需要自己再构建rpm
构建命令
rpm,rpmbuild
xxxx.src.rpm
常见二进制软件包
系统平台
redhat/centos/...
安装软件包后缀 *.rpm
rpm包命令
rpm
rpbuild
在线安装rpm包
yum命令
ubuntu
安装包文件后缀格式 *.deb
deb包相关命令
dpkg命令
在线安装deb包
apt命令
rpm包安装管理命令
创建
如何搜索,下载rpm包,去那找
在线下载rpm包
有很多软件的官网,以及第三方软件仓库,会提供rpm包下载功能
www.rpmfind.net
还有更好的,更加精准的应该去软件的官网,去下载它的rpm包
http://nginx.org/packages/
本地光盘镜像rpm包
centos7.iso镜像文件,内置了绝大多数软件的rpm包
1.光盘插入操作系统的光驱
2.确认了光驱选择了镜像
3.使用df -h 或者 lsblk 查看情况
4.对光盘文件进行挂载使用
mount /dev/sr0 /mnt
一般挂载都挂在mnt目录下
挂载后才可以看见光盘内的内容,才能使用
5.安装需要的rpm包
6.取消挂载
umount 挂载点
需要运维提前下载好软件的rpm包,拷贝到对应服务器上,去安装(需要手动解决依赖关系)
安装rpm
rpm -ivh
下载
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm
安装
[root@liuxinghan opt]# rpm -ivh nginx-1.10.0-1.el7.ngx.x86_64.rpm <br>
查询
rpm -qa
[root@liuxinghan opt]# rpm -qa nginx<br>nginx-1.10.0-1.el7.ngx.x86_64<br>
语法:# rpm -qa | grep 软件名称<br>选项:<br>-q:查询,query<br>-a:全部,all<br>-i :显示软件包的概要信息,详细信息<br>-v :显示安装详细过程<br>-h:显示安装进度
rpm -qi
显示一些详细信息
rpm -qf 文件名
根据文件名,查询属于那个软件包
rpm -ql 软件包
列出了软件包生成了那些文件
升级
需要获取软件的新版本
升级的版本过大时,不建议使用rpm,需要解决的依赖关系太多
rpm -Uvh 完整的安装包路径
-U:upgrade,升级<br>-v:表示显示进度条<br>-h:表示以#形式显示进度条
删除
rpm -e 软件名
卸载nginx
注意名字必须准确,
手动处理依赖关系
很多都依赖关系
自己安装时会出现很多的依赖报错
依赖关系的解决很麻烦,需要谨慎处理
还有关于依赖冲突
自己安装的的可能比较新,对于后面的自带的依赖版本过高
yum remove vim -y
可能卸载了软件,但是依赖卸载不完全
但是你还没完全卸载,需要再次卸载
先去查询 rpm -qi 依赖包名
卸载冲突的依赖包 rpm -e 依赖包名
安装正确的依赖包 rpm -ivh 依赖包
rpm的依赖冲突要去一级一级的解决,不能跳级
源码包安装管理命令
1.先下载对应软件的源码文件
1.安装淘宝的tengine
2.下载地址
http://tengine.taobao.org/download/tengine-2.3.3.tar.gz
3.准备Linux的编译环境
不同的语言有不同的编译环境
yum install -y gcc make gcc-c++ ncurses-devel
用于编译安装c语言代码
yum install -y golang
用于编译golang代码环境
2.对文件进行解压缩
[root@liuxinghan opt]# tar -zxvf tengine-2.3.3.tar.gz <br>
3.进入目录,查看目录内容,准备开始编译
[root@liuxinghan opt]# cd /opt/tengine-2.3.3/<br>[root@liuxinghan tengine-2.3.3]# ll<br>
4.开始编译,且安装,注意先进行编译参数的配置
1.给nginx添加支持https证书的功能,需要如下操作
默认是不支持https证书的功能
2.只能在编译的时候,添加该功能
需要Linux系统支持https的模块,就是安装openssl模块
[root@liuxinghan tengine-2.3.3]# yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel<br>
3.执行编译参数,让nginx的安装,可以扩展其他功能
./configure --prefix=/opt/my_nginx0829/ --with-http_ssl_module
指定安装的目录,并且开启http_ssl模块
4.执行完成后,就生成了一个文件
[root@liuxinghan tengine-2.3.3]# ll | grep Make<br>-rw-r--r--. 1 root root 400 Aug 29 16:18 Makefile<br>
5.执行编译安装
make && make install
及当你执行make命令成功后,直接执行make install 命令
只有make执行成功后,才会生成你自定义的nginx路径,/opt/my_nginx0829文件夹
6.检查你安装的nginx是否生成
编译安装的nginx全在这个目录之下
[root@liuxinghan opt]# ll my_nginx0829/<br>
7.启动nginx,注意需要使用绝对路径去执行
[root@liuxinghan opt]# /opt/my_nginx0829/sbin/nginx
可以进行优化,将路径写入到PATH变量中
永久修改得写入到 /etc/profile
加入可执行命令的上一级
PATH=/opt/my_nginx0829/sbin/:$PATH
8.可以使用浏览器发出http请求,来访问nginx
ip:端口
也可以使用 curl -I ip 来查看
删除
编译的软件,删除软件就是直接干掉这个目录即可
rm -rf my_nginx0829
查询
查看文件夹
注意,编译安装的无法使用yum命令和rpm命令去管理
升级
1.卸载旧的nginx版本
2.安装新的nginx版本
yum自动化软件管理命令
安装软件
直接 yum install -y nginx
创建
使用yum工具,配置yum源
yum源的配置官网
https://developer.aliyun.com/mirror
需要配置两个源
能够下载centos自带的绝大多数的软件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo<br>
能够下载绝大多数第三方软件的仓库
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo<br>
备份默认的yum源
cd /etc/yum.repos.d/<br>
备份所有的*.repo文件即可
下载新的yum源仓库
先跟新yum源的缓存
yum clean all
清空原有的缓存
yum makecache
建立新的缓存
接下来就可以适应yum方便的管理软件了
常见的命令如下
yum install -y xxxx
安装
yum remove -y xxxx
删除
通过yum 安装的程序即可通过systemctl命令进行管理,启停等操作
ubuntu快速入门
Main Topic
Main Topic
Main Topic
Main Topic
Main Topic
Main Topic
安装软件的注意事项
rpm手动安装
手动解决所有依赖、难用
rpm -ql nginx
查看安装的文件
rpm -e nginx
仅仅删除了软件,一些目录数据,任然存在
主要删除两个目录
rm -rf /var/log/nginx
日志文件
rm -rf /etc/nginx
配置文件
yum自带安装
yum就是去管理rpm包的
自动解决依赖关系
源码编译安装
软件都安装到了一个目录下,管理该目录即可,无法用yum去管理
注意它们的安装路径,以及管理脚本,是否会有冲突
解压缩即可使用的实践
已经编译完成的二进制命令
你拿来就可以进行使用
java环境部署实践
rpm包去安装,需要解决一堆的依赖问题
源代码安装不太好用
给机器部署java环境,选择下载java的二进制包,压缩即可使用
1.下载二进制包
2.解压缩
3.配置环境变量PATH
Java比较特殊,需要配置好环境变量才可以使用
为了方便会创建一个软链接
ln -s jdk1.8.0_221 jdk
防止加入到PATH环境变量中过长
配置环境变量的命令
cat >>/etc/profile <<EOF<br>export JAVA_HOME=/opt/jdk<br>export PATH=$PATH:$JAVA_HOME/bin<br>EOF
4.开始使用
java -version
5.使用准备的代码进行使用
java要求先编译再运行
[root@juejiang opt]# javac HelloWorld.java <br>
编译
[root@juejiang opt]# java HelloWorld<br>超哥带你学linux<br>
执行,注意不要加class
如果是golang,只要解压缩,加入到环境变量即可使用
yum详解
yum源
yum源的优点
能够==解决软件包之间的依赖关系==,提高运维人员的工作效率。
1.下载了一个yum的配置文件,里面就是一个url而已!<br><br>2.这个url指向了不同的镜像站,里面的一个rpm包集合地<br><br>3.当你yum install安装的时候,yum自动去这个网站里,搜索mysql名字相关的rpm进行下载,安装
yum源的分类
1、本地yum源
yum仓库在==本地==(系统光盘/镜像文件)
一般使用的都是没有网络环境
或者不能上网的情况
2、网络yum源
yum仓库不在本地,在==远程==服务器
一般多为大型公司搭建的
还有一些特定软件的网络源
3、自定义yum源
自己配置yum仓库
yum源配置(重点)
一般需要配置两个仓库
centos7自带的一个软件仓库
里面包含的是一些常见的系统软件
epel仓库。
提供了绝大多数的第三方软件,如nginx、redis、mysql
yum仓库目录语法
yum源的存放
yum的仓库文件,都被统一都放在了一个固定的目录
/etc/yum.repo.d
是在这个目录中,名字是*.repo结尾的文件,就会就yum识别为仓库文件
并且只能是在第一层目录,否则都无法识别为yum仓库
修改了yum需要注意的地方
yum提供了缓存
首次下载之后,会保存在一个目录下
yum clean all
rm -rf /var/cache/yum
配置了新的yum源之后,需要删除之前的缓存,不然依赖或软件会存在版本问题,导致安装出错
清除之前的yum缓存之后,可以生成新的yum缓存
yum makecache
生成缓存后,下次安装软件的速度更快
本地yum源的实现
挂载本地光盘,作为镜像源
VMware连接上光盘镜像即可
在系统中找到对应的光盘文件
一般为 /dev/cdrom
进行挂载动作,让某一个目录和这个光盘,建立连接
mkdir /mnt/my_centos
mount /dev/sr0 /mnt/my_centos/
创建yum的仓库文件,
vim /etc/yum.repos.d/my_cdrom.repo
学习yum仓库文件语法
[base]<br>name=linux-yum-cdrom<br>#我们挂载的目录在 /mnt/my_centos/<br>baseurl=file:///mnt/my_centos/<br>#由于我们建立的是本地的,所以使用的不属于HTTP协议了, <br>enabled=1<br>#表示开启仓库<br>gpgcheck=0<br>#表示不做校验
注意rpm包的的来源两个写法
得通过互联网去找,语法是 http://aliyun.com/xxxxxxxxxxxxx
如果你的rpm是去系统中找(即本地),语法是 file://路径即可
将之前的yum源进行备份
先清空之前的yum缓存,防止冲突
yum clean all #清空本地的yum缓存
rm -rf /var/cache/yum #删除之前下载的文件缓存
生成新的yum缓存(第一次使用yum时会生成很多的源数据,比较慢)
yum makecache
此时就可以使用yum命令去本地的光盘安装软件了
常见错误
1.配置文件 /etc/yum.repos.d/my_cdrom.repo中的挂载目录敲错<br>baseurl=file:///mnt/my_centos/<br>#注意是三个 ///<br><br>2.光盘文件未挂载,导致无法找到<br>mount /dev/sr0 /mnt/my_centos/<br>#无法找到yum仓库
网络yum源的配置
首先必须在 /etc/yum.repos.d 只能在这个目录下,且是第一级
先将原来的yum源进行备份,保存,改名或者放入文件夹后使其无法生效
先将需要用到的命令下载了!!
比如 wget curl vim等
快速配置阿里云yum仓库
系统本身的源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo<br>
epel源(第三方软件)
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo<br>
先清空之前的yum缓存,防止冲突
yum clean all #清空本地的yum缓存
rm -rf /var/cache/yum #清除本地下载的yum缓存
生成新的yum缓存
yum makecache
离线安装步骤
先准备好该软件的rpm包,准备好nginx的软件包,以及它的软件依赖rpm包
创建一个目录用于存放软件包
mkdir /software
下载软件以及其需要的依赖包
使用yum命令
--downloadonly # 只下载,不更新安装<br> --downloaddir=directory #将包下载到指定的目录下
yum install --downloadonly --downloaddir=/software/ nginx
准备到一个目录中,让其成为yum可识别的仓库即可
#需要先去安装 createrepo<br>[root@juejiang software]# yum install createrepo -y
[root@juejiang software]# createrepo /software/<br>#执行完成后,会多下一个文件如下<br>drwxr-xr-x. 2 root root 4096 8月 30 20:59 repodata
然后创建yum仓库的repo文件,完事
创建repo文件,指向这个目录即可,就是一个本地仓库目录<br>你先移除其他的repo文件,让yum被识别
#在 /etc/yum.repo.d/ 目录下创建新的repo文件<br>cat >> /etc/yum.repos.d/my_dir.repo <<EOF<br>[base]<br>name=0224-linux-my_dir<br>baseurl=file:///software/<br>enabled=1 # 这个参数是控制,该repo启用,还是关闭的<br>gpgcheck=0<br>EOF
yum install 软件
yum install -y nginx
关于依赖的寻找问题
准备一个最小化安装的系统,yum会自动判断,它需要什么基础依赖<br>- 因为最小化,系统缺少很多依赖包
这样下载的依赖是最全的
yum install --downloadonly --downloaddir=/0224_software/
注意:yum是针对当前机器的环境,判断,安装vim,需要多少个rpm依赖包
方法二:修改yum的配置文件
enabled=1 # 这个参数是控制,该repo启用,还是关闭的
.列出系统下可用的源<br>[root@juejiang software]# yum repolist
keepcache=1,就是保持缓存,默认是0
修改epel.repo文件,添加如下参数<br>keepcache=1
find /var/cache/yum/ -name *.rpm
.此时nginx相关的rpm包都在缓存目录下了
修改yum仓库的优先级
需要安装插件`yum-plugin-priorities
yum install -y yum-plugin-priorities
安装完插件后,只需要在yum源配置文件*.repo里指定优先级即可
针对仓库的区域设置,添加一个参数即可<br>priority=1
#加上了优先级之后,数字越小表示优先级越高
懒人方法,将不要使用的yum仓库改名就行
0 条评论
下一页