linux-centos中安裝相關知識
一、源代碼形式

1. 絕大多數開源軟件都是直接以原碼形式發布的 2. 源代碼一般會被打成.tar.gz的歸檔壓縮文件 3. 源代碼需要編譯成為二進制形式之后才能夠運行使用 4. 源代碼基本編譯流程: 1).configure 檢查編譯環境; 2)make對源代碼進行編譯; 3)make insall 將生成的可執行文件安裝到當前計算機中
二、RPM

RMP 是 LINUX 下的一種軟件的可執行程序,你只要安裝它就可以了。這種軟件安裝包通常是一個RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后綴是.rpm。 RPM是Red Hat公司隨Redhat Linux推出了一個軟件包管理器,通過它能夠更加輕松容易地實現軟件的安裝。 1.安裝軟件:執行rpm -ivh rpm包名,如: #rpm -ivh apache-1.3.6.i386.rpm 2.升級軟件:執行rpm -Uvh rpm包名。 3.反安裝:執行rpm -e rpm包名。 4.查詢軟件包的詳細信息:執行rpm -qpi rpm包名 5.查詢某個文件是屬於那個rpm包的:執行rpm -qf rpm包名 6.查該軟件包會向系統里面寫入哪些文件:執行 rpm -qpl rpm包名

1.源代碼形式的特點:操作復雜、編譯時間長、極易出現問題、依賴關系復雜 2.為了方便,RPM(redhat package manager) 3.RPM通過將代碼基於特定平台系統編譯為可執行文件,並保存依賴關系,來簡化開源軟件的安裝管理。針對不同的系統設定不同的包 4.常用命令規范:linuxcast-1.2.0-30.el6.1686.rpm 包名-版本號-適用平台-32/64-rpm 5.使用rpm –i software.rpm(安裝); rpm -e software.rpm(卸載); rpm –U software.rpm(升級形式安裝); rpm –ivh http://www.linuxcast.net/software.rpm(支持通過http\ftp協議形式安裝) -v 顯示詳細信息;-h顯示進度條 查詢功能:rpm –qa 列出全部已經安裝的.rpm軟件 rpm –qa |grep ***
三:YUM

1. rpm軟件包形式的管理雖然方便,但是需要手工解決軟件包的依賴關系。很多時候安裝一個軟件安裝一個軟件需要安裝1個或者多個其他軟件,手動解決時,很復雜,yum解決這些問題。Yum是rpm的前端程序,主要目的是設計用來自動解決rpm的依賴關系,其特點: 1) 自動解決依賴關系 2) 可以對rpm進行分組,基於組進行安裝操作 3) 引入倉庫概念,支持多個倉庫 4) 配置簡單 2. yum倉庫用來存放所有的現有的.rpm包,當使用yum安裝一個rpm包時,需要依賴關系,會自動在倉庫中查找依賴軟件並安裝。倉庫可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、統一的網絡倉庫。 3. 倉庫的配置文件/etc/yum.repos.d目錄下 4. 使用: 1) yum install 安裝; 2) yum remove卸載; 3) yum update 升級制定軟件 5. 安裝的時候,會下載軟件包.Rpm在安裝,所以用國內倉庫 改變鏡像源 1) 訪問地址http://mirrors.163.com/ 2) 點centos使用幫助 3) 按步驟來 6. 查詢軟件:可以使用yumsearch **
四:PIP

