❶ C和C++是否都是用同一個編譯器。例如Visual C++6.0可用作兩種語言的編譯器,可以嗎
VC++是集成後的開發環境,它已經集成了c和c++兩個的編譯器,用戶在使用的時候自然感覺像是一個;
c是gcc編譯器,c++是g++編譯器;對於不同的語言,編譯器是肯定不能通用的,編譯器是完全按照語言的特性、語法進行校驗、監測等操作的。。。。
比如c++里的類,你用c的編譯器肯定識別不了。。當然c++號稱是深度匹配c語言的,但是像c語言中的printf等輸入輸出函數,c++也是不能識別的。。
❷ 人工智慧 python深度學習庫有哪些
由於Python的易用性和可擴展性,眾多深度學習框架提供了Python介面,其中較為流行的深度學習庫如下:
第一:Caffe
Caffe是一個以表達式、速度和模塊化為核心的深度學習框架,具備清晰、可讀性高和快速的特性,在視頻、圖像處理方面應用較多。
Caffe中的網路結構與優化都以配置文件形式定義,容易上手,無須通過代碼構建網路;網路訓練速度快,能夠訓練大型數據集與State-of-the-art的模型,模塊化的組件可以方便地拓展到新的模型與學習任務上。
第二:Theano
Theano誕生於2008年,是一個高性能的符號計算及深度學習庫,被認為是深度學習庫的始祖之一,也被認為是深度學習研究和應用的重要標准之一。其核心是一個數學表達式的編譯器,專門為處理大規模神經網路訓練的計算而設計。
Theano很好地整合了Numpy,可以直接使用Numpy的Ndarray,使得API介面學習成本大為降低;其計算穩定性好,可以精準地計算輸出值很小的函數;可動態地生成C或者CUDA代碼,用來編譯成高效的機器代碼。
第三:TensorFlow
TensorFlow是相對高階的機器學習庫,其核心代碼使用C++編寫,並支持自動求導,使得用戶可以方便地設計神經網路結構,不需要親自編寫C++或CUDA代碼,也無須通過反向傳播求解梯度。由於底層使用C++語言編寫,運行效率得到了保證,並簡化線上部署的復雜度。
TensorFlow不只局限於神經網路,其數據流式圖還支持非常自由的演算法表達,也可以輕松實現深度學習以外的機器學習演算法。
第四:Keras
Keras是一個高度模塊化的神經網路庫,使用Python實現,並可以同時運行在TensorFlow和Theano上。
Keras專精於深度學習,其提供了到目前為止最方便的API,用戶僅需將高級的模塊拼在一起便可設計神經網路,大大降低了編程開銷與理解開銷。
❸ 最權威用的最廣泛的java編譯器是什麼
JAVA編譯器是JBudler Eclipse ??
開玩笑!
首先,JBudler Eclipse 屬於IDE,是集成開發環境(IDE)!IDE是集成了編譯,檢錯,自動查找錯誤,深度反檢查功能的輔助開發工具。就是說,只要屬於java的IDE,都會把sun的編譯器集成到它裡面來。而JBudler與Eclipse 等這些開發工具更多的是體現在對不同層面java開發提供了不同的強大功能。比如:MyEclipse強勢在web開發的便捷。JBudler對GUI更強大。
編譯器是java語言轉換為。class的工具,只有sun才是權威的,它把它集成在jdk裡面,如果要單獨使用它,可以從jdk文件重拿出來,或者從sun的網站上下載。
樓主的問題本身問的就有問題:sun的編譯器只有一個,而且是開源的。
你無論用什麼IDE,最終都是用的sun的編譯器編譯源碼的。就是手動編譯用的口令javac。
❹ 深度linux的arm-linux-gnueabihf-gcc編譯參數如何配
一般來說,交叉編譯工具是用於在一種架構的主機(例如x86)上,編譯另一種主機(例如arm)運行的程序,在這個編譯期間,需要用到的頭文件/庫,往往需要從一個叫目標文件系統(sysroot)的路徑開始查找。
sysroot里包含usr,lib,usr/lib usr/include等文件夾結構和必要的頭文件和庫,你理解為目標機器上的整個文件系統,搬到你這台電腦上,然後作為一個文件夾存在。
交叉編譯原則上不能用主機(host)的頭文件,
這首先是因為編譯器在查找頭文件的相對路徑時,交叉編譯器會配置為查找目標平台架構的位置,和主機的gcc不一樣,這也是為什麼它去arm-linux-gnueabihf這個目錄去尋找的原因。
其次主機和目標機的系統版本有差異,再加上處理器架構的差異,往往有很多兼容性問題,甚至有難以解決的編譯錯誤。
如果一定要用本機的頭文件系統來湊合,那麼需要把所有的-I都列出來,即不僅需要-I/usr/include,還需要-I/usr/include/xxx,甚至要創建一些文件夾的符號鏈接指向你主機的這些頭文件文件夾。即使這些,往往也未必成功,有些頭文件不同的系統架構,會不完全一樣甚至缺失。
交叉編譯一般無法使用主機的庫(so)文件
主機和目標機往往架構不同,庫完全不能使用
可能遇到主機和目標機架構相同的情況,比如你在intel64上編譯一套運行在intel64位手機的程序,但是庫兼容性的問題仍然存在。
最後結論:你這個問題,如果你是為了另一套機器(比如arm開發板編譯),那麼需要搞一套目標機的文件系統才能順利編譯。
對了,目標文件系統需要編譯了python和dev頭文件/庫,好多嵌入式設備裁剪的很厲害,都不用python。
❺ 新版編譯器OnCalculate我這樣編寫,理解,對嗎
OnCalculate
OnCalculate()函數只在自定義指標中調用,通過Calculate計算指標值是必須的。通常在接到指標計算的交易品種新訂單號時發生。這個指標不需要附在交易品種的價格圖表上。
OnCalculate() 函數有個返回值int。有兩個可能定義。一個指標中不可以有兩個函數版本。
一種是用於單數據緩沖中計算的指標。例如,自定義移動平均數指標。
int OnCalculate (const int rates_total, // 價格[] 數組的大小
const int prev_calculated, // 前一次調用處理的柱
const int begin, // 有效數據起始位置
const double& price[] // 計算的數組
);
價格[]數組中,可以傳送時間序列和計算的一些指標緩沖。ArrayGetAsSeries()函數確定價格[] 數組索引方向。為了不依賴默認值,需要無條件的調用ArraySetAsSeries()函數用於工作的數組。
價格[]數組中,在「參數」標簽啟動指標時,選擇適當的時間序列或者指標。所以,需要在「應用於」欄位的下拉列表中指定必要的項目。
Selecting timeseries to calculate an indicator
從其他mql5程序中接收自定義指標值,要使用iCustom()函數,返回嵌入指標處理程序。可以指定適當的價格[]數組或者另一個指標處理程序。這個參數在自定義指標輸入變數列表中最後傳送。
示例:
void OnStart()
{
//---
string terminal_path=TerminalInfoString(STATUS_TERMINAL_PATH);
int handle_customMA=iCustom(Symbol(),PERIOD_CURRENT, "Custom Moving Average",13,0, MODE_EMA,PRICE_TYPICAL);
if(handle_customMA>0)
Print("handle_customMA = ",handle_customMA);
else
Print("Cannot open or not EX5 file '"+terminal_path+"\\MQL5\\Indicators\\"+"Custom Moving Average.ex5'");
}
這個示例中,通過的最後參數是PRICE_TYPICAL值(從ENUM_APPLIED_PRICE計數開始),指出自定義指標可以用獲得的典型價格建立(高價+低價+平倉)/3。如果沒有確定這個參數,指標基於PRICE_CLOSE 值建立,例如每欄平倉價。
另一個示例顯示依照指定價格[]數組的最後一個參數傳送指標處理程序,由函數iCustom()所描述。
另一種形式意在所有其他指標,計算更多的時間序列。
int OnCalculate (const int rates_total, // 輸入時間序列大小
const int prev_calculated, // 前一次調用處理的柱
const datetime& time[], // 時間
const double& open[], // 開盤價
const double& high[], // 最高價
const double& low[], // 最低價
const double& close[], // 收盤價
const long& tick_volume[], // 訂單交易量
const long& volume[], // 真實交易量
const int& spread[] // 點差
);
開盤價[],最高價[],最低價[]和收盤價[]參數由當前時間表的開盤價,最高和最低價和收盤價數組組成。時間參數[]包括開盤時間值數組,擴展參數[]有一個數組包括擴展歷史記錄(如果為交易安全提供擴展)。volume[] 和tick_volume[] 參數分別包括交易和交易量歷史記錄。
確定時間[]索引方向, 開盤價[], 最高價[], 最低價[], 收盤價[], 交易量[], 交易量[] 和 擴展[],需要調用ArrayGetAsSeries()函數。若不想依賴默認值,需要無條件的調用函數ArraySetAsSeries()用於工作的數組。
首先rates_total 參數包括欄的數量,可用來計算指標,與圖表中現存的欄數一致。
需要注意OnCalculate() 返回值和第二輸入參數prev_calculated的連接。調用函數時,prev_calculated 參數包括上次調用時OnCalculate() 返回值。這就允許用經濟演算法計算自定義指標,避免重復計算。
返回rates_total參數值足夠了,包括當前調用函數的欄數。如果自從上次調用函數OnCalculate(),價格數據更改了(下載深度歷史記錄或者填滿歷史空白期),輸入參數prev_calculated 值由終端機設置為零。
註:如果OnCalculate返回零,那麼指標值不能顯示在客戶端的數據窗口。
為更好的理解,啟動附加以下代碼的指標很有用。
指標示例:
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//---- 圖的線
#property indicator_label1 "Line"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrDarkBlue
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- 指標緩沖區
double LineBuffer[];
//+------------------------------------------------------------------+
//| 自定義指標初始化函數 |
//+------------------------------------------------------------------+
int OnInit()
{
//--- 指標緩沖區繪圖
SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 自定義指標重復函數 |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& time[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
//--- 獲得當前交易品種和圖表周期的有效柱數
int bars=Bars(Symbol(),0);
Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated);
Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]);
//--- 為下次調用返回prev_calculated值
return(rates_total);
}
//+------------------------------------------------------------------+
❻ 為什麼一個堆棧的深度最大為64KB
好像與編譯器有關,記得是編譯器自己定義了棧的大小的。期待達人回答。
❼ 方舟社區是騙子嗎
在華為聲稱「方舟編譯器,可通過架構級優化讓系統操作流暢度提升24%,安卓應用流暢度可提升60%」以來,編譯器這個概念就被帶火了,方舟編譯器也被媒體熱炒。
日前,華為方舟編譯器在鯤鵬社區上架,根據網站上公布的資料,方舟編譯器的介紹為:
方舟編譯器是基於GCC開發的交叉編譯器套件,它包括了C、C++、Fortran的前端,也包括了這些語言的庫(如libstdc++、libgcc等)。HCC運行在X86 linux架構伺服器上,生成的二進制運行在Aarch64 架構伺服器上。
一位朋友告知:
有人比較了一下,華為的方舟和GCC沒有區別,只有非常少的部分不一樣,方舟編譯器壓縮包還是叫gcc-ark。
之後,基於不為人知的原因,鯤鵬社區的方舟編譯器火速下架,原網址鏈接也被和諧了。
關於華為鯤鵬社區上公布的方舟編譯器資料,鐵流咨詢了業內人士,回復是:
交叉編譯器,就是在x86上編譯出arm的二進制代碼。gcc本身就做得很好了......動態二進制翻譯器,可以把x86應用程序動態翻譯為ARM指令集,執行在ARM伺服器上。估計效率可以達到70%左右......方舟中最核心的應該是支持動態二進制翻譯。
可以說,華為鯤鵬社區上公布的方舟編譯器是服務於華為ARM伺服器的,由於ARM在伺服器上的生態相對於X86差距過大,很多軟體不支持ARM。而ARM伺服器要推廣,需要支持大量沒有源代碼的x86程序。這項應用能跑二進制代碼,而當前二進制翻譯效率都不是很高。所以華為打算用動態二進制翻譯來彌補ARM在伺服器生態上的不足。
用二進制翻譯來彌補生態問題,這種思路其實早已不是什麼新聞,當年的全美達就用二進制翻譯兼容X86生態,最後被英特爾用專利訴訟拖死。ARM在智能手機領域火了之後,英特爾也用二進制翻譯的做法來兼容ARM的生態,最終也是折戟沉沙。
之所以出現這種情況,主要是因為二進制翻譯會造成性能損耗,以及二進制翻譯未必能夠完美解決兼容問題。就性能損耗來說,在翻譯之後使英特爾的CPU性能只有原來的70%,憑空損失掉30%的性能後,使英特爾的CPU在移動端上性價比和性能功耗比這兩項屬性上都不如ARM,同時,移動端恰恰是對功耗指標非常敏感的,這使英特爾在市場競爭中非常不利。
還有就是兼容問題,以實際體驗來說,鐵流好友使用過聯想搭載英特爾CPU的手機,日常使用問題不大,就是個別應用會時不時閃退。猜測可能是生態兼容方面依然存在一定問題。
而英特爾曾經面對的問題,將來華為可能都要面對。從實踐上看,自己建生態才是正途,比如X86在PC和伺服器的統治地位,以及ARM在智能手機上的統治地位,兼容別人的生態是投機取巧,走捷徑的影響是根基不牢,結局是欲速則不達。如果沒有政府輸血和國企訂單,在純粹商業模式下,十有八九要悲劇。
由於鯤鵬社區上公布的方舟編譯器是用在ARM伺服器上的,因而鐵流很疑惑為何會宣傳「方舟編譯器,可通過架構級優化讓系統操作流暢度提升24%,安卓應用流暢度可提升60%」。
業內人士告知:
那他們應該把所有的幾個系統統稱為方舟編譯器了......手機上重點是java虛擬機,執行的是安卓的應用,主要是java代碼,也有部分ar二進制代碼或者庫。
對此,華為手機產品線副總裁李小龍發文回應稱,華為雲鯤鵬社區「這個網站不是華為消費者BG維護的網站,此編譯器好像是伺服器部門用的,和我們之前和P30 一起發布的方舟編譯器沒有任何關系。」
綜合一下看,華為雲鯤鵬社區的方舟編譯器和華為消費終端的方舟編譯器應該不是一個東西。不過,華為消費終端的方舟編譯器也是過度炒作被神話的。
華為方舟編譯器是如何做到第三方應用性能提升的?目前還沒有官方的回應,而流傳的消息則有兩種。一種是說華為針對安卓原來的編譯器進行了深度的魔改實現了性能的巨大提升,一種是說華為通過將Java代碼繞過虛擬機直接翻譯成機器碼來實現的。當然還有一種混合的說法,即華為通過將Java代碼繞過虛擬機直接翻譯成機器碼來對原來的編譯器進行了深度的魔改。針對直接將Java代碼翻譯成底層機器碼的方法,一般認為這當然有利於提升性能,但不利於應用程序的可移植性和可維護性以及操作系統的安全性。本次華為雲鯤鵬社區的方舟編譯器的下架事件,只不過是給被神話的方舟編譯器降溫擠水分而已。
另外,現在國內有一股拿開源改改就標榜自主的風氣,比如此前的紅芯瀏覽器。這種現象和以前的「漢芯」事件一樣造成了很惡劣的影響。必須說明的是,「漢」、「紅」都是有一定特殊含義的,這種做法造成的傷害不僅僅局限於信息產業。
鐵流認為,基於開源軟體做修改,就說明是某開源軟體的修改版即可,比如鯤鵬社區的方舟伺服器,就對就外宣傳是GCC 7.3的修改版即可,不要標榜方舟編譯器以免誤導吃瓜群眾。
類似的,華為GaussDB 資料庫就標明是PostgreSQL9.2修改版,不要玩自主研發GaussDB 資料庫的文字游戲。媒體在報道中出現了「外界也認為 GaussDB 內核具有超越現有開源資料庫如 MySQL 與 PostgreSQL 的極致性能」,宣傳上的文字游戲已經誤導了不少人。
還有國內這些Linux操作系統,早期的Happy Linux、紅旗Linux的叫法就挺好,把技術來龍去脈說的很清楚,現在各種麒麟OS,不了解內情的老百姓還真會被誤導。
之所以出現這種現象,根源是在技術和國外有較大差距的情況下,又喜歡過度標榜自己,逐漸演變成了浮誇風。
華為鯤鵬社區方舟編譯器上架後火速下架,根源是國內大環境充斥著浮誇風後翻車的結果,如果還是喜歡過分標榜自己,類似的事件不會是第一次,也不會是最後一次。
❽ 深度linux系統怎麼安裝軟體
深度Linux系統自帶軟體中心,通過深度Linux軟體中心可以像在Windows系統中一樣,簡單安裝軟體,具體如下:
1、打開深度Linux軟體中心,可以看到軟體左側對軟體類型進行了詳細的分類,根據需求找到要安裝的軟體。
❾ 深度學習機器的GPU加速程度相比超算中心CPU伺服器的計算核怎麼樣
推薦品牌: LINKZOL(聯眾集群);
參考其官網;
操作系統安裝Ubuntu 14.04 LTS需要軟體:
編譯器:GNU編譯器包括C/C++/Fortran編譯器;
Intel編譯器包括C/C++/Fortran編譯器、MKL、等;
並行環境:OpenMPI、MPICH等MPI並行環境;
GPU發環境:新CUDA驅、編譯器、調試器、SDK及例文件等;
cuDNN加速CUDA FFT、CUDA BLAS等;
深度習框架:Caffe, Torch, Theano, BIDMach、TensorFlow;其Caffe需要編譯提供python介面Matla(支持mex編譯)介面;
DNN平台:基於B/S架構便於用戶實且視化進行DNN訓練、測試
推薦配置:
計算平台採用:LZ743GR-2G/Q
系統:Ubuntu 14.04.3 x64
CPU:Intel Xeon十核E5-2630v4(2.2GHz,8.0 GT/s)
內存:原廠64GB內存 (16GB×4) DDR4 2133MHZ ECC-REG.(帶內存校錯技術支持2T)
系統硬碟:INTEL 2.5寸240G 企業級SSD固態硬碟(支持8塊硬碟類型:SATA,SSD)
系統硬碟:希捷3.5寸4T 7200RPM 企業級硬碟(支持8塊硬碟類型:SATA,SSD;)
GPU卡:2塊NVIDIA TATAN-X GPU卡 (CUDA核數3584核12G DDR5 顯存2GPU卡)
電源:1200W High efficiency (96%)金牌電源
推薦配置二:
計算平台採用:LZ-748GT
系統:Ubuntu 14.04.3 x64
CPU:Intel Xeon十二核E5-2650v4(2.2GHz,9.6 GT/s)
內存:原廠256GB內存 (16GB×16) DDR4 2133MHZ ECC-REG.(帶內存校錯技術支持2T)
系統硬碟:2塊INTEL 2.5寸480G 企業級SSD固態硬碟(支持8塊硬碟類型:SATA,SSD)
系統硬碟:3塊希捷3.5寸4T 7200RPM 企業級硬碟(支持8塊硬碟類型:SATA,SSD;)
GPU卡:4塊TESLA TITANX GPU計算卡或者4塊tesla P4O GPU卡 (CUDA核數3584核12G DDR5 顯存4GPU卡)
電源:2000W High efficiency (94%)冗餘鈦金電源
推薦配置三:
計算平台採用:LZ428GR-8G/Q
系統:Ubuntu 14.04.3 x64
CPU:Intel Xeon十四核E5-2690v4(2.6GHz,9.6GT/s)
內存:原廠256GB內存 (16GB×16) DDR4 2133MHZ ECC-REG.(帶內存校錯技術支持2T)
系統硬碟:2塊INTEL 2.5寸480G 企業級SSD固態硬碟(支持8塊硬碟類型:SATA,SSD)
系統硬碟:3塊希捷2.5寸2T 7200RPM 企業級硬碟(支持8塊硬碟類型:SATA,SSD;)
GPU卡:8塊TESLA P40 GPU計算卡或者8塊NVIDIA TATAN-X GPU卡 (CUDA核數3584核12G DDR5 顯存8GPU卡)
電源:1600W(2+2) High efficiency (96%)鈦金電源;
咨詢:1381O114665
❿ 深度linux怎麼安裝軟體
一、解析Linux應用軟體安裝包
通常Linux應用軟體的安裝包有三種:
1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系統的打包工具tar打包的。
2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一種包封裝格式。
3) dpkg包,如software-1.2.3-1.deb。它是Den Linux提供的一種包封裝格式。
而且,大多數Linux應用軟體包的命名也有一定的規律,它遵循:
名稱-版本-修正版-類型
例如:
1)software-1.2.3-1.tar.gz 意味著:
軟體名稱:software
版本號:1.2.3
修正版本:1
類型:tar.gz,說明是一個tar包。
2)sfotware-1.2.3-1.i386.rpm
軟體名稱:software
版本號:1.2.3
修正版本:1
可用平台:i386,適用於Intel 80x86平台。
類型:rpm,說明是一個rpm包。
註:由於rpm格式的通常是已編譯的程序,所以需指明平台。在後面會詳細說明。
而software-1.2.3-1.deb就不用再說了吧!大家自己練習一下。
二、了解包里的內容
一個Linux應用程序的軟體包中可以包含兩種不同的內容:
1)一種就是可執行文件,也就是解開包後就可以直接運行的。在Windows中所 有的軟體包都是這種類型。安裝完這個程序後,你就可以使用,但你看不到源程序。而且下載時要注意這個軟體是否是你所使用的平台,否則將無法正常安裝。
2)另一種則是源程序,也就解開包後,你還需要使用編譯器將其編譯成為可執行文件。這在Windows系統中是幾乎沒有的,因為Windows的思想是不開放源程序的。
通常,用tar打包的,都是源程序;而用rpm、dpkg打包的則常是可執行程序。一般來說,自己動手編譯源程序能夠更具靈活性,但也容易遇到各種問題和困難。而相對來說,下載那些可執行程序包,反而是更容易完成軟體的安裝,當然那樣靈活性就差多了。所以一般一個軟體總會提供多種打包格式的安裝程序的。你可以根據自己的情況來選擇。
三、搞定使用tar打包的應用軟體
1. 安裝:
整個安裝過程可以分為以下幾步:
1)取得應用軟體:通過下載、購買光碟的方法獲得;
2)解壓縮文件:一般tar包,都會再做一次壓縮,如gzip、bz2等,所以你需要先解壓。如果是最常見的gz格式,則可以執行:「tar –xvzf 軟體包名」,就可以一步完成解壓與解包工作。如果不是,則先用解壓軟體,再執行「tar –xvf 解壓後的tar包」進行解包;
3)閱讀附帶的INSTALL文件、README文件;
4)執行「./configure」命令為編譯做好准備;
5)執行「make」命令進行軟體編譯;
6)執行「make install」完成安裝;
7)執行「make clean」刪除安裝時產生的臨時文件。
好了,到此大功告成。我們就可以運行應用程序了。但這時,有的讀者就會問,我怎麼執行呢?這也是一個Linux特色的問題。其實,一般來說,Linux的應用軟體的可執行文件會存放在/usr/local/bin目錄下!不過這並不是「放四海皆準」的真理,最可靠的還是看這個軟體的INSTALL和README文件,一般都會有說明。
2. 卸載:
通常軟體的開發者很少考慮到如何卸載自己的軟體,而tar又僅是完成打包的工作,所以並沒有提供良好的卸載方法。
那麼是不是說就不能夠卸載呢!其實也不是,有兩個軟體能夠解決這個問題,那就是Kinstall和Kife,它們是tar包安裝、卸載的黃金搭檔。它們的使用方法,筆者會另行文介紹。在此就不加贅述了。
四、搞定使用rpm打包的應用軟體
rpm可謂是Redhat公司的一大貢獻,它使Linux的軟體安裝工作變得更加簡單容易。
1. 安裝:
我只需簡單的一句話,就可以說完。執行:
rpm –ivh rpm軟體包名
更高級的,請見下表:
rpm參數 參 數 說 明
-i 安裝軟體
-t 測試安裝,不是真的安裝
-p 顯示安裝進度
-f 忽略任何錯誤
-U 升級安裝
-v 檢測套件是否正確安裝
這些參數可以同時採用。更多的內容可以參考RPM的命令幫助。
2. 卸載:
我同樣只需簡單的一句話,就可以說完。執行:
rpm –e 軟體名
不過要注意的是,後面使用的是軟體名,而不是軟體包名。例如,要安裝software-1.2.3-1.i386.rpm這個包時,應執行:
rpm –ivh software-1.2.3-1.i386.rpm
而當卸載時,則應執行:
rpm –e software。
另外,在Linux中還提供了象GnoRPM、kpackage等圖形化的RPM工具,使得整個過程會更加簡單。這些軟體的具體應用,筆者會另行文介紹。
五、搞定使用deb打包的應用程序
這是Debian Linux提供的一個包管理器,它與RPM十分類似。但由於RPM出現得更早,所以在各種版本的Linux都常見到。而debian的包管理器dpkg則只出現在Debina Linux中,其它Linux版本一般都沒有。我們在此就簡單地說明一下:
1. 安裝
dpkg –i deb軟體包名
如:dpkg –i software-1.2.3-1.deb
2. 卸載
dpkg –e 軟體名
如:dpkg –e software