(編譯)二進制格式腳 本: 解釋器(二進制程序)源代碼-->..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

菜鳥學Linux 第029篇筆記 軟件管理,rpm命令

發(fā)布時間:2020-06-27 02:06:38 來源:網(wǎng)絡 閱讀:423 作者:Winthcloud 欄目:數(shù)據(jù)庫

菜鳥學Linux 第029篇筆記 軟件管理,rpm命令




應用程序:

程序:底層Architecture密切相關

C語言: 源代碼-->(編譯)二進制格式

腳 本: 解釋器(二進制程序)


源代碼-->編譯-->鏈接-->運行

程序:

靜態(tài)

動態(tài)

靜態(tài)鏈接

動態(tài)鏈接

程序:指令+數(shù)據(jù)

Linux 共享庫 .so (shared object)

程序配置文件:

程序組成部分:

二進制程序

庫(包含程序自己私有的庫)會將其自己的庫文件放入到/lib /usr/lib

配置文件

幫助文件


linux 一級目錄

/boot

/etc

/usr

/var

/lib

/tmp

/bin

/sbin

/proc

/sys

/mnt

/media

/home

/root

/misc

/opt

/srv

安裝軟件所涉及的目錄:

1.系統(tǒng)啟動就需要用到的程序,不能掛載到額外的分區(qū),必須在根上(幫助文檔目錄除外)

/etc, 程序配置文件 

/bin, 程序二進制文件

/sbin, 程序二進制文件

/lib, 庫文件

/usr/share/man(幫助文件)  全局共享只讀目錄


2.提供系統(tǒng)核心功能,可以單獨分區(qū)(不推薦)

/usr/

bin

sbin

lib


3. 安裝第三方軟件,單獨分區(qū)(推薦)

/usr/local

bin

sbin

lib

etc

man

/opt  早期第三方軟件安裝到此目錄


其它目錄

以下兩個目錄稱為偽文件系統(tǒng),不能單獨分區(qū),默認為空(啟動后才會有)

/proc   給用戶提供調(diào)用接口

/sys 硬件調(diào)用接口


/dev 設備文件 不可單獨分區(qū)??!

udev 能夠利用內(nèi)核所提供的硬件信息,動態(tài)創(chuàng)建設備文件,

并給設備文件取一個讓用戶容易認識的名字


/home 家目錄,建議單獨 但作為服務器來講用到不多

/root 管理員家目錄 可以單獨分區(qū)但不建議

/var 外圍文件系統(tǒng)日志文件等等 建議單獨分區(qū)

/boot 內(nèi)核,initrd(initramfs) 建議單獨分區(qū)

POST-->BIOS(HD)-->(MBR)bootloader(文件系統(tǒng)結構,ext2,ext3...)-->內(nèi)核

/boot 一個分區(qū)  根lvm


程序:指令+數(shù)據(jù)

指令:芯片

CPU:普通指令,特權指令

指令集


編譯 程序指令-->匯編指令-->所對應的芯片指令(intel,Amd,Powerpc...)



軟件包管理器

1.打包成一文件:二進制程序,庫文件,配置文件,幫助文件

2.生成數(shù)據(jù)庫 追蹤所安裝的每一個文件

功能

1.制作軟件包;

2.安裝,卸載,升級,查詢,校驗;


Redhat,SUSE : RPM

Redhat Package Manager

RPM is Package Manager

Debian: dpt


依賴關系:

當用rpm安裝軟件時,有可能會遇到安裝A軟件需要先安裝B軟件

而安裝B軟件需要安裝C軟件, 此種關系稱為依賴關系;

后端工具,rpm dpt 安裝軟件時,需要自己來解決安裝軟件時的依賴關系

需要手動安裝該軟件所依賴的其它軟件

前端工具,yum apt-get 可以自動幫用戶解決安裝軟件時的依賴關系

即自動安裝所需要安裝的其它軟件

