Linux軟體安裝管理

来源:http://www.cnblogs.com/yan-lei/archive/2017/10/15/7674767.html
-Advertisement-
Play Games

1、軟體包管理簡介 1.軟體包分類 源碼包 腳本安裝包 二進位包(RPM包、系統預設包) 2.源碼包 源碼包的優點是: 開源,如果有足夠的能力,可以修改源代碼 可以自由選擇所需要的功能 軟體設計編譯安裝,所以更加適合自己的系統,更加穩定有效 卸載方便 源碼包的缺點: 安裝過程步驟較多,尤其是安裝較大 ...


1、軟體包管理簡介

1.軟體包分類

源碼包

  • 腳本安裝包

二進位包(RPM包、系統預設包)

2.源碼包

源碼包的優點是:

  • 開源,如果有足夠的能力,可以修改源代碼
  • 可以自由選擇所需要的功能
  • 軟體設計編譯安裝,所以更加適合自己的系統,更加穩定有效
  • 卸載方便

源碼包的缺點:

  • 安裝過程步驟較多,尤其是安裝較大的軟體集合時(如LAMP環境搭建),容易出現拼寫錯誤
  • 編譯過程時間較長,安裝比二進位安裝時間長
  • 因為是編譯安裝,安裝過程中一旦報錯新手很難解決

3.RPM包

二進位包的優點:

  • 包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載
  • 安裝速度比源碼包安裝快的多

二進位包缺點:

  • 經過編譯,不再可以看到源代碼
  • 功能選擇不如源碼包靈活
  • 依賴性

4.腳本安裝包

所謂的腳本安裝包,就是把複雜的軟體包安裝過程寫成了程式腳本,初學者可以執行程式腳本實現一鍵安裝。但實際安裝的還是源碼包和二進位包。

優點:安裝簡單、快捷

缺點:完全喪失了自定義性

2、rpm命令管理

Red Hat Package Manager/RPM 紅帽軟體包管理器

RPM包命名規則

1.RPM包的來源

RPM包在系統光碟中

2.RPM包命名原則

httpd-2.2.15-15.el6.centos.1.i686.rpm

  • httpd 軟體包名
  • 2.2.15 軟體版本
  • 15 軟體發佈的次數
  • el6.centos 適合的Linux平臺
  • i686 適合的硬體平臺
  • rpm rpm擴展名

3.RPM包依賴性

樹形依賴:a -> b -> c

環形依賴:a -> b -> c -> a

模塊依賴:模塊依賴,查詢網站:www.rpmfind.net

安裝命令

1.包全名與包名

包全名:操作的包是沒有安裝的軟體包時,使用包全名。而且要註意路徑。

包名:操作已經安裝的軟體包時,使用包名,是搜索/var/lib/rpm/中的資料庫。

2.RPM安裝

rpm -ivh 包全名

選項:

  • -i(install) 安裝
  • -v(verbose) 顯示詳細信息
  • -h(hash) 顯示進度
  • --nodeps 不檢測依賴性

升級與卸載

1、RPM包升級

rpm -Uvh 包全名

選項:

  • -U(upgrade) 升級

2.卸載

rpm -e 包名

選項:

  • -e(erase) 卸載
  • --nodeps 不檢查依賴性

RPM包查詢

1.查詢是否安裝

rpm -q 包名

# 查詢包是否安裝

  • -q 查詢(query)

rpm -qa

# 查詢所有已經安裝的RPM包

  • -a 所有(all)

rpm -qa | grep httpd

2.查詢軟體包詳細信息

rpm -qi 包名

選項:

  • -i 查詢軟體信息(information)
  • -p 查詢未安裝包信息(package)

3.查詢包中文件安裝位置

rpm -ql 包名

選項:

  • -l 列表(list)
  • -p 查詢未安裝包信息(package)

RPM包預設安裝位置

RPM包預設安裝路徑
/etc/ 配置文件安裝目錄
/usr/bin 可執行的命令安裝目錄
/usr/lib/ 程式所使用的函數庫保存位置
/usr/share/doc 基本軟體使用手冊保存位置
/usr/share/man/ 幫助文件保存位置

4、查詢系統文件屬於哪個RPM包

rpm -qf 系統文件名

選項:

  • -f 查詢系統文件屬於哪個軟體包(file)

5、查詢軟體包的依賴性

rpm -qR 包名

選項:

  • -R 查詢軟體包的依賴性(requires)
  • -p 查詢未安裝包信息(package)

RPM包校驗

1、RPM包校驗

rpm -V 包名

驗證內容中的8個信息的具體內容如下:

  • S 文件大小是否改變
  • M 文件的類型或文件的許可權(rwx)是否被改變
  • 5 文件MD5校驗和是否被改變(可以看成文件內容是否改變)
  • D 設備的主從代碼是否被改變
  • L 文件路徑是否改變
  • U 文件的屬主(所有者)是否改變
  • G 文件的屬組是否改變
  • T 文件的修改時間是否改變
  • 文件類型
    • c 配置文件(config file)
    • d 普通文檔(documentation)
    • g “鬼”文件(ghost file),很少見,就是該文件不應該被這個RPM包包含
    • L 授權文件(license file)
    • r 描述文件(read me)

2、RPM包中文件提取

rpm2cpio 包全名 | cpio -idv .文件絕對路徑

  • rpm2cpio
    # 將rpm包轉換為cpio格式的命令
  • cpio
    # 是一個標準工具,它用於創建軟體檔案文件和從檔案文件中提取文件

[root@AmorLei ~]# cpio 選項 < [文件|設備]

選項:

  • -i :copy-in模式,還原
  • -d :還原時自動新建目錄
  • -v :顯示還原過程
rpm -qf /bin/ls
# 查詢ls命令屬於哪個軟體包
mv /bin/ls /tmp/
# 造成ls命令誤刪除現象
rpm2cpio /mnt/cdrom/Package/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
# 提取RPM包中ls命令到當前目錄的/bin/ls下
cp /root/bin/ls /bin/
# 把ls命令複製回/bin/目錄,修複文件丟失

3、yum線上管理

RPM包缺點:安裝過程中,rpm包的依賴性太強。如果所有rpm包都是手工安裝,則rpm包使用難度較大。

yum優點:將所有包放到官方伺服器上,當進行yum線上安裝時,可以自動解決依賴性問題。

yum缺點:Red Hat的yum線上安裝需要付費

1.yum源文件

vi /etc/yum.repos.d/CentOS-Base.repo

  • [base] 容器名稱,一定要放在[]中
  • name 容器說明,可以自己隨便寫
  • mirrorlist 鏡像站點,這個可以註釋掉
  • baseurl 我們的yum源伺服器的地址。預設是CentOS官方的yum源伺服器,是可以使用的,如果你覺得慢可以改成你喜歡的yum源地址
  • enabled 此容器是否生效,如果不寫或寫成enable=1都生效,寫成enable=0就是不生效
  • gpgcheck 如果是1是指RPM的數字證書生效,如果是0則不生效
  • gpgkey 數字證書的共鑰文件保存位置。不用修改

2.光碟搭建yum源

1.掛載光碟

mkdir /mnt/cdrom
# 建立掛載點
mount /dev/cdrom /mnt/cdrom
# 掛載光碟

2.使網路yum源失效

cd /etc/yum.repos.d/
# 進入yum源目錄
mv CentOS-Base.repo CentOS-Base.repo.bak
# 修改yum源文件尾碼名,使其失效

3.使光碟yum源生效

vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever-Media
baseurl=file:///mnt/cdrom    # 地址為你自己的光碟掛載地址
#        file:///media/cdrom/
#        file:///media/cdrecorder # 註釋這兩個不存在的地址
gpgcheck=1
enabled=1         # 把enabled=0改為enabled=1,讓這個yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3.yum命令

1.常用yum命令

(1)查詢

yum list
# 查詢所有可用軟體包列表
yum search 關鍵字
# 搜索伺服器上所有和關鍵字相關的包

(2)安裝

yum -y install 包名
選項:
- install         安裝
- -y             自動回答yes
例如:yum -y install gcc

(3)升級

yum -y update 包名
選項:
- update          升級
- -y             自動回答yes

(4)卸載

yum -y remove 包名
選項:
- remove        卸載
- -y             自動回答yes

伺服器使用最小化安裝,用什麼軟體安裝什麼,儘量不卸載

2.yum軟體組管理命令

yum grouplist
# 列出所有可用的軟體組列表
yum groupinstall 軟體組名
# 安裝指定軟體組,組名可以由grouplist查詢出來
yum groupremove 軟體組名
# 卸載指定軟體組

4、源碼包管理

1.源碼包和RPM包的區別

區別

安裝之前的區別:概念上的區別

安裝之後的區別:安裝位置不同

RPM包安裝位置

是安裝在預設位置中

rpm安裝可以指定安裝位置,但是不建議指定安裝位置

[root@AmorLei ~]# rpm --help | grep prefix
  --prefix=<dir>                   relocate the package to <dir>, if

源碼包安裝位置

安裝在指定位置當中,一般是: /usr/local/軟體名/

源碼包沒有卸載命令

安裝位置不同帶來的影響

RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM包安裝的apache的啟動方法是:

  • /etc/rc.d/init.d/httpd start
  • service httpd start(RedHat 專有方法)

源碼包安裝的服務則不能被服務管理命令管理,因為沒有安裝到預設路徑中。所以只能用絕對路徑進行服務的管理,如:

  • /usr/local/apache2/bin/apachectl start

2.源碼包安裝過程

1.安裝準備

安裝C語言編譯器

下載源碼包:使用httpd-2.2.34沒有報錯

http://mirror.bit.edu.cn/apache/httpd

2.安裝註意事項

源代碼保存位置:/usr/local/src/

軟體安裝位置:/usr/local/

如何確定安裝過程報錯:

安裝過程停止 並出現error、warning或no的提示

3.源碼包安裝過程

下載源碼包

解壓縮下載的源碼包

進入解壓縮目錄

  • /configure 軟體配置與檢查
    • 定義需要的功能選項。
    • 檢測系統環境是否符合安裝要求。
    • 把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件,用於後續的編輯。
    • [root@AmorLei httpd-2.2.34]# ./configure --prefix=/usr/local/apache2
make 編譯
    make clean
make install 編譯安裝

/usr/local/apache2/bin/apachectl start

RPM包網頁位置 /var/www/html/

源碼包網頁位置 /usr/local/apache2/htdocs/

4.源碼包的卸載

不需要卸載命令,直接刪除安裝目錄即可。不會遺留任何垃圾文件。

5、腳本安裝

腳本安裝的筆記將在之後進行更新!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ...
  • ...
  • 【代碼】 輸出格式為:時間 記憶體使用大小 ...
  • 參考文檔: 本文涉及rabbitmq的基本安裝,基本的集群配置。 一.環境 1. 操作系統 CentOS-7-x86_64-Everything-1511 2. 版本 haproxu版本:1.7.7 erlang版本:20.0 rabbitmq版本:rabbitmq-server-3.6.10 ht ...
  • 小生接觸 Linux 系統時間不長,想解決linux系統ftp安裝及部署問題,折騰了大半天,終於弄出來了,將各路高手的配置方法綜合了一下,如有不對之處,歡迎各位看客指正,感謝! 一、聲明: 本文采用操作系統版本: Centos 7 Linux系統 版本源:CentOS-7-x86_64-DVD-17 ...
  • Linux grep命令 1、簡介 grep是Linux下的一種強大的文本搜索工具,使用正則表達式進行文本搜索,並把匹配的行列印出來。 2、用法 用法: grep [選項]... PATTERN [FILE]...在每個 FILE 或是標準輸入中查找 PATTERN。預設的 PATTERN 是一個基 ...
  • zabbix3.0安裝註意: 1、PHP要5.4版本以上 2、防火牆關閉 3、selinux關閉 臨時關閉selinux: setenforce 0 //設置SELinux 成為permissive模式 徹底禁用selinux: 使用root用戶,vim /etc/sysconfig/selinux ...
  • 一、需求分析 1.前端需支持更大的訪問量,單台Web伺服器已無法滿足需求了,則需擴容Web伺服器; 2.雖然動態內容可交由後端的PHP伺服器執行,但靜態頁面還需要Web伺服器自己解析,那是否意味著多台Web伺服器都需要在各自的系統中都存有一份靜態頁面數據呢?那麼如果能將靜態頁面集中存放,所有Web服 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...