RHEL8_Linux用rpm管理软件

本章主要介绍使用rpm对软件包进行管理

  • 使用rpm查询软件的信息
  • 使用rpm安装及卸载软件
  • 使用rpm对软件进行更新
  • 使用rpm对软件进行验证

      

          rpm 全称是redhat package manager,后来改成rpm package manager,这是根据源码包编译出来的包。先从光盘中拷贝一个包,并看它是如何命名的。‘
先挂载光盘,然后拷贝 vsftpd这个包,命令如下。
[root@node01 ~]# mount /dev/cdrom /mnt/    //挂载光盘
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@node01 ~]# cp /mnt/AppStream/Packages/vsftpd-3.0.3-34.el8.x86_64.rpm  .    //拷贝软件包到当前目录
[root@node01 ~]# ls vsftpd-3.0.3-34.el8.x86_64.rpm    //查看软件包 
vsftpd-3.0.3-34.el8.x86_64.rpm
[root@node01 ~]# 
这里字段的含义如下:
  1. vsftpd:包的名称
  2. 3.0.3:版本,及version
  3. 34.el8:小版本号,即release,其中el8 指的是此包适用于RHEL8系统
  4. x86_64:指的是架构,到底是32位还是64位的包,x86_64表示是64位的。
rpm的安装命令是“rpm -ivh 安装包”。安装rpm,命令如下。
[root@node01 ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-34.el8              ################################# [100%]
[root@node01 ~]# 
        这样就把vsftpd-3.0.3-34.el8.x86_64.rpm 安装好了。如果是第一次接触 Linux 会感觉到奇怪,怎么不像 Windows一样让我们通过浏览来指定路径,那么这个包安装到哪里了呢?
        相信大家在Windows中都安装过 Chrome浏览器,基本上是秒安装,也没有指定路径,因为这个安装包中已经定义好安装路径了。同理,rpm 安装时也已经指定了安装路径,把这个rpm打开先拷贝到/opt目录中,命令如下
[root@node01 ~]# cp vsftpd-3.0.3-34.el8.x86_64.rpm /opt/
[root@node01 ~]# cd /opt/
[root@node01 opt]# ls
vsftpd-3.0.3-34.el8.x86_64.rpm
[root@node01 opt]# 
解压此包,命令如下。
[root@node01 opt]# rpm2cpio vsftpd-3.0.3-34.el8.x86_64.rpm | cpio -id 
714 块
[root@node01 opt]# ls
etc  usr  var  vsftpd-3.0.3-34.el8.x86_64.rpm
[root@node01 opt]# 
可以看到,生成了3个目录etc、usr、var,看一下它们的结构,如下所示。
[root@node01 opt]# tree 
.
├── etc
│   ├── logrotate.d
│   │   └── vsftpd
│   ├── pam.d
│   │   └── vsftpd
│   └── vsftpd
│       ├── ftpusers
│       ├── user_list
│       ├── vsftpd.conf
│       └── vsftpd_conf_migrate.sh
├── usr
│   ├── lib
│   │   └── systemd
│   │       ├── system
│   │       │   ├── vsftpd.service
│   │       │   ├── vsftpd@.service
│   │       │   └── vsftpd.target
│   │       └── system-generators
│   │           └── vsftpd-generator
│   ├── sbin
│   │   └── vsftpd
│   └── share
│       ├── doc
│       │   └── vsftpd
│       │       ├── AUDIT
│       │       ├── BENCHMARKS
│       │       ├── BUGS
│       │       ├── Changelog
│       │       ├── COPYING
│       │       ├── EXAMPLE
│       │       │   ├── INTERNET_SITE
│       │       │   │   ├── README
│       │       │   │   ├── vsftpd.conf
│       │       │   │   └── vsftpd.xinetd
│       │       │   ├── INTERNET_SITE_NOINETD
│       │       │   │   ├── README
│       │       │   │   └── vsftpd.conf
│       │       │   ├── PER_IP_CONFIG
│       │       │   │   ├── hosts.allow
│       │       │   │   └── README
│       │       │   ├── README
│       │       │   ├── VIRTUAL_HOSTS
│       │       │   │   └── README
│       │       │   ├── VIRTUAL_USERS
│       │       │   │   ├── logins.txt
│       │       │   │   ├── README
│       │       │   │   ├── vsftpd.conf
│       │       │   │   └── vsftpd.pam
│       │       │   └── VIRTUAL_USERS_2
│       │       │       └── README
│       │       ├── FAQ
│       │       ├── INSTALL
│       │       ├── LICENSE
│       │       ├── README
│       │       ├── README.security
│       │       ├── REWARD
│       │       ├── SECURITY
│       │       │   ├── DESIGN
│       │       │   ├── IMPLEMENTATION
│       │       │   ├── OVERVIEW
│       │       │   └── TRUST
│       │       ├── SIZE
│       │       ├── SPEED
│       │       ├── TODO
│       │       ├── TUNING
│       │       └── vsftpd.xinetd
│       └── man
│           ├── man5
│           │   └── vsftpd.conf.5.gz
│           └── man8
│               └── vsftpd.8.gz
├── var
│   └── ftp
│       └── pub
└── vsftpd-3.0.3-34.el8.x86_64.rpm27 directories, 48 files
[root@node01 opt]# 
        可以看到,当我们安装rpm包时,它就会把包中的内容按照这个结构拷贝到系统,所以安装的路径都是安排好了的。

1.rpm查询

1)如果要查询已经安装过的软件包的信息, rpm的第一个选项需要使用-q,表示查询的意思。查询系统安装的所有软件包用 rpm-qa命令,命令如下。
[root@node01 ~]# rpm -qa
2)查询系统是否安装了某个软件包用“rpm -qa 包名”命令。例如,要查询是否安装了vsftpd,命令如下。
[root@node01 ~]# rpm -qa vsftpd
vsftpd-3.0.3-34.el8.x86_64
[root@node01 ~]#
3)但是这种用法,在写包名时多一个或少一个字符都查询不出来,如下所示。
[root@node01 ~]# rpm -qa vsftp
[root@node01 ~]# 
4)所以,更建议用管道和grep进行过滤,如下所示。
[root@node01 ~]# rpm -qa | grep vsft
vsftpd-3.0.3-34.el8.x86_64
[root@node01 ~]# 
5)查询安装某软件包之后所生成的文件用“rpm -ql 包名”命令,这里q后面是字母l。例如,要查询vsftpd所生成的文件,命令如下,这样就可以看到 vsftpd安装到哪里了。
[root@node01 ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
6)查看软件包生成的配置文件用“rpm -qc包名”命令,命令如下。
[root@node01 ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@node01 ~]# 
7)查看包的信息用“rpm-qi包名”命令,命令如下。
[root@node01 ~]# rpm -qi vsftpd
Name        : vsftpd
Version     : 3.0.3
Release     : 34.el8
Architecture: x86_64
Install Date: 2023年12月11日 星期一 10时18分30秒
Group       : System Environment/Daemons
Size        : 355692
License     : GPLv2 with exceptions
Signature   : RSA/SHA256, 2021年04月21日 星期三 20时42分12秒, Key ID 199e2f91fd431d51
Source RPM  : vsftpd-3.0.3-34.el8.src.rpm
Build Date  : 2021年04月20日 星期二 22时28分24秒
Build Host  : x86-vm-15.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor      : Red Hat, Inc.
URL         : https://security.appspot.com/vsftpd.html
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.
[root@node01 ~]# 
8)当我们安装软件包时会产生许多文件,反过来想查询某个文件是由哪个软件包安装出来的用rpm -qf /path/file命令,命令如下。
[root@node01 ~]# rpm -qf /etc/vsftpd/vsftpd.conf 
vsftpd-3.0.3-34.el8.x86_64
[root@node01 ~]# 
可以看到,/etc/vsfipd/vsfipd.conf是由 vsftpd这个包产生的。
9)可以看到,/etc/passwd是由setup这个包生成的。
[root@node01 ~]# rpm -qf /etc/passwd
setup-2.12.2-6.el8.noarch
[root@node01 ~]# 
10)以上这些都是针对已经安装了的软件包进行查询,如果要查询安装包,则需要加上p选项,命令如下。
[root@node01 ~]# rpm -qcp vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@node01 ~]# 

注意:在RHEL8/CentOS8中不加p选项也可以,之前的系统是不行的。

2.rpm安装及卸载

        前面已经介绍了用“rpm -ivh 安装包”命令安装软件,且 vsftpd已经安装完成,如下所示。
1)卸载软件包的命令是“rpm -e 软件包”,现在要把vsftpd卸载掉,命令如下。
[root@node01 ~]# rpm -e vsftpd 
[root@node01 ~]# rpm -qa | grep vsftpd
[root@node01 ~]# 
2)可以看到,现在vsftpd已经不存在了,再次把这个包安装上去。
[root@node01 ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-34.el8              ################################# [100%]
[root@node01 ~]# 
3)有时需要强制安装软件,例如,某个包已经安装过了,现在想重新安装,命令如下。
[root@node01 ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]软件包 vsftpd-3.0.3-34.el8.x86_64 已经安装
[root@node01 ~]# 
这里提示包已经安装过了,无法再次安装。此时加上--force选项强制安装即可。
4)般情况下,用于某个文件丢失了,想通过强制重新安装来找回此文件,命令如下。
[root@node01 ~]# rm -rf /etc/vsftpd/vsftpd.conf 
[root@node01 ~]# ls /etc/vsftpd/
ftpusers  user_list  vsftpd_conf_migrate.sh
[root@node01 ~]# 
5)这里把/etc/vsftpd/vsftpd.conf删除,然后开始强制安装,命令如下。
[root@node01 ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm --force
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-34.el8              ################################# [100%]
[root@node01 ~]# 
6)然后再次查看文件。
[root@node01 ~]# ls /etc/vsftpd/
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@node01 ~]# 
这里又重新生成了被删除的文件,其他文件原来即使做了修改也不会被覆盖替换。

