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.pswp.cn/news/213652.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213652.shtml
英文地址,請注明出處:http://en.pswp.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…