前端工具:yum apt-get

后端工具:RPM, dpt 

yum: yellowdog Update Modifier


rpm命令

rpm:

數(shù)據(jù)庫:/var/lib/rpm

rpmbuild:

安裝、查詢、卸載、升級、校驗、數(shù)據(jù)庫重建、驗證數(shù)據(jù)包等工作


rpm命名:

包:組成部分

主包:

bind-9.7.1-1.i589.e15.rpm

子包:

bind-lib-9.7.1-1.8586.e15.rpm

包名格式

name-version-release-.arch.rpm

bind-major.minor.release-release.arch.rpm

主版本號:重大改進

次版本號:某個子功能發(fā)生重要變化

發(fā)行號:修正部分bug,調(diào)整一點功能


rpm包:

二進制格式

源代碼格式

查看當前系統(tǒng)內(nèi)核版本

uname ( print system information)

-a, --all

              print  all  information,  in the following order, except omit -p

              and -i if unknown:


rpm command:

1.安裝

rpm {-i|--install} [install-options] PACKAGE_FILE ...

rpm -ivh /path/name.rpm

--nodeps

 Don’t do a dependency check before installing or upgrading

 a package. 忽略依賴關系,但是軟件安裝后可能會無法運行

--force 強行安裝,可以實現(xiàn)重裝或降級

--test Do  not  install  the package, simply check for and report

 potential conflicts.

 

2.查詢

rpm -q PACKAGE_NAME  不能跟路徑  查詢指定的包是否已經(jīng)安裝 query

rpm -qa 查詢已經(jīng)安裝的所有包 all

rpm -qi PACKAGE_NAME 查詢指定包的說明信息 information

rpm -ql PACKAGE_NAME 查詢指定包安裝生成的文件列表list directory

rpm -qc PACKAGE_NAME 查詢指定的安裝包的配置文件config

rpm -qf /path/to/somefile 查詢指定的文件是由哪個rpm包安裝生成的;

-qd PACKAGE_NAME 查詢軟件包的幫助文件 docfiles

-q --scripts PACKAGE_NAME 查詢軟件包中包含的腳本

如果某rpm包尚未安裝,我們需要查詢其說明信息,安裝以后會生成的文件

rpm -qpi /path/to/package.rpm

3.升級

rpm -Uvh /path/to/new_package_file.rpm 如果裝有老版本的,則升級,否則安裝

rpm -Fvh /path/to/new_package_file.rpm 如果裝有老版本的,則升級,否則退出

--oldpackage 降級

4.卸載

rpm -e PACKAGE_NAME 卸載rpm包 erase

-nodeps 卸載但不刪除所依賴的rpm包

5.校驗

rpm -V PACKAGE_NAME 驗證rpm軟件包


6.重建rpm數(shù)據(jù)庫

rpm 

--rebuilddb: 重建數(shù)據(jù)庫,一定會重新建立;

initdb: 初始華數(shù)據(jù)庫,沒有才建立,有就不用建立;

Use --initdb to create a new  database  if  one  doesn’t  already

exist  (existing database is not overwritten), 

  use --rebuilddb to rebuild the database indices from the installed 

package  headers.


7.檢驗來源合法性,及軟件包完整性

加密類型

對稱:加密解密使用同一個密鑰

非對稱:一對密鑰,公鑰,私鑰;公鑰隱含于私鑰中,可以提取出來,并公開出去

單向:MD5

/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 存放驗證信息 public key

如果沒有導入驗證信息rpm不可對軟件包做數(shù)據(jù)認證

導入驗證信息

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

rpm {-K|--checksig} [--nosignature] [--nodigest] /path/to/package.rpm

用來驗證安裝包的完整性和合法性

dsa, gpg: 驗證軟件包來源合法性,即驗證簽名 --nodigest 忽略此項

shal, md5: 驗證軟件包完整性:可以使用 --nosignature 忽略此項


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI