6 軟件的安裝

6 軟件包管理

6.1 簡介

軟件包分類:

源碼包 源代碼(大多數是C語言) 安裝時慢,容易報錯

? ? >腳本安裝包 對源碼包進行改裝,使安裝更簡單,不多。

rpm包 ?二進制包 Ubuntu系列的二進制包不是rpm,這是根本不同

?

源碼包優點:

開源,如果有足夠的能力,可以修改源代碼

可以自由選擇所需的功能

軟件是編譯安裝,所以更加適合自己的系統,更加穩定也效率更高(比rpm5%

卸載方便(直接把安裝目錄刪掉)

?

源碼包缺點:

安裝過程步驟較多,尤其安裝較大的軟件集合(如LAMP環境搭建),容易出現拼寫錯誤

編譯過程時間較長,安裝比二進制安裝時間長

因為是編譯安裝,安裝過程中一旦報錯新手很難解決

用源碼包安裝一個Linux大概用3天(老手)

?

?

二進制包優點:

包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢、卸載

安裝速度比源碼包安裝快得多

?

二進制包缺點:

經過編譯,不再可以看到源代碼

功能選擇不如源碼包靈活

依賴性

?

6.2 包命名與依賴性

httpd-2.2.15-15.e16.centos.1.i686.rmp

httpd 包名

2.2.15 版本

15 發布次數

e16.centos 適合的Linux平臺

i686 適合的硬件平臺 ?noarch 表示任何Linux版本都可以安裝

rpm rpm包擴展名

包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要注意路徑。安裝、升級操作

包名:操作已經安裝的軟件包時,使用包名。是搜索/var/lib/rpm/中的數據庫。查詢、卸載操作

?

樹形依賴 a -> b -> c

環形依賴 a -> b -> c -> a ?解決辦法:a b c 同時安裝

?

RPM包庫依賴 ?以?.so.2?結尾,不是獨立的,是某個軟件包中的文件

模塊依賴 查詢網站 www.rpmfind.net,輸入xxx.so.2可以查看屬于哪個包。

只要把包含此文件的軟件安裝上即可。


6.3 安裝與升級

安裝

rpm -ivh 包全名

-i ?install

-v ?verbose

-h ?hash ?顯示

實驗步驟:

1、先將光盤掛載:mount -t iso9660 /dev/sr0 /media

2cd /media/Packages

3、此時就可用 ?rpm -ivh 包全名 命令進行安裝了

?

升級

rpm -Uvh 包全名

-U upgrade 升級

?

卸載

rmp -e 包名

-e erase 卸載

????--nodeps 不檢查依賴性

?

6.4 查詢

查詢功能非常常用

?

查詢是否安裝

rpm -q 包名

rpm -qa

-q query 查詢

???? -a all 所有

rpm -qa| grep httpd ??此命令查詢所有和httpd相關的包安裝信息 ???|管道符

?

查詢軟件包詳細信息

rpm -qi 包名 #查詢已安裝的包信息

rpm -qip 包全名 #查詢未安裝包的信息,這些信息已經在包中寫好

-i information?查詢軟件信息

???? -p package?查詢未安裝包信息

?

查詢包中文件安裝位置 包的安裝位置都是默認的

rpm -ql 包名

rpm -qlp 包全名 查詢未安裝包打算的位置,已在包中設置好

-l list?列表

?

查詢系統文件屬于哪個RPM

rpm -qf 系統文件名

-f file?查詢系統文件屬于哪個軟件包 ?????etc目錄下都是系統的配置文件


查詢軟件包的依賴性

rpm -qR 包名

rpm -qRp 包全名 查詢未安裝包的依賴性

-R requires?查詢軟件包的依賴性

?

6.5 校驗

RPM包校驗 判斷系統文件是否被更改

?

rpm -V 已安裝包名

-V verify 校驗指定RPM包中的文件

?

例:rpm -V httpd

如果出現任何信息,則表示沒有任何修改。

如果有修改,會顯示“修改標志位 文件名”

?

修改標志位有8位信息 ? 點(.)代表未被修改

S 文件大小是否修改

M 文件類型 或者 文件權限(rwx)是否修改

5 文件MD5校驗(文件內容是否修改) MD5 -- 一種加密方式

D 設備中,從代碼是否改變

L 文件路徑是否修改

U 文件所有者是否修改

G 文件所屬組是否修改

T 文件修改時間是否修改

?

文件類型(對應上面的M

c config file 配置文件

d documentation 普通文檔

g ghost file 鬼文件 很少見 就是該文件不應該被這個RPM包包含

l license file 授權文件

r read me 描述文件

?

6.6 文件提取

目的:從rpm包中提取指定文件,用于恢復某些文件。

?

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

#rpm2cpio命令可將rpm包轉換為cpio處理格式

#cpio 是一個標準工具,用于創建軟件檔案文件和從檔案文件中提取文件

?

cpio 選項 < [文件|設備]

-i copy-in模式,還原

-d 還原時自動新建目錄

-v 顯示還原過程

?

rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.e16.i686.rpm | cpio -idv . /bin/ls

提取RPM包中ls命令到當前目錄的/bin/ls

?

6.7 yum在線管理

yum在線管理 ?redhat收費 centos免費

?

內網:需配置ip 子網掩碼

公網:還需配置 網關 DNS

?

IP地址配置:

方法一

setup ??redhat系列專有命令

service network restart

?

方法二

vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT="no"改為 ONBOOT="yes" #啟動網卡

如果文件中沒有設置DNS,則添加DNS1=1114.114.114.114

service network restart

?

網絡yum源: ?

(.repo都是合法的yum源 默認是CentOS-Base.repo生效)

配置文件為/etc/yum.repos.d/CentOS-Base.repo

這個文件默認已經配置好了,不需要更改

?

[base] 容器名稱,一定要放在[]

name ??容器說明,可以自己隨便寫

mirrorlist ?鏡像站點

baseurl ?yum源服務器的地址。默認是CentOS官方yum源服務器,如果覺得慢,可以改成別的yum源地址

enabled ?此容器是否生效,不寫默認為1,代表生效

gpgcheck ??RPM數字證書是否生效,如果是1,則生效

gpgkey ?數字證書公鑰文件保存位置,不用修改

?

查詢:

yum list ?#查詢所有可用軟件包列表

yum search 關鍵字 ?#搜索服務器上所有和關鍵字相關的包 ??yum全用包名 RPM則有包名和包全名之分

?

安裝:

yum -y install 包名

-y 自動回答yes ??

例:yum -y install gcc

?

升級:

yum -y update 包名

例:yum -y update ?//此命令升級所有軟件包,包括內核,慎用!

?

卸載:

yum -y remove 包名

#不要用yum卸載軟件包!!!

會將其依賴的包卸載,出現別的問題。

?

服務器使用的原則:

1.最小化安裝

2.使用什么軟件,安裝什么軟件

3.盡量不卸載軟件

?

yum軟件組管理命令:

yum grouplist ?#列出所有可用的軟件組列表

yum groupinstall 軟件組名 ?#安裝指定軟件組,組名可用grouplist查詢,如果組名有空格,用雙引號引起來

yum groupremove 軟件組名 ??#卸載指定軟件組

?

6.8 yum光盤管理

?

1> 掛載光盤 ?mount -t iso9660 /dev/sr0 /media

?

2> 讓網絡yum源文件失效

方法一:將所有選項都置成enable=0

方法二:yum源檢測的是.repo后綴名 ?所以改名即可

?

????mv CentOS-Base.repo CentOS-Base.repo.bak

????mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak

????mv CentOS-Vault.repo CentOS-Vault.repo.bak

?

3> 修改光盤yum

???vim CentOS-Media.repo

修改兩處:

???baseurl=file:///mnt/cdrom/ ??#地址為自己的光盤掛載點,并把其他地址注釋掉

???enabled=1 ?#讓此yum源生效

?

yum list | more ?分屏顯示

?

注釋有嚴格格式,最好單行頂格寫注釋

?

6.9 源碼包與RPM包的區別

安裝之前:概念上的區別

安裝之后:安裝位置不同

?

RPM包 系統指定的默認位置,不要人為手工修改安裝目錄

/etc/ ???配置文件

/usr/bin/ ?可執行命令

/usr/lib/ ?函數庫

/usr/share/doc/ ?使用手冊

/usr/share/man/ ?幫助文件


源碼包 人為手工指定安裝位置

一般是 /usr/local/軟件名/

?

安裝位置不同帶來的影響:

RPM包安裝的服務可以使用系統服務管理命令(service)來管理,--啟動、重啟、關閉

例如RPM包安裝的Apache的啟動方法是:

?? /etc/rc.d/init.d/httpd start ???#/etc/rc.d/init.d/是所有服務的安裝路徑 ?或者

?? service httpd start ?redhat系列專有命令,工作原理:去/etc/rc.d/init.d/目錄下去找httpd服務


源碼包安裝的服務只能通過絕對路徑進行管理:

?? /urs/local/apache2/bin/apachectl start

?

6.10 源碼包的安裝過程

源碼包安裝注意事項:

源碼包保存位置 ?/usr/local/src/

軟件安裝位置 ???/usr/local

如何確定安裝過程報錯?安裝過程停止并出現errorwarningno的提示

?

安裝Apache源碼包過程:

1、下載源碼包到/usr/local/src/

2、解壓縮下載的源碼包

3、(可選)du -sh 文件名/目錄 ?查看文件夾大小 ?disk usage

???? summarize

???? human

4、進入解壓縮目錄

兩個重要文件:INSTALL(安裝說明文件)、README(使用說明文件)

5、查看INSTALL文件內容

INSTALL關鍵內容

$ ./configure --prefix=PREFIX

$ make

$ make install

$ PREFIX/bin/apachectl start

?

./configure ?軟件配置與檢查,有三個作用

>定義需要的功能選項

>檢測系統環境是否符合安裝要求

>把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件,用于后續的編輯

?

6./configure --prefix=/usr/local/apache2 ? ?#跟安裝路徑,此命令完成后,出現Makefile文件

7make ? ?#編譯;如果出錯,make clean 命令來清空產生的臨時文件

8make install ? ?#編譯安裝,此步真正向安裝目錄寫入文件

9、安裝完成后,/usr/local/apache2/bin/apachectl start

?

源碼包的卸載:

不需要卸載命令,直接刪除安裝目錄即可

不會遺留任何垃圾文件

?

?

源碼包 RPM包 如何選擇?

用途

對外訪問(如httpd),則采用源碼包安裝

本地應用(如gcc),則采用RPM

?

6.11 腳本安裝包

>腳本安裝包并不是獨立的軟件包類型,常見安裝的是源碼包

>是人為把安裝過程寫成了自動安裝的腳本,只要執行腳本,定義簡單的參數,就可以完成安裝

>非常類似于Windows下軟件的安裝方式

?

常見的腳本安裝包是硬件的驅動

?

./setup.sh

?

1 下載軟件

2 解壓縮,并進入解壓縮目錄

3 執行安裝腳本

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387323.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387323.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387323.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STD函數的內部計算公式

各股票軟件的標準差函數STD是不同的&#xff0c;而布林線的上下軌是以STD為基礎計算出來的&#xff0c;所以使用布林線應小心。以2008/3/28的上證綜指為例&#xff0c;利用如下代碼&#xff1a;"收盤價3日STD:STD(CLOSE,3);"&#xff0c;三日收盤價分別是&#xff1a…

caffe路徑正確,卻讀不到圖片

調試caffe&#xff0c;用已有的網絡訓練自己的數據集的時候&#xff08;我這里做的是二分類&#xff09;。在生成均值文件之后&#xff0c;開始train&#xff0c;發現出現了這個問題。 1&#xff0c;路徑正確&#xff0c;卻讀不到圖片。 [db_lmdb.hpp:15] Check failed: mdb_st…

Eclipse可以執行jsp文件卻無法訪問Tomcat主頁

點擊Servers,然后雙擊本地的Tomcat服務器 出現如下界面 這里要選擇第二項 再重新啟動Tomcat就行了 轉載于:https://www.cnblogs.com/lls1350767625/p/10452565.html

caffe調用的一個例子

本文是學習Caffe官方文檔"ImageNet Tutorial"時做的&#xff0c;同樣由于是Windows版本的原因&#xff0c;很多shell腳本不能直接使用&#xff0c;走了不少彎路&#xff0c;但是收獲也不少。比如&#xff1a;如何讓shell腳本在Windows系統上直接運行、如何去用Caffe給…

孔銅的銅厚

---恢復內容開始--- 表面處理方式注釋&#xff1a; 噴錫 噴錫鉛合金是一種最低成本PCB表面有鉛工藝&#xff0c;它能保持良好的可焊接性。但對于精細引腳間距(<0.64mm)的情況&#xff0c;可能導致焊料的橋接和厚度問題。 無鉛噴錫 一種無鉛表面處理工藝&#xff0c;符合“環…

1 kafka簡介

Publish-subscribe distributed messaging system. A distributed commit log. kafka集群中的服務器都叫broker。 客戶端有兩類&#xff1a;producer、consumer。 客戶端和broker之間使用TCP協議。 不同業務系統的消息通過topic進行區分。 消息的topic會分區&#xff0c;以…

各種機器學習的優缺點及應用場景

目錄 正則化算法&#xff08;Regularization Algorithms&#xff09; 集成算法&#xff08;Ensemble Algorithms&#xff09; 決策樹算法&#xff08;Decision Tree Algorithm&#xff09; 回歸&#xff08;Regression&#xff09; 人工神經網絡&#xff08;Artificial…

微信公眾號接入開發者模式,服務器配置Token驗證

概述 接入微信公眾平臺開發&#xff0c;開發者需要按照如下步驟完成&#xff1a; 填寫服務器配置驗證服務器地址的有效性依據接口文檔實現業務邏輯官方指南文檔服務器配置 服務器地址(URL)&#xff1a;填寫完URL后&#xff0c;微信服務器會發送GET請求&#xff0c;并攜帶以下參…

2 kafka安裝

單節點&#xff1a; 1、解壓kafka壓縮包到安裝目錄&#xff08;自己指定&#xff09;&#xff1b; 2、進入kafka目錄并執行命令 > bin/zookeeper-server-start.sh config/zookeeper.properties #如果報錯&#xff0c;修改kafka-run-class.sh&#xff0c;將 -XX:UseComp…

TensorFlow自帶例子

TensorFlow自帶例子已經包含了android和ios下的攝像頭圖像分類示例Inception&#xff0c;這里補充一個Windows下的&#xff0c;使用AForge庫(www.aforgenet.com)操作攝像頭。 代碼在這里下載&#xff0c;使用Visual Studio 2017編譯。 http://files.cnblogs.com/files/autosoft…

遇到Visual Studio 當前不會命中斷點.還沒有為該文檔加載任何符號的情況

一.問題及原因 有這樣一種調用邏輯:A.exe調用B.dll.現在想要在B的源代碼中打斷點,從A發起進行調試,卻給出了"當前不會命中斷點.還沒有為該文檔加載任何符號"的提示.感覺十分奇怪,各種重新生成,重啟VS都沒啥用,最后不得以網上搜了一番,找到了問題的根源. 原來我把舊的…

java01基礎簡介

1 java概述 開發服務器端應用程序最流行語言&#xff0c;產生網頁、運行后端邏輯。 當對java了解到一定程度&#xff0c;閱讀源碼才能解決問題。 Applet&#xff1a;在網頁中運行的java程序&#xff0c; Java的應用領域&#xff1a; 桌面應用系統開發 企業級應用開發 多媒…

TensorFlow自帶例子已經包含了android和ios下的攝像頭圖像分類示例Inception v1,這里補充一個Windows下的,使用AForge庫(www.aforgenet.com)操作

TensorFlow自帶例子已經包含了android和ios下的攝像頭圖像分類示例Inception v1&#xff0c;這里補充一個Windows下的&#xff0c;使用AForge庫(www.aforgenet.com)操作攝像頭。 代碼在這里下載&#xff0c;使用Visual Studio 2017編譯。 http://files.cnblogs.com/files/autos…

Docker+Mongodb

DockerMongodb 原文:DockerMongodbdocker search mongodb docker run -d -p 2701:27017 -v /usr/mongodb/data:/data/db -v /usr/mongodb/databack:/data/backup --name mongo-v1.0.0 mongo --auth docker exec -it mongo-v1.0.0 mongo admin docker exec -it mongo-v1.0.…

Java02繼承

5繼承 5.1 類、超類和子類 關鍵字extends表示繼承。 Java中的繼承都是公用繼承&#xff0c;沒有C中的私有繼承和保護繼承。 Super class Subclass 來自于集合的術語 Base class Derived class Parent class Child class 將通用的功能放在超類中&#xff0c;將具有特…

BP神經網絡與Python實現

人工神經網絡是一種經典的機器學習模型&#xff0c;隨著深度學習的發展神經網絡模型日益完善.聯想大家熟悉的回歸問題&#xff0c; 神經網絡模型實際上是根據訓練樣本創造出一個多維輸入多維輸出的函數&#xff0c; 并使用該函數進行預測&#xff0c; 網絡的訓練過程即為調節該…

《關于長沙.NET技術社區未來發展規劃》問卷調查結果公布

那些開發者們對于社區的美好期待 2月&#xff0c;長沙.net 技術社區自從把群拉起來開始&#xff0c;做了一次比較正式、題目為《關于長沙.NET技術社區未來發展規劃》的問卷調查&#xff0c;在問卷調查中&#xff0c;溪源寫道&#xff1a; 隨著互聯網時代的到來&#xff0c;互聯…

Java03接口與內部類

6 接口與內部類 接口 interface 對象克隆 內部類 inner class 代理 proxy 6.1 接口 public interface Comparable<T> {int compareTo(T other); }Arrays.sort(Object[] a) 利用的是mergesort 接口也可以被擴展 public interface Moveable {void move(double x, doub…

第一節:ASP.NET開發環境配置

第一節&#xff1a;ASP.NET開發環境配置 什么是ASP.NET&#xff0c;學這個可以做什么&#xff0c;學習這些有什么內容&#xff1f; ASP.NET是微軟公司推出的WEB開發技術。 2002年&#xff0c;推出第一個版本&#xff0c;先后推出ASP.NET2.0&#xff0c;和ASP.NET3.5&#xff0c…

深度學習筆記之win7下TensorFlow的安裝

最近要學習神經網絡相關的內容&#xff0c;所以需要安裝TensorFlow。不得不說&#xff0c;安裝TensorFlow的感受就像是大一剛入學學習C語言時&#xff0c;安裝vs時一樣&#xff0c;問題一大堆&#xff0c;工具都裝不好&#xff0c;還學啥呀。好在&#xff0c;就在昨晚&#xff…