pip 是 Python 包管理工具,該工具提供了對Python 包的查找、下載、安裝、卸載的功能。 目前如果你在 python.org 下載最新版本的安裝包,則是已經自帶了該工具。 Python 2.7.9 + 或 Python 3.4+ 以上版本都自帶 pip 工具。 pip在安裝完python后,可以使用軟連接進行配置。
如果對服務器連接外網有嚴格要求,就必須在離線環境下進行安裝配置。根據不同的情況,離線安裝有以下幾種方法:
安裝少量無依賴的應用和包
1.使用能上網的設備,在提供包下載的網站上下載需要的內容,用U盤或FTP等方法拷貝到內網服務器安裝。
包下載網站: https://pypi.org/project 、http://rpmfind.net/ 等
通過ftp拷貝:
a)把包文件上傳到ftp b)從服務器把需要的包文件下載 ftp 192.168.1.2 # 輸入用戶名,密碼 登錄 ftp> prompt #關閉下載提示 ftp> get | mget filename # get單文件下載;mget多文件下載
2.安裝
直接安裝:
yum -y install xxx.rpm pip install -y xxx.whl
編譯安裝:
tar -xvzf python3.8.3.tar.gz cd python3.8.3 ./configure --prefix=/opt/python383 make && make install
python-django項目遷移依賴包離線安裝
可以從已經安裝好環境的設備上批量下載離線安裝包,然后安裝到斷網環境的設備上。
pip freeze > requirements.txt 導出環境中用到的依賴包記錄文本 pip download -d /tmp/packages -r requirements.txt
要保存下載的包的目錄 -r requirements.txt 通過txt文件中的內容,下載相應的依賴包到指定目錄
pip install --no-index --find-links=packages -r requirements.txt 也可以下載一個包后,通過pip install **.whl或者python setup.py install **.tar.gz 安裝
指定安裝目錄
pip38 install --no-index --find-links=packages -r requirements.txt --target=/opt/envs/django2.1.8/lib/python3.8/site-packages #未測試
使用yum downloadonly下載RPM包及依賴包
1.下載yumdownloadonly插件
yum install yum-plugin-downloadonly
2.下載到指定目錄(依賴包會一起下載)
# --downloadonly 只下載 # --downloaddir=temp rpm的下載保存地址 yum install --downloadonly --downloaddir=/root/httpd httpd
再例如:
#yum -y groupinstall "Developmenttools" --downloadonly --downloaddir=/download/111
#yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-deve xz gcc --downloadonly --downloaddir=/download/111
#yum -y install zlib-devel bzip2-devel openssl-devel ncurses-develsqlite-devel readline-devel tk-devel gdbm-devel
db4-devel libpcap-develxz-devel man --downloadonly --downloaddir=/download/111
3. 通過上面的方法,把包拷貝到內網服務器
rpm -Uvh --force --nodeps *.rpm
利用緩存下載離線包(不推薦)
默認情況下,yum在安裝軟件包后會自動清理軟件包,修改配置,使yum不再清理軟件包
im /etc/yum.conf中修改keepcache = 0改為keepcache = 1 /etc/init.d/yum-updatesd restart yum -y install httpd 這時軟件包已經安裝下載,目錄為/var/cache/yum
使用yum downloader下載RPM包及依賴包
1.下載安裝downloader
yum install yum-utils -y
2.downloader使用
sudo yum downloader 軟件名 sudo yumdownloader nano
默認情況下,下載的包會被保存在當前目錄中,我們需要使用root權限,因為yumdownloader會在下載過程中更新包索引文件。與yum命令不同的是,任何依賴包不會被下載。我們可以通過加參數,使得下載包的過程中同時下載依賴以及自定義下載位置,格式為:yumdownloader 軟件名 –resolve –destdir=保存目錄
例如:
#--resolve 下載依賴包 #--destdir= 下載保存目錄 sudo yum downloader httpd --resolve --destdir=/root/package/httpd
3. 通過上面的方法,把包拷貝到內網服務器
rpm -Uvh --force --nodeps *.rpm
通過搭建本地yum倉庫源實現離線安裝包和相關依賴(使用鏡像ISO文件)
1.YUM本地倉庫源配置文件介紹
CentOS使用的yum源是在/etc/yum.repos.d/目錄下的兩個文件中進行配置的CentOS-Base.repo和CentOS-Media.repo。
其中,CentOS-Base.repo是配置網絡yum源,CentOS-Media.repo是配置本地yum源。
2.配置ISO掛載
#下載地址: http://mirrors.sohu.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso 將鏡像文件centos7.iso拷貝至Linux文件目錄,如/usr/local/src # 創建掛載路徑 sudo mkdir /mnt/iso # 掛載ISO鏡像到目錄 mount -o loop /usr/local/src/centos7.iso /mnt/iso # 驗證掛載 df -h
3.配置本地YUM源
cd /etc/yum.repos.d #yum源配置文件放置目錄 mv CentOS-Base.repo CentOS-Base.repo.bak #先將網絡yum源配置文件更名(讓其失效) vi CentOS-Media.repo #編輯本地yum源文件 (sudo touch /etc/yum.repos.d/local.repo) # 也可以創建一個新的源文件,把centos-media.repo改名 name=CentOS-$releasever - Media #本地yum源名稱(可隨意修改) baseurl=file:///mnt/iso/ #光盤掛載目錄 gpgcheck=0 enabled=1 #使用此yum源(等於0為不啟用) gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 本地yum源密鑰 其中,baseurl是本地yum源的位置,當然,根據我們iso的配置位置,這里是可以進行修改的。
不過,我只是將iso文件掛載到/mnt/iso/目錄,所以,我也沒有做修改。將enabled改為1,啟用本地yum源,其他配置保持不變。
4.更新yum源,查看是否有yum列表產生
yum clean all yum makecache yum repolist yum list
5.安裝rpm包
yum install package_name
6.在虛擬環境中用DVD掛載ISO,配置YUM源
https://cloud.tencent.com/developer/article/1336558
7.說明:使用mount命令掛載后,當系統重新啟動后這些掛載的配置就不再生效(需檢驗),所以我們需要修改配置文件/etc/fstab來讓掛載的配置永久生效
vim /etc/fstab # 在文件的末尾添加如下內容(這是用DVD進行的掛載) /dev/sr0 /mnt/cdrom1 iso9660 defaults 0 0 /dev/sr1 /mnt/cdrom2 iso9660 defaults 0 0
搭建本地離線yum倉庫(非ISO)
大致需要如下幾個步驟。
1.把rpm包及其相關依賴全部都下載到本地目錄
mkdir /opt/localrepo #通過downloadonly、downloader、在rmp網站直接下載等方法把包文件下載到本地目錄
2.在/etc/yum.repos.d/目錄下配置本地倉庫源信息
# vim /etc/yum.repos.d/localrepo.repo [localrepo] name=localrepo baseurl=file:///localrepo gpgcheck=0 enabled=1 # 說明 .repo配置文件: localrepo是本地倉庫名,可任意起名,但是注意不能與已有的倉庫名重復。 name后面是注釋信息,隨意書寫。 baseurl這后面就是填寫本地倉庫路徑了,file://表示使用本地文件協議,后面的/localrepo本地rpm包存放路徑。 gpgcheck=0這是和驗證包的安全信息的,最好設置成0,表示關閉安全驗證,否則還需要准備安全驗證文件,麻煩一堆一堆的。 enabled=0,表示啟用本倉庫,0啟用,1關閉。 更多詳細配置信息,請參考man yum.conf
3.使用createrepo命令生成repodata信息
如果我們現在就直接使用本地倉庫安裝一個包,會報如下錯誤: couldn't open file /localrepo/repodata/repomd.xml 告訴我們找不到/localrepo/repodata/repomd.xml這個文件,應為到目前位置我們的本地倉庫里除了rpm包之外什么都沒有,
repomd.xml這個文件簡單來說就是存放本地倉庫rpm包的索引信息,具體用法不是我們關心的重點,可以使用createrepo直接生成。 假如我們本地倉庫沒有配置好,不僅本地倉庫無法使用,整個yum安裝工具都會一直報錯,此時我們把本地yum配置文件改名或暫時刪除即可 # createrepo命令默認系統沒有,需要我們額外安裝: yum install createrepo -y 安裝完畢之后,直接使用: createrepo /localrepo/ 這時會發現本地倉庫repodata相關信息已經生成完畢。
4.使用yum repoinfo檢查確認
使用下述命令可以檢查看到本地倉庫基本信息:
yum repoinfo as4k Repo-id : localrepo Repo-name : localrepo Repo-status : enabled Repo-pkgs : 48 Repo-size : 514 M Repo-baseurl : file:///localrepo/ Repo-expire : Filter : read-only:present Repo-filename: /etc/yum.repos.d/localrepo.repo repolist: 48
5.安裝rpm包測試
yum install vim
6.使用說明
可以看到使用起來,與線上倉庫區別不大。創建好的本地倉庫可直接scp復制到其它機器使用,yum配置文件及rpm倉庫直接復制過去即可,無需再創建一遍repodata信息。
7.對本地倉庫進行更新
下載一個新的rpm軟件包到本地倉庫,此時我們使用yum repoinfo localrepo查看會發現軟件包的數量並沒有增加,
我們安裝新增的軟件包也會提示,找不到次軟件包的現象,可以按照下述步驟,更新倉庫信息。 查看舊的軟件包總數 yum repoinfo localrepo | grep pkgs 更新本地倉庫 createrepo --update /localrepo/ 清除所有緩存 yum clean all 查看新的軟件包總數 yum repoinfo localrepo | grep pkgs 如果軟件包的數量增加,說明倉庫更新成功。