3.软件包的更新

        所谓更新,就是卸载旧版本的软件包,然后安装新版本的软件包。假设原来系统已经安装了1.0版本的软件包,现在要安装2.0版本的软件包,如果两个版本的包安装路径不一样,则可以共存;如果两个版本的包安装路径一样,则会产生冲突。
1)先卸载已经安装了的vsftpd,命令如下。
[root@node01 ~]# rpm -e vsftpd 
[root@node01 ~]# 
2)然后从RHEL8.0的系统上烤贝一个版本稍低的 vsftpd的安装包,命令如下。
[root@node01 ~]# ls | grep vsft
vsftpd-3.0.3-28.el8.x86_64.rpm
vsftpd-3.0.3-34.el8.x86_64.rpm
[root@node01 ~]# 
上面ls后面的选项是数字1,不是字母l,这里一个版本稍低,一个版本稍高。
3)先把低版本的包安装上去,命令如下。
[root@node01 ~]# rpm -ivh vsftpd-3.0.3-28.el8.x86_64.rpm 
警告:vsftpd-3.0.3-28.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-28.el8              ################################# [100%]
[root@node01 ~]# 
4)这里已经安装了一个3.0.3-28的包,然后安装一个更高版本的3.0.3-34包,命令如下。
[root@node01 ~]# rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]file /etc/vsftpd/vsftpd.conf from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/lib/systemd/system/vsftpd.service from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/lib/systemd/system/vsftpd.target from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/lib/systemd/system/vsftpd@.service from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/sbin/vsftpd from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64file /usr/share/man/man5/vsftpd.conf.5.gz from install of vsftpd-3.0.3-34.el8.x86_64 conflicts with file from package vsftpd-3.0.3-28.el8.x86_64
[root@node01 ~]# 
5)因为安装路径一样,所以这里提醒产生了冲突导致没有安装成功。如果用更新的方法来安装是可以的,更新的用法是“rpm -Uvh安装包”。下面更新vsftpd,命令如下。
[root@node01 ~]# rpm -Uvh vsftpd-3.0.3-34.el8.x86_64.rpm 
警告:vsftpd-3.0.3-34.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:vsftpd-3.0.3-34.el8              ################################# [ 50%]
正在清理/删除...2:vsftpd-3.0.3-28.el8              ################################# [100%]
[root@node01 ~]# 
6)可以看到,现在已经更新成功。查看,命令如下。
[root@node01 ~]# rpm -qa | grep vsftpd
vsftpd-3.0.3-34.el8.x86_64
[root@node01 ~]# 
可以看到,这里安装的是3.0.3-34版本的包。
        对于内核来说,不同版本的安装路径是不一样的,所以可以同时安装多个版本的不会产生冲突。因此,更新内核时建议使用rpm -ivh命令而不是rpm -Uvh命令。因为rpm -Uvh命令会卸载旧版本的内核,如果新版本的内核有问题就无法正常进入系统了。如果使用rpm -ivh 命令,包括旧版本的内核同时存在,先用新版本的内核引导系统,如果没问题再卸载旧版本的内核也不迟,如果有问题还可以使用旧版本的内核引导系统。

