目錄
一.應用程序
對比應用程序與系統命令的關系
典型應用程序的目錄結構
常見的軟件包裝類型
二.RPM軟件包管理
1.RPM是什么?
2.RPM命令的格式
查看已安裝的軟件包格式
查看未安裝的軟件包
3.RPM安裝包從哪里來?
4.掛載的定義
掛載命令mount
查看掛載情況
掛載規則
三.yum安裝
1.定義
2.安裝過程?
3.實驗-----配置本地yum倉庫
客戶端配置文件的格式
實驗過程
四.編譯安裝
1.編譯安裝基本介紹
2.安裝準備
3.實驗過程
Linux系統與Windows系統不兼容,在Windows平臺開發出來的軟件在Linux上無法運行,在Linux上開發的軟件在Windows上又無法運行,這就導致了軟件移植困難。
如何在Linux安裝、卸載軟件
1、編譯安裝 靈活性搞 難度較大 ?可以安裝較新的版本
2、rpm安裝 (redhat) linux 包安裝 ? ?查軟件信息:是否安裝,文件列表
2、yum 是升級版本,解決rpm的弊端
一.應用程序
對比應用程序與系統命令的關系
角色 | 系統命令 | 應用程序 |
文件位置 | 一般在/bin和/sbin目錄中,或為shell內部指令 | 通常在user/bin和user/sbin目錄中 |
主要用途 | 完成對系統的基本管理工作,例如IP配置工具 | 完成相對獨立的其他輔助任務,例如網頁瀏覽器 |
適用環境 | 一般只在字符操作界面中運行 | 根據實際需要,有些程序可在圖形界面中運行 |
運行格式 | 一般包括命令字、命令選項和命令參數 | 通常沒有固定的執行格式 |
典型應用程序的目錄結構
文件類型 | 保存目錄 |
普通執行程序文件 | /usr/bin |
服務器執行程序文件和管理程序文件 | /usr/sbin |
應用程序配置文件 | /etc |
日志文件 | /var/log |
應用程序參考文檔文件 | /usr/share/doc |
應用程序手冊頁文件 | /usr/local/share/man |
常見的軟件包裝類型
文件類型 | 保存目錄 |
RPM軟件包 | 擴展名為“.rpm” |
DEB軟件包 | 擴展名為“.deb” |
源代碼軟件包 | 一般為“.tar.gz”、“tar.ba2”等格式的壓縮包包含程序的原始代碼 |
綠色免安裝的軟件 | 軟件包的擴展名不一,以TarBall格式的居多 在壓縮包內提供已編譯好的執行程序文件 解開壓縮包后的文件即可直接使用 |
二.RPM軟件包管理
1.RPM是什么?
RPM(Red-Hat package Manager):
- 由Red Hat公司提出, 被眾多Linux發行版所采用
- 建立統一的文件數據庫
- 詳細記錄軟件包安裝、卸載、升級等變化信息
- 自動分析軟件包依賴關系
2.RPM命令的格式
RPM軟件可以實現幾乎所有的功能:新增,刪除,更新等。
查看已安裝的軟件包格式
rpm? -q? 軟件名
rpm -qa | 顯示當前系統中以 RPM 方式安裝的所有軟件列表 |
rpm -q? 軟件名 | 查詢指定軟件是否已安裝 |
rpm -qi??軟件名 | 查看指定軟件包的名稱、版本、許可協議、用途描述等詳細信息 |
rpm -ql??軟件名 | 顯示指定的軟件包在當前系統中安裝的所有目錄、文件列表 |
rpm -qc??軟件名 | 列出已安裝的指定軟件的配置文件 |
查看未安裝的軟件包
rpm? -qp? 軟件名
3.RPM安裝包從哪里來?
- 官網下載??或者? 自研
- 在安裝光驅中 ,約4.7G?中,3個G 都是安裝包。
4.掛載的定義
系統內部的 一個文件夾和硬件設備關聯,只要訪問文件夾等于訪問硬件設備上的空間。(把硬盤變成文件,讓系統識別并使用硬盤的空間
掛載命令mount
[root@localhost ~]#mount /dev/sr0 ?/mnt/
mount: /dev/sr0 寫保護,將以只讀方式掛載
?
解掛載格式:
umount ? ?掛載的文件夾
卸載軟件格式:
rpm -e?? 軟件名
查看掛載情況
df? ——? disk? free?
掛載規則
- 最好使用空文件夾掛載,如果掛載的文件夾有文件存在,那么文件可能會消失
- 一個文件夾如果掛載多個設備 只能看到最后一個掛載設備的數據,其它設備上的數據將被隱藏
- 一個設備可以掛載在多個文件夾上 一個光驅可以掛載在多個文件夾上
- 一個掛載點同一時間只能掛載一個設備
三.yum安裝
1.定義
- YUM(Yellow dog Updater,Modified )yum是一個基于RPM包(是Red-Hat Package Manager紅帽軟件包管理器的縮寫)構建的軟件更新機制,能夠自動解決軟件包之間的依賴關系。解決了日常工作中的大量查找安裝依賴包的時間
- yum是c/s架構(c/s架構是分為客戶端和服務端;服務端是存放軟件安裝包,客戶端是進行安裝軟件包;配置文件指向服務端)
- yum倉庫的分類,本地和網絡(本地:自己既是客戶端也是服務端;網絡:客戶端和服務端分開)
2.安裝過程?
元信息是一個文件,記錄了安裝包的路徑、安裝包的依賴關系
- 第一次客戶端根據配置文件找到服務端;
- 客戶端將元信息下載到本地(元信息是安裝包的位置以及安裝包的依賴關系)
- 根據元信息去下載對應的安裝包到本地后,然后安裝
- 安裝完成后,刪除安裝包
3.實驗-----配置本地yum倉庫
本地yum(不需要依賴網絡)
yum ?install ? 安裝
yum install 軟件名 -y (-y表示同意)?
vim /etc/yum.conf ? ? ? ?服務端的配置文件
cd /etc/yum.repos.d/ ? ?客戶端的配置文件
客戶端必須要有文件后綴面(必須要以.repo結尾)(必須要放在/etc/yum.repos.d文件夾中)
客戶端配置文件的格式
[local]
name=local
baseurl=服務器地址
gpgcheck=0 (代表不驗證)
enabled=1是開啟/enable=0是關閉
baseurl:
file:// 本機位置
file:// /mnt 本機掛載點(本機掛載在mnt文件夾)
http:// 網絡地址
https:// 網絡地址
作為服務端需要提供安裝包、源數據;所以看到repodata、package就可以復制當前地址
實驗過程
mount /dev/sr0 /mnt ? ? ? ? ?#掛載提供安裝包和元數據
cd /etc/yum.repos.d ? ? ? ? ?#切換到規定的目錄
mkdir bak ? ? ? ? ? ? ? ? ? ?#建立備份文件夾
mv *.repo bak ? ? ? ? ? ? ? ?#將所有網絡源移走,減少干擾
vim /etc/yum.repos.d/local.repo ? ? #自建本地源的配置文件[local] ? ? ? ? ? ? ? ? ? ? ?#自定義倉庫描述
name=localer ? ? ? ? ? ? ? ? #自定義倉庫名
baseurl=file:///mnt ? ? ? ? ?#指明倉庫位置
gpgcheck=0 ? ? ? ? ? ? ? ? ? #不驗證安全性(若為1則驗證)yum clean all ? ? ? ? ? ? ? ?#清理緩存
yum makecache ? ? ? ? ? ? ? ?#重新建立元數據
注意:如果出現下面的情況? ?要kill? 114533 或者? kill? ? -9? ?114533四.編譯安裝
建議使用rm -rf /var/run/yum.pid
1.編譯安裝基本介紹
大部分是c語言開發的,更方便的使用
軟件版本比較新,新功能,修復bug
可以自行定義配置文件的路徑
源碼可能有100個功能,紅帽認為你可能不需要會自行處理砍掉,自行定制50
程序包編譯安裝:
源代碼-->預處理-->編譯-->匯編-->鏈接-->執行
多文件:文件中的代碼之間,很可能存在跨文件依賴關系
雖然有很多開源軟件將軟件打成包,供人們使用,但并不是所有源代碼都打成包,如果想使用開源軟件,可能需要自已下載源碼,進行編譯安裝。另外即使提供了包,但是生產中需要用于軟件的某些特性,仍然需要自行編譯安裝。但是利用源代碼編譯安裝是比較繁瑣的,慶幸的是有相關的項目管理工具可以大大減少編譯過程的復雜度。
2.安裝準備
①選擇安裝在哪里
②檢測編譯環境
③選擇安裝模塊
3.實驗過程
mkdir /data/
cd /data
wget http://nginx.org/download/nginx-1.18.0.tar.gz #下載安裝包
tar xf nginx-1.18.0.tar.gz #解壓源碼包
cd /data/nginx-1.18.0/ #切換目錄
yum -y install gcc gcc-c++ pcre-devel openssl-devel zlib-devel openssl openssl-devel
#安裝編譯環境需要的包./configure --prefix=/apps/nginx #指明安裝路徑
make #將所有的源代碼翻譯成二進制,會形成一個綠色的可執行文件
make install
會執行文件,及相關的一些依賴文件拷貝到之前指定的目錄中
(make -j 2 && make install #啟用兩核進行安裝 )ln -s /apps/nginx/sbin/* /usr/bin/ #為了可以補全
systemctl stop firewalld #關閉防火墻
setenforce 0 #關閉防護nginx #開啟服務
ss -natp|grep 80 #檢測服務開啟
curl 192.168.91.100 #檢測服務開啟nginx -s stop #關閉服務