Linux程序包管理工具

news2024/11/29 8:56:45

在这里插入图片描述
Linux程序包管理工具

1. 程序包

我已经使用 Linux 已经有很长一段时间了,日常中经常会安装或者卸载一些应用,久而久之很多的命令已经让我的记忆能力不容乐观了,所以今天在这里写一点管理程序包管理的博客。一方面,之后可以帮助我快速的查阅想要试用的命令;另一方面,也可以为各位看官带来一丝丝帮助。

1.1 什么是程序包管理

程序包管理的功能就是将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作。

程序包的组成清单 (各个程序包独有)文件清单安装或卸载时运行的脚本
程序包的数据库(各个程序包共享)程序包名称及版本依赖关系功能说明安装生成的各文件的文件路径及校验码信息

1.2 管理程序包的方式

如果所有的程序包都让我们一个个的自行编译安装显然不切实际,除非我们面对有些问题不得不自己手动编译安装。面对各种各样的程序包,我们应该怎么管理呢?所有就出现了很多的公司和组织开发了面对程序包的管理工具,让我们更加方面的管理我们日常中所使用到了程序。

程序包管理器:
debian:系列的操作系统使用的是dpt程序包管理器,其程序的格式是 deb
redhat:系列的操作系统使用的是rpm程序包管理器,其程序的格式是 rpm
Gentoo
Archlinux
程序包前端工具
yum:rpm 包管理器的前端工具
apt-get:deb 包管理器前端工具
zypper:suse 上的 rpm 前端管理工具
dnf:Fedora22+之后的 rpm 包管理器前端管理工具

1.3 程序包的命令规则

源代码包的命名方式
name-version.tar.gz
version = major.minor.release
rpm 包的命名方式
name-version-release.arch.rpm
version = major.minor.release
release:release.os

#以下为rpm的zlib实例
zlib-1.2.7-13.el7.i686.rpm

#常见的arch:
x86      ==>  32==> i386, i486, i586, i686
x86_64   ==>  64==> x64, x86_64, amd64
powerpc  ==>  小型机   ==> ppc
跟平台无关 ==>  noarch

程序包的拆包
程序包的拆包就是将相同的一个程序包根据用途分为不用的包次,对于不用的包次有其不用的用途。

#以testapp程序包为例进行演示
testapp:
  testapp-VERSION-ARCH.rpm          ==> 主包
  testapp-devel-VERSION-ARCH.rpm    ==> 支包
  testapp-testing-VERSION-ARHC.rpm  ==> 支包

1.4 程序包之间的依赖管理

当我们在使用CentOS安装应用程序的时候,会遇到一个问题。那就是在我们使用rmp安装 A 程序的时候,会提示我们要安装 A 程序必须要安装 B 和 C 程序。当我们顺利安装之后,A 程序才能别我们顺利的安装在系统中。在这里插入图片描述

yum-attack

但是,我们有没有想过要是安装 B、C 程序的时候提示我们还要安装 D、E、F 等程序呢?这样可能会无休止的迭代下去,我们的小心脏怎么会受得了。及时受得了,我们装载一个程序可能会花掉什么多时间。难道就没有方法了吗?有,那就是程序包前端工具。

手动解决依赖的问题,我们可以

查看二进制程序所依赖的库文件
ldd /PATH/TO/BINARY_FILE
管理及查看本机装载的库文件
ldconfig -p
显示本机已经缓存的所有可用库文件名及文件路径映射关系
配置文件为:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
缓存文件:/etc/ld.so.cache
各种的程序包的管理器的实质就是自行对于源码包进行编译,将通常用的参数添加进去,生成对应自己平台的程序包格式。利用各自的程序包管理器进行管理以及依赖的解决。

我们需要自行编译的原因就是,他们自行编译的程序包不能满足我们的需要,比如说我想启用一个新特性,但是他们编译的程序包中没有启用,所以我就需要自己编译。

1.5 获取程序包的途径

(1) 系统发版的光盘或官方的服务器光盘镜像CentOS 镜像
中科大镜像阿里云镜像
(2) 项目官方站点
(3) 第三方组织EPELPKGSRPMRpmfind
(4) 自己制作
Note:检查其合法性、来源合法性、程序包的完整性

2. RPM 程序包管理命令
2.1 通用

参数选项:

-v
verbose
-vv
更详细信息
-h
以#显示程序包管理执行进度
2.2 安装
格式:
rpm {-i|–install} [install-options] PACKAGE_FILE …

参数选项:
[install-options]

–test
测试安装,但不真正执行安装过程;dry run模式
–nodeps
忽略依赖关系
–replacepkg
重新安装
–nosignature
不检查来源合法性
–force
忽略软件包及文件的冲突
–ignoreos
不检查软件包运行的操作系统
–nodigest
不检查包完整性
–noscipts
不执行程序包脚本片断,程序包的脚本分为以下四类–nopre %pre: 安装前脚本
–nopost %post: 安装后脚本
–nopreun %preun: 卸载前脚本
–nopostun %postun: 卸载后脚本
2.3 卸载
格式:
rpm {-e|–erase} [install-options] PACKAGE_NAME …

参数选项:
[install-options]

–test
只执行删除的测
–noscripts
不运行预安装和后安装脚本程序
–nodeps
不检查依赖性
2.4 升级
格式:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”

rpm {-F|–freshen} [install-options] PACKAGE_FILE …
安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作

参数选项:
[install-options]

–oldpackage
降级
–force
强行
–test
测试安装,但不真正执行安装过程;dry run模式
Note:

(1) 不要对内核做升级操作,因为有可能因为升级操作导致很多服务不能使用,而且 Linux 支持多内核版本并存。
(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留。
(3) 通常和-vh一起使用,更加直观。
2.5 查询
格式:
rpm {-q|–query} [select-options] [query-options] PACKAGE_FILE …

参数选项:
[select-options]

-a
所有包
-f
查看指定的文件由哪个程序包安装生成
-p /PATH/TO/PACKAGE_FILE
针对尚未安装的程序包文件做查询操作
–whatprovides CAPABILITY
查询指定的 CAPABILITY 由哪个包所提供
–whatrequires CAPABILITY
查询指定的 CAPABILITY 被哪个包所依赖
[query-options]

–changelog
查询 rpm 包的 changlog
-c
查询程序的配置文件
-d
查询程序的文档
-i
information
-l
查看指定的程序包安装后生成的所有文件
–scripts
程序包自带的脚本片断
-R
查询指定的程序包所依赖的 CAPABILITY
–provides
列出指定程序包所提供的 CAPABILITY
2.6 校验
格式:
rpm {-V|–verify} [select-options] PACKAGE_FILE …

参数选项:
[select-options]

-f
校验所属的软件包
-a
Verify 校验所有的软件包
-g
校验所有属于组 的软件包
修改类型:

S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ
Note:包来源合法性验正及完整性验正,完整性验正使用SHA256,来源合法性验正使用RSA。

2.7 其他
导入所需要公钥
rpm --import
/PATH/FROM/GPG-PUBKEY-FILE

Note:CentOS 7 发行版光盘提供的密钥文件:RPM-GPG-KEY-CentOS-7

数据库重建
rpm {–initdb|–rebuilddb}

–initdb
初始化,如果事先不存在数据库,则新建之;否则,不执行任何操作。
–rebuilddb
重建,无论当前存在与否,直接重新创建数据库。

3. YUM 程序包管理命令

3.1 yum 命令用法
格式:
yum [options] [command] [package …]

用法:

yum 的命令行选项
yum 的命令行参数高于配置文件中指定的参数
–nogpgcheck
禁止进行 gpg check
-y
自动回答为“yes”
-q
静默模式
–disablerepo=repoidglob
临时禁用此处指定的 repo
–enablerepo=repoidglob
临时启用此处指定的 repo
–noplugins
禁用所有插件
显示仓库列表
yum repolist [all|enabled|disabled]
显示程序包
yum list [all | glob_exp1] [glob_exp2] […]
yum list {available | installed | updates} [glob_exp1] […]
安装程序包
yum install package1 [package2] […]
yum reinstall package1 [package2] […] (重新安装)
升级程序包
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降级)
检查可用升级
yum check-update
卸载程序包
yum remove | erase package1 [package2] […]
查看程序包 information
yum info […]
查看指定的特性(可以是某文件)是由哪个程序包所提供
yum provides | whatprovides feature1 [feature2] […]
清理本地缓存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存
yum makecache
搜索
yum search string1 [string2] […]
以指定的关键字搜索程序包名及 summary 信息
查看指定包所依赖的 capabilities
yum deplist package1 [package2] […]
查看 yum 事务历史
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
安装及升级本地程序包
yum localinstall rpmfile1 [rpmfile2] […]
(maintained for legacy reasons only - use install)
yum localupdate rpmfile1 [rpmfile2] […]
(maintained for legacy reasons only - use update)
包组管理的相关命令
yum groupinstall group1 [group2] […]
yum groupupdate group1 [group2] […]
yum grouplist [hidden] [groupwildcard] […]
yum groupremove group1 [group2] […]
yum groupinfo group1 […]
3.2 yum 客户端配置
3.2.1 什么是yum repository
存储了众多 rpm 包,以及包的相关的元数据文件,放置于特定目录下(repodata)
3.2.2 配置文件
/etc/yum.conf ==> 为所有仓库提供公共配置
/etc/yum.repos.d/*.repo ==> 为仓库的指向提供配置
配置文件

#可以使用man `whatis yum.conf`来查看主配置文件中各个参数的含义
[escape@localhost ~]$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
#是否保存安装缓存
keepcache=0
#调试等级
debuglevel=2
#安装日志
logfile=/var/log/yum.log
#是否进行平台匹配
exactarch=1
obsoletes=1
#是否检测合法性
gpgcheck=1
#是否支持插件
plugins=1
#可以同时安装几个程序包
installonly_limit=5
#追踪bug时候的url
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
#版本号从哪里获取
distroverpkg=centos-release

仓库指向的定义

#仓库ID号,要唯一
[repositoryID]
#描述信息
name=Some name for this repository
#仓库地址在哪里,一般为ftp://、http://、nfs://、file:///等
#baseurl还可以指向多个url,以此查找
baseurl=url://path/to/repository/
#使用镜像站点中使用,不能和baseurl一起使用
mirrorlist=
#仓库是否启用,默认为启用
enabled={1|0}
#对程序包是否校验,来源合法性和完整性
gpgcheck={1|0}
#校验的key在哪里
gpgkey=URL
#是否可以基于组进行管理,默认启用
enablegroups={1|0}
#默认为roundrobin,意为随机挑选;priority,自上而下优先级
failovermethod={roundrobin|priority}
#开销,默认为1000
cost=

yum可以指定多个仓库,当安装程序包的时候分析多个仓库,并从这些仓库之中找到一个版本最新的在本地安装。同一类仓库使用镜像管理,不同仓库可以同时使用。如果一个同程序同版本存在于各仓库之中,可以使用距离最近者,用来节省开销。

3.2.3 如何使用光盘当作本地 yum 仓库
挂载光盘至某目录,例如/media/cdrom
mount -r -t iso9660 /dev/cdrom /media/cdrom

创建配置文件

[CentOS7]
name=CentOS7 repo
baseurl=file://repo-path-file
gpgcheck=0
enabled=1

3.2.4 yum 的 repo 配置文件中可用的变量
使用变量可以节省我们的成本,使用同一个配置文件,即可管理所有的仓库。

http://mirrors.xxxxx.com/centos/$releasever/$basearch/os

$releasever ==> 当前OS的发行版的主版本号
$arch ==> 平台架构
$basearch ==> 基础平台,32位的不管是什么,基础平台就是i386
$YUM0-$YUM9 ==> 自定义的10个变量

3.2.5 如何创建 yum 仓库
createrepo [options] 其中的[options]可以使用man createrepo命令来查看其参数选项。其中-baseurl来指定其程序包目录的父目录,使其下的子目录都可以使用。

创建目录/yum/repo,将 rpm 的程序包放在此目录中
执行createrepo ./,指定当前目录
即会在当前目录下面生成一个repodate目录,其中有个repomd.xml的文件,用来表示缓存是否需要更新。
将这个yum源加入仓库,即可被本地访问。如果想被外部使用,可以搭建http服务,之后将这个路径添加到 yum 仓库中,即可完成外部访问。
使用yum makecache或者yum repolist即可使用

#yum仓库配置

[newrepo]
name=newrepo test
baseurl=file:///yum/repo/
gpgcheck=0

3.3 apt 和 apt-get 的区别

Let’s see which apt command replaces which apt-get and apt-cache command options.
在这里插入图片描述

apt has a few commands of its own as well.
在这里插入图片描述

安装指定版本和查询指定软件有多少个版本

#1.通过apt-get安装指定版本
#apt-get install [package name]=[version]
$ apt-get install vim=7.3.547

#2.查询指定软件有多少个版本
#通过网站搜索: https://packages.ubuntu.com/
#apt-cache madison [package name]
#apt-cache policy [package name]
$ apt-cache madison vim
$ apt-cache policy vim

#3.查询后面带上一些参数来实现筛选
$ apt-cache show package | grep Version
$ apt-show-versions | more

4. dnf 程序包管理命令

DNF 新一代的 RPM 软件包管理器,首先出现在 Fedora 18 这个发行版中。而最近,他取代了 YUM,正式成为 Fedora 22 的包管理器。DNF 包管理器克服了 YUM 包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF 使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。

4.1 安装 DNF 包管理器

为了安装 DNF ,您必须先安装并启用 epel-release 依赖
yum install -y epel-release
使用 epel-release 依赖中的 YUM 命令来安装 DNF 包
yum install -y dnf

4.2 常用命令

查看 DNF 包管理器版本
dnf –version
查看系统中可用的 DNF 软件库
dnf repolist
查看系统中可用和不可用的所有的 DNF 软件库
dnf repolist all
列出所有 RPM 包
dnf list
列出所有安装了的 RPM 包
dnf list installed
列出所有可供安装的 RPM 包
dnf list available
搜索软件库中的 RPM 包
dnf search nano
查找某一文件的提供者
dnf provides /bin/bash
查看软件包详情
dnf info nano
安装软件包
dnf install nano
升级软件包
dnf update nano
检查系统软件包的更新
dnf check-update
升级所有系统软件包
dnf update 或 dnf upgrade
删除软件包
dnf remove nano 或 dnf erase nano
删除无用孤立的软件包
dnf autoremove
删除缓存的无用软件包
dnf clean all
获取有关某条命令的使用帮助
dnf help clean
查看所有的 DNF 命令及其用途
dnf help
查看 DNF 命令的执行历史
dnf history
查看所有的软件包组
dnf grouplist
安装一个软件包组
dnf groupinstall ‘Educational Software’
升级一个软件包组中的软件包
dnf groupupdate ‘Educational Software’
删除一个软件包组
dnf groupremove ‘Educational Software’
从特定的软件包库安装特定的软件
dnf –enablerepo=epel install nano
更新软件包到最新的稳定发行版
dnf distro-sync
重新安装特定软件包
dnf reinstall nano
回滚某个特定软件的版本
dnf downgrade nano
获取更多使用信息,请点击这里

5. 源码编译

5.1 源码编译基础
执行过程

源代码 –> 预处理 –> 编译(gcc) –> 汇编 –> 链接 –> 执行
源代码组织格式

多文件,文件中的代码之间,很可能存在跨文件依赖关系
C 代码编译安装三步骤

./configure通过选项传递参数,指定启用特性、安装路径等执行时会参考用户的指定以及 Makefile.in 文件生成 makefile检查依赖到的外部环境autoconf ==> 生成 configure 脚本automake ==> 生成 Makefile.in
make
根据 makefile 文件,构建应用程序
make install
安装
开源程序源代码的获取

官方自建站点apache.org (ASF)mariadb.org
代码托管SourceForgeGithub.comcode.google.com
5.2 手动编译
5.2.1 前提:提供开发工具及开发环境
通过“包组”提供开发组件 ==> CentOS 6: “Development Tools”, “Server Platform Development”

开发工具:make, gcc 等
开发环境:开发库,头文件
glibc:标准库
5.2.2 第一步:configure 脚本
选项:指定安装位置、指定启用的特性
–help: 获取其支持使用的选项

选项分类:

安装路径设定:–prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置,默认为/usr/local/–sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置
System types
optional features: 可选特性–disable-FEATURE–enable-FEATURE[=ARG]
optional packages: 可选包–with-PACKAGE[=ARG]–without-PACKAGE
5.2.3 第二步:make

make

5.2.4 第三步:make install

make install

5.2.5 安装后的配置
(1) 导出二进制程序目录至 PATH 环境变量中
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
(2) 导出库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中让系统重新生成缓存 ==> ldconfig [-v]
(3) 导出头文件
基于链接的方式实现 ==> ln -sv
(4) 导出帮助手册
编辑/etc/man.config文件
添加一个 MANPATH

文章作者: Escape
文章链接:https://www.escapelife.site/posts/8304c670.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我在阿里做测试,入职5个月的回顾与总结

初来阿里实习的时候,我对测试人员的职责知之甚少,在校时更是从未接触过测试工作。一头雾水之际,主管说:“做项目吧,在实战中快速成长”。从学生到校招生,我在思维和心态完成了一次真正意义上的转变&#xf…

众享比特董事长严挺出席2022中国计算机大会“元宇宙、Web3.0、NFT:机遇还是泡沫?”技术论坛

12月10日晚,为期三天的2022中国计算机大会(2022CNCC)成功落下帷幕。众享比特董事长严挺出席“元宇宙、Web3.0、NFT:机遇还是泡沫?”技术论坛并参与专题研讨。 第三行左一为众享比特董事长严挺 中国计算机大会&#xf…

一文教你集成通知系统的多种HMS Core服务,实现数据安全和真实用户验证

1、介绍 Overview 云数据库是AppGallery Connect提供的服务之一,实现云端数据的同步,提供统一的数据模型和丰富的数据管理接口。在保证数据的可用性、可靠性、一致性,以及安全等特性基础上,能够实现数据在客户端和云端之间的无缝…

SpringBoot扩展SpringMVC配置

SpringBoot扩展SpringMVC配置1.继承WebMvcConfigurer接口2.实现一个自己的视图解析器3.其他自定义配置视图跳转Spring Boot通过WebMvcAutoConfiguration来提供一些默认配置;大多数时候使用默认的配置即可满足要求。但有时可能需要做一些个性化定制,此时就…

Nginx 可视化!配置监控一条龙!

nginx-gui这个东西真的要吹一波,太好用了,而且源码公开。对于我这样一个作为Linux菜鸟的Java开发来说,这个可视化配置工具简直是福音! 需求 nginx 可视化管理,例如 配置管理 性能监控 日志监控 其他配置 目前已实现…

CIDR格式网络策略值设置方式

CIDR的格式是IP网段/网络ID,斜杠左面的是网络IP段,斜杠右面是网络ID。如果网络用的是IPV4,它最大有效值是32,它的作用本质上是用来表示网络策略所用的子网掩码二进制里的1有多少个,也就是网络ID的位数。 传统的IPV4-t…

策略模式

文章目录策略模板模式1.策略模式的本质2.何时选用策略模式3.优缺点4.策略模式的结构5.实现支付案例支付案例参数不一致问题策略模板模式 1.策略模式的本质 策略模式的本质:分离算法,选择实现。 纵观整个策略模式实现的功能和设计,它的本质还是“分离算法…

会议学习笔记

目录1.标注高效的核心思路:1.部分监督PSL2.自监督SSL魔方复原3.单一标注无标注2.深度通用学习DUL1.通用特征点检测2.通用MRI重建3.学习与知识融合如何把大数据小任务转换成小数据大任务 1.标注高效的核心思路: 以一变二:数据增广无中生有&am…

[附源码]Node.js计算机毕业设计电影院订票管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

腾讯云年终:云服务器CVM、轻量应用服务器、GPU服务器价格表出炉!

腾讯云年终:云服务器CVM、轻量应用服务器、GPU服务器价格表出炉!小编来详细说下腾讯云年末限时回馈优惠活动云服务器配置及精准报价。 一、轻量应用服务器配置及优惠价格表 先说轻量应用服务器吧,因为轻量服务器太便宜了,轻量应用…

2022年山东最新交安安全员考试模拟题及答案

百分百题库提供交安安全员考试试题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 1.根据《建筑工程安全生产管理条例》,意外伤害保险费由施工单位支付。实行施工总承包的&…

C++四种强制类型转换

四种强制类型转换🏞️1. C语言中的类型转换🍁2. 为什么C需要四种类型转换🌠3. C强制类型转换📖3.1 static_cast📖3.2 reinterpret_cast📖3.3 const_cast📖3.4 dynamic_cast🌁4. RTTI…

JAVA毕业设计——基于Springboot+vue的疫情物资管理系统(源代码+数据库)

github代码地址 https://github.com/ynwynw/yiqingMaterial-public 毕业设计所有选题地址 https://github.com/ynwynw/allProject 基于Springbootvue的疫情物资管理系统(源代码数据库)047 一、系统介绍 本项目分为管理员与普通用户两种角色 管理员角色包含以下功能&#xf…

安全智能分析 技术背景

安全数据资产 统一管理DataOps,即 Data 和 Operations 的集成,于 2014 年首次提出。Gartner 将 DataOps 定义为“一种协作性的数据管理 实践,专注于改进组织内数据管道的通信、集成和自动化”[7]。DataOps 是一种面向流程的自动化方法&#x…

Linux安装多版本jdk(jdk8和jdk11)并可随意选择版本

一、官网下载不同版本的压缩包 官网下载地址 我这里下载的是jdk8和jdk11 二、将压缩包上传至服务器自定义的文件夹中 三、安装jdk8 1、解压压缩包 tar zxvf /install/java/jdk-8u202-linux-x64.tar.gz2、修改配置 vi /etc/profile在配置文件中添加以下配置(需修改成自己的…

购物车系统设计

1 主要功能 在用户选购商品时,下单前,暂存用户想购买的商品。 购物车对数据可靠性要求不高,性能也无特别要求,在整个电商系统是相对容易设计和实现的一个子系统。 购物车系统的主要功能: 把商品加入购物车&#xf…

3个月前被裁员了,心情跌落谷底,直到学姐给了我这份面试文档…

3个月前的某一天,正在愉快的打工,突然被喊去谈话,然后就被辞退了。。 加入了找工作的大军 然而,因为疫情,因为大专学历的我,找工作比以往都艰难了许多 很多,纯粹就是因为学历,都不…

如何在SpringBoot中异步请求和异步调用

一、SpringBoot中异步请求的使用 1、异步请求与同步请求 特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运…

Python运维之远程登录paramiko(VsCode)

Python运维之远程登录----paramiko paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。 par…

CentOS7中搭建docker

一、配置要求 系统:Centos7 Linux 内核:官方建议 3.10 以上 1.查看当前的内核版本 uname -r 2.卸载旧版本(如果之前安装过的话) yum remove docker docker-common docker-selinux docker-engine 二、安装Docker 1.安装依赖包 …