4.rpm验证

1)当我们安装了一个软件包之后会产生许多文件,要是想判断这些文件是否被修改过,可以用rpm -V(大写字母V)命令,例如,我们刚刚安装了vsftpd,并没有修改任何配置文件
[root@node01 ~]# rpm -V vsftpd
[root@node01 ~]# 
没有任何输出,说明此vsftpd所生成的文件没有被修改。
2)现在用vim 编辑器修改一下/etc/vsfipd/vsftpd.conf,随便增添删减一些内容(最好是修改注释后面的内容,否则影响vsftpd启动),然后再次判断,命令如下。
[root@node01 vsftpd]# vim vsftpd.conf     //编辑文件
[root@node01 vsftpd]# 
[root@node01 vsftpd]# cd    //切换到家目录
[root@node01 ~]# rpm -V vsftpd     //查看是否修改
S.5....T.  c /etc/vsftpd/vsftpd.conf
[root@node01 ~]# 
再次检查可以看到/etc/vsftpd/vsftpd.conf被修改过。
  • S:指的是大小
  • 5:指的是MD5值
  • T:指的是时间
  • c:指的是此文件时vsftpd的配置文件
3)这样就可以看到哪些文件被修改过了。只修改时间,命令如下
[root@node01 ~]# touch /etc/vsftpd/ftpusers     //更新文件时间
[root@node01 ~]# rpm -V vsftpd     //查看修改
.......T.  c /etc/vsftpd/ftpusers
S.5....T.  c /etc/vsftpd/vsftpd.conf
[root@node01 ~]# 
可以看到,/etc/vsftpd/ftpusers的时间发生了改变。
4)红帽发行的每一个数据包都对它做了数据签名,以证明这个包是红帽官方的。需要在本机用红帽的公钥来进行验证。首先验证机器上是否安装了红帽的公钥。
[root@node01 ~]# rpm -qa | grep pubkey
[root@node01 ~]# 
没有任何输出,说明没有导人红帽的公钥。
5)使用如下命令导入公钥
[root@node01 ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 
[root@node01 ~]# 
或者导入存储在光盘中的公钥。
[root@node01 ~]# rpm --import /mnt/RPM-GPG-KEY-redhat-release 
[root@node01 ~]# 
再次检查公钥的信息,命令如下。
[root@node01 ~]# rpm -qa | grep pubkey
gpg-pubkey-fd431d51-4ae0493b
gpg-pubkey-d4082792-5b32db75
[root@node01 ~]# 
可以看到,已经成功导入了。
下面验证如下两个vsftpd包,命令如下。
[root@node01 ~]# rpm -K vsftpd-3.0.3-34.el8.x86_64.rpm 
vsftpd-3.0.3-34.el8.x86_64.rpm: digests signatures 确定
[root@node01 ~]# 
这个包是一开始从光盘中拷贝过来的,可以看到验证通过。
[root@node01 ~]# rpm -K vsftpd-3.0.3-28.el8.x86_64.rpm 
vsftpd-3.0.3-28.el8.x86_64.rpm: digests signatures 确定
[root@node01 ~]# 
这个包也是从光盘中拷贝过来的,只是其他版本的光盘,所以可以看到也是验证通过的。

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

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

相关文章

基于Java Swing泡泡龙游戏(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

AP9111手电筒专用集成电路芯片 单节干电池 LED手电筒IC

概述 AP9111 是 LED 手电筒专用集成电路芯片 &#xff0c;是一款采用大规模集成电路技术&#xff0c;专门针对单节干电池的 LED 手电筒设计的一款专用集成电路。外加 1 个电感元件&#xff0c;即可构成 LED 手电筒驱动电路板。AP 9111 性能优越、可靠性高、使用简单、生产一致…

六级高频词汇3

目录 单词 参考链接 单词 400. nonsense n. 胡说&#xff0c;冒失的行动 401. nuclear a. 核子的&#xff0c;核能的 402. nucleus n. 核 403. retail n. /v. /ad. 零售 404. retain vt. 保留&#xff0c;保持 405. restrict vt. 限制&#xff0c;约束 406. sponsor n. …

聊个开心的敏捷话题——40小时工作制

近年来&#xff0c;加班现象在很多行业已经普遍制度化&#xff0c;甚至“996”已成为一些行业标签。企业高强度的压榨让员工不堪重负&#xff0c;且时常由此引发的各种悲剧也并不鲜见。 所以&#xff0c;今天我们一起来聊一个开心轻松的话题——极限编程的40h工作制原则。 40…

Leetcode(一)两数之和

两数之和 暴力 双层循环 两两相加 等于目标值 返回 即可 class Solution {public int[] twoSum(int[] nums, int target) {for(int i0;i<nums.length;i){for(int j0;j<nums.length;j){if(nums[i]nums[j]target && i!j){int[] a{i,j};return a;}}}return null;…

kafka主题分区副本集群的概念

Kafka是一个高性能、分布式的消息系统&#xff0c;用于处理大规模的实时数据流。为了更好地理解Kafka的原理和使用&#xff0c;以下是Kafka中几个重要概念的解释&#xff1a; 主题&#xff08;Topic&#xff09;: Kafka中的最基本概念&#xff0c;相当于一个数据流或者消息流的…

【环境搭建】ubuntu22安装ros2

基于某种特殊需求&#xff0c;从Ubuntu16到22目前都尝试过安装ros、ros2 参考1&#xff1a;http://t.csdnimg.cn/DzvSe 参考2&#xff1a;http://t.csdnimg.cn/sOzr1 1.设置locale sudo apt update && sudo apt install locales sudo locale-gen en_US en_US.UTF-8 s…

SQL注入漏洞检测

预计更新SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…

Spring的IOC容器初始化流程

Spring的IOC容器初始化流程 IOC容器初始化在SpringApplication对象创建完毕执行run方法时执行refreshContext()时开始。 准备BeanFactory&#xff0c;设置其类加载器和environment等 执行BeanFactory后置处理器&#xff0c;扫描要放入容器的Bean信息&#xff0c;得到对应的Bea…

计算机网络常见的缩写

计算机网络常见缩写 通讯控制处理机&#xff08;Communication Control Processor&#xff09;CCP 前端处理机&#xff08;Front End Processor&#xff09;FEP 开放系统互连参考模型 OSI/RM 开放数据库连接&#xff08;Open Database Connectivity&#xff09;ODBC 网络操作系…

阿里云服务器租用价格分享,阿里云服务器热门配置最新活动价格汇总

在我们购买阿里云服务器的时候&#xff0c;1核2G、2核2G、2核4G、2核8G、4核8G、8核16G、8核32G等配置属于用户购买最多的热门配置&#xff0c;1核2G、2核2G、2核4G这些配置低一点的云服务器基本上能够满足绝大部分个人建站和普通企业用户建站需求&#xff0c;而4核8G、8核16G、…

Maven项目引入本地jar

Maven项目引入本地jar 1.对应maven模块项目中建lib目录&#xff0c;将jar放入进去 2.在对应的模块pom.xml中引入此依赖jar 3.在对应的maven-plugin插件打包的pom.xml中指定需要includeSystemScope为true的jar

AMEYA360:大唐恩智浦荣获 2023芯向亦庄 “汽车芯片50强”

2023年11月28日&#xff0c;由北京市科学技术委员会和北京市经济和信息化局指导、北京经济技术开发区管理委员会主办、盖世汽车协办的“芯向亦庄”汽车芯片大赛在北京亦庄成功闭幕。 在本次大赛中 大唐恩智浦的 电池管理芯片DNB1168 (应用于新能源汽车BMS系统) 凭卓越的性能及高…

SQL注入一般过程

实验&#xff1a;Vulnerability: SQL Injection&#xff08;low&#xff09; SQL注入一般过程 1.判断注入点 一般和数据库进行交互的位置 2.判断注入点类型 字符型判断&#xff1a; 1 报错 1 and 12 错误结果 1 and 11 正确结果 数字型判断&#xff1a; 1 报错 1 and 12…

【SpringBoot教程】SpringBoot 实现前后端分离的跨域访问(CORS)

作者简介&#xff1a;大家好&#xff0c;我是撸代码的羊驼&#xff0c;前阿里巴巴架构师&#xff0c;现某互联网公司CTO 联系v&#xff1a;sulny_ann&#xff08;17362204968&#xff09;&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗…

【毕业季|进击的技术er】作为一名职场人,精心总结的嵌入式学习路线图

活动地址&#xff1a;毕业季进击的技术er 文章目录 0、作者介绍1、前言2、嵌入式基础必备知识2.1、学习内容2.2、学习建议2.3、学习资料 3、嵌入式入门篇——51单片机3.1、学习内容3.2、学习建议3.3、学习资料 4、STM32进阶篇4.1、学习内容4.2、学习建议4.3、学习资料 5、小而美…

印刷包装企业做什么认证才有优势

最近几年&#xff0c;外贸出口过程中&#xff0c;越来越多的印刷和包装企业被客户要求进行各类认证和审核&#xff0c;比如&#xff0c;产品印刷包装&#xff0f;吊牌等。他们已经意识到&#xff0c;印刷包装供应商对于整个供应链管理的重要性&#xff0c;尤其是那些明确标示了…

由pandas.loc引发的未知错误AttributeError: ‘str‘ object has no attribute ‘isna‘

由于data.loc[value]和 data[data.keyvalue] 这两者之间有一定的差异&#xff0c;第一种方式返回的可能是series&#xff0c;第二种方式返回的是dataframe&#xff0c;所以在做复杂条件筛选的的时候&#xff0c;可能会爆str相关的错误。 例如&#xff1a; account_instal[(ac…

嵌入式开发按怎样的路线学习较好?

嵌入式开发按怎样的路线学习较好&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「嵌入式从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&#xff01;&…

mysql的行锁具体是怎么工作的

mysql行级锁是怎么工作的&#xff1f; 加锁的对象是索引&#xff0c;加锁的基本单位是 next-key lock。在能使用记录锁或者间隙锁就能避免幻读现象的场景下&#xff0c; next-key lock 就会退化成记录锁或间隙锁。 锁的范围&#xff0c;总结一下就是&#xff0c;对于唯一索引&a…