⑴ 我下載一個福窩網家裝軟體,下載解壓後打開軟體時,然後顯示腳本發生錯誤,是怎麼回事,
解壓包是壞掉的,建議重新再找個地址下載,如果還不可用,就是這個軟體沒有壓縮好,處於不可用的狀態,再換個類似的軟體就可以
⑵ linux 軟體包解壓後沒有.rpm、.bin,如何安裝軟體(在linux下解壓,圖片為w7下)
這個是源碼安裝的文件,不是rpm那種已經打包好的文件
開一個命令行窗口,cd到這個目錄下面
可以嘗試這樣,看到這個install-sh文件,./install-sh試試
如果不行的話,作以下三步
./configure
./make
./make install
⑶ gradle解壓源碼,重新打包
這幾天工作上遇到一個問題,三方的jar包在liunx下解壓不了,用gradle又能正常編譯,我們的apk是在liunx下用mk進行編譯的,編譯的過程中需要對jar包進行解壓,這樣就導致編譯失敗。
錯誤信息如下:以後再遇到這個錯誤,可能就jar包的問題。
FAILED: /bin/bash -c "(mkdir -p out/target/common/obj/java_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res ) && (unzip -qo /home/x/xx/xxx/APK92_GNBJ_EDO/code/libs/xxx-sdk-java20171027120314.jar -d out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res ) && (find out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res -iname \"*.class\" -delete ) && (JACK_VERSION=3.36.CANDIDATE out/host/linux-x86/bin/jack @build/core/jack-default.args --verbose error -D jack.import.resource.policy=keep-first -D jack.import.type.policy=keep-first -D jack.android.min-api-level=1 --import /home/x/xx/xxx/APK92_GNBJ_EDO/code/libs/xxx-sdk-java20171027120314.jar --import-resource out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res --output-jack out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack ) && (rm -rf out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res )" warning: stripped absolute path spec from / mapname: conversion of failed ninja: build stopped: subcommand failed. build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
解決方法:對jar包源碼重新打包
解壓jar包源碼,注意,是帶源碼的jar包,如果是編譯過的jar,是不能重新打包的。
步驟:
1.新建build.gradle文件,因為gradle會默認找到當前目錄下的build.gradle下的文件去執行;
2.在終端執行gradle unzip,執行這個task
以下命令將這個目錄 app/libs/xxx-sdk-java20171027120314.jar 下的jar包解壓到了 unpacked/dist 目錄。
解壓之後的源碼就是文件夾,重新打包的時候需要注意,包名和源碼的路徑名一致。現在利用Android studio進行打包。
步驟:
1.新建lib mole,選擇Android Libeary/Java Library;
2.注意修改包名與jar包路徑相同,eg:jar包解壓之後的路徑 dist/com/example/api ,那麼為了確保新生成的jar包里的Java文件import路徑相同,mole的包名也要命名為 com.example.api ;
3.將解壓之後的源碼java文件復制到lib model中;
4.在 app mole 下添加 lib mole 依賴。這是一種取巧的方法,當你添加了lib mole依賴之後,項目會重新rebuild,這個過程會將mole依賴編譯成jar包,存放在lib mole的 build/libs 目錄下,由於Android Studio版本不同,這個目錄可能有有所不同,但是都在build目錄下,找新的jar包就可以了。
這一部可能會報jar包找不到,或者lib mole中的import失敗,可能是因為lib mole依賴的jar包沒導入,導入之後在lib mole的build.gradle里配置一下就可以了。
這個時候,其實直接用這個jar包也可以了,如果向修改jar包名字,可以執行下面的gradle命令:
想了解更多可以參考 這里
然後在項目里測試一下jar包就可以了。
重新打包之後就可以在liunx下解壓了,正常編譯通過。
最後記錄一下mk編譯的一個錯誤 # [ERROR: Dex writing phase: classes.dex has too many IDs. Try using multi-dex](https://stackoverflow.com/questions/45472852/error-dex-writing-phase-classes-dex-has-too-many-ids-try-using-multi-dex) 在stackoverflow上找到了解決方法。
在mk文件中添加
參考:
https://stackoverflow.com/questions/39457116/gradle-build-hanging-when-jackoptions-is-enabled-for-java-1-8
https://stackoverflow.com/questions/45472852/error-dex-writing-phase-classes-dex-has-too-many-ids-try-using-multi-dex
⑷ python最佳入門教程(1): python的安裝
本教程基於python3.x, 是針對初學者的一系列python入門教程,在知乎上常有人問我計算機該怎麼學,如何自學編程,筆者也是通過自學編程而進入IT這一行業的,回顧入行的這幾年,從音視頻流媒體輾轉到人工智慧深度學習,機器視覺,我是下了不少苦心的,對於如何學習有自己的一套理論和實踐方法,很多人自言學編程不得其門,把學不會歸咎於天分,其實芸芸眾生,智力無別,你現在所看到的是技術大牛們一個個超凡絕頂(然知此絕頂非彼絕頂),看不到的是曾經的他們,也在每個晝夜裡用心苦學。再者學一門技術,需要勤學刻苦,是需要講究方法和基礎的,方法對了就事半功倍,所謂的天才也無不是建立在扎實的基礎之上。
在windows中安裝python
首先打開python官網https://www.python.org/,點擊頁面downloads導航按鈕,下載windows最新的基於web安裝的安裝器,右鍵以管理員身份運行 安裝包,會出現如下界面:
將Add Python 3.7 to PATH 進行勾選,勾選此項的目的在於將python解釋器加入系統環境變數,則在後續的python開發中可直接在windows 命令行中執行python腳本。所謂的環境變數是系統運行環境的一系列參數,比如這里的系統環境變數是PATH,PATH保存了與路徑相關的參數,系統在路徑查找中,會對PATH保存的路徑進行搜索。
點擊install Now按鈕執行python的安裝
打開windows命令行界面(按windows鍵輸入cmd命令),輸入python -V,出現python版本的相關輸出,即表示安裝成功。
在Linux系統中安裝python
筆者的系統是CentOS, Linux系統默認有安裝python,但是其版本是2.x,在這里筆者以源碼安裝的形式來安裝python 3.X。首先進入python源碼包頁面 點擊下載最新的gzip格式的python源碼包,上傳到伺服器然後進行解壓,解壓後的目錄結構如下圖所示:
Linux中的configure與make
configure是Linux中的腳本配置工具,用來對源碼的當前安裝環境進行檢測,若檢測無誤,會在當前目錄生成一個供源碼編譯的Makefile腳本文件。
make是Linux系統下的編譯安裝工具,用來解釋執行makefile文件中的腳本命令,編譯命令。
現在我們開始編譯安裝python
(1) 在當前目錄執行./configure(2) 輸入 make && sudo make install
若無指定安裝目錄,python會被默認安裝在/usr/local目錄中, 讀者可以執行./configure --prefix=「你自定義的安裝目錄」來配置安裝路徑。安裝完畢以後進入/usr/local/bin目錄,輸入 「python3.x -V」 (這里的python3.x為你所安裝的python版本),若出現與python版本的相關輸出,即表示安裝成功。
為安裝的python設置軟鏈接
安裝的python可以以絕對路徑的方式來執行,每次敲一大段路徑來執行python未免麻煩,通常我們會給安裝的python設置軟鏈接,這里的軟鏈接類似於windows的快捷方式。
輸入以下命令來給python設置軟鏈接,筆者安裝的版本是python3.7, pip是python的包管理工具,會在教程的後續章節中進行詳細講解。
ln -s /usr/bin/python3 /usr/local/bin/python3.7 # 表示設置python3 為 /usr/local/bin/python3.7的快捷方式ln -s /usr/bin/pip3 /usr/local/bin/pip3.7 # 表示設置pip3 為 /usr/local/bin/pip3.7的快捷方式
⑸ 源碼包安裝ntp後找不到/etc/ntp.conf配置文件
NTP伺服器在我這里,我想做客戶端連接,但是當我通過終端想打開etc/ntp.conf時,提示我沒有許可權!
找到文件能打開,但是是只讀的,不能修改,懇請高人指點如何修改這個文件。
三、什麼是NTP
為了實現時間同步,我們就需要用戶NTP(Network Time Protocol)這個協議。如圖1所示。簡單地說,NTP是用來使系統和一個精確的時間源保持時間同步的協議。筆者建議管理員最好在自己管理的網路中建立至少一台時間伺服器來同步本地時間。
如 果在一個公司的區域網中,如果讓每個員工通過手動的方式每隔一段時間去校準時間,不但不利於管理,而且校準目標時間源也不一定準確。公司區域網絡中不同計 算機的時間偏差尤其是客戶機/伺服器之間的時間偏差,就會對一些要求時間同步的服務產生影響。比如,為了管理方便,伺服器設置了一到下班時間便 賬號過期,用戶無法訪問Internet網路。而如果你的電腦時間與伺服器的時間不同步,當你為你下班時間未到,正准備發送郵件時,或許在伺服器的時間 上,你的賬號便過期了,從而導到無法發送郵件。解決這種問題的方法很簡單,就是建立一個能提供精確時間的伺服器,區域網內的所有電腦統一通過這台時間服務 器進行時間同步、校準。
四、NTP伺服器安裝
現在,我們就來介紹一下,如何在Linux系統下,建立一個NTP伺服器吧。在本文中,我們採用的是Fedora 2操作系統作為例子 (其它版本Linux也可以,系統的配置類似)。
使用 RPM 安裝
首先輸入如下指令
rpm -q ntp
查詢本機是否安裝了NTP軟體包。如果沒有安裝的話,找到您的 Linux 的安裝光碟,mount 上後,查找以NTP開頭的軟體包名,然後安裝上去,就可以了!
rpm –ivh ntp-4.1.2-5.i386.rpm
五、NTP服務的設置
1.NTP軟體包的結構
NTP服務的配置文件:
/etc/ntp.conf :這個是 NTP 服務的主要配置文件,不同的Linux版本文件所在的目錄可能會不同!
與NTP服務有關的Linux 系統文件及目錄:
/usr/share/zoneinfo:這是個目錄,在這個目錄下是規定了各主要時區的時間設定文件,例如中國大陸地區的時區設置文件是 /usr/share/zoneinfo/Asia/Shanghai 。
/etc /sysconfig/clock:這個文件是Linux 的主要時區設定文件。每次啟動後,Linux 會自動讀取這個文件來設定系統預設要顯示的時間!比如這個文件內容為「ZONE=Asia/Shanghai」,這表示我們的時間設定使用 /usr/share/zoneinfo/Asia/Shanghai 這個文件!
/etc/localtime:這個文件是本地系 統的時間設定文件! 假設clock 文件裡面規定了使用的時間設定文件為 /usr/share/zoneinfo/Asia/Shanghai, Linux 系統就會將 Shanghai那個文件復制一份為 /etc/localtime ,所以系統的時間顯示就會以 Shanghai 那個時間設定文件為准。假設這台主機到了美國紐約,您只要將 /etc/sysconfig/clock 裡面的ZONE 設定成為ZONE="America/New_York" 並且將/usr/share/zoneinfo/America/New_York復製成為 /etc/localtime ,其它什麼設置都不需要改動,系統的顯示時間就是美國紐約當地的時間了!
與 NTP 及系統時間有關的執行文件:
/bin/date: Linux 系統上面的日期與時間修改及輸出命令。
/sbin /hwclock:因為主機的 BIOS 時間與 Linux 系統時間是分開的,所以使用 date 這個指令調整了時間之後,只是調整了linux的系統時間,還需要使用 hwclock 才能將修改過後的時間寫入 BIOS。這個命令必須root用戶才能執行 。
/usr/sbin/ntpd:NTP服務的守護進程文件,需要啟動它才能提供NTP服務。
/usr/sbin/ntpdate:NTP客戶端用來連接NTP伺服器命令文件。
2.NTP服務端的設置
編輯 /etc/ntp.conf 文件
關於許可權設定部分
許可權的設定主要以 restrict 這個參數來設定,主要的語法為:
restrict IP地址 mask 子網掩碼 參數
其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP
參數有以下幾個:
ignore:關閉所有的 NTP 聯機服務
nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網路校時。
notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網
noquery :不提供客戶端的時間查詢
注意:如果參數沒有設定,那就表示該 IP (或子網)沒有任何限制!
上級時間伺服器的設定
由於我們配置的NTP 伺服器需要網路上面時間比較准確的NTP伺服器來更新自己的時間,所以在我們的 NTP 伺服器上面要配置一部上級時間伺服器來進行校準!在 Internet 上面提供了許多時間伺服器,從下面地址找一個離你最近的
用server這個參數設定上級時間伺服器,語法為:
server IP地址或域名 [prefer]
IP地址或域名就是我們指定的上級時間伺服器,如果 Server 參數最後加上 prefer,表示我們的 NTP 伺服器主要以該部主機時間進行校準。
解決NTP伺服器校準時間時的傳送延遲
使用driftfile參數設置:
driftfile 文件名
在與上級時間伺服器聯系時所花費的時間,記錄在driftfile參數後面的文件內。
注意: driftfile 後面接的文件需要使用完整的路徑文件名,不能是鏈接文件,並且文件的許可權需要設定成 ntpd守護進程可以寫入。
ntp.conf文件舉例:
設置要求:不對 Internet 提供服務,僅對內部子網 192.168.0.0/24 提供服務,NTP 伺服器的上級時間主機為:clock.nc.fukuoka-u.ac.jp和ntp.nasa.gov,內部子網的客戶端不能修改NTP伺服器的時間參數。
在ntp.conf中增加以下內容:
restrict default ignore# 關閉所有的 NTP 要求封包
restrict 127.0.0.1 # 開啟內部遞歸網路介面 lo
restrict 192.168.0.0 mask 255.255.255.0 nomodify #在內部子網裡面的客戶端可以 進行網路校時,但不能修改NTP伺服器的時間參數。
server 133.100.9.2 prefer #用133.100.9.2做上級時間伺服器
server 198.123.30.132 #198.123.30.132作為上級時間伺服器參考
restrict 133.100.9.2 #開放server 訪問我們ntp服務的許可權
restrict 198.123.30.132
driftfile /var/lib/ntp/drift
保存退出後。啟動NTP服務
service ntpd start
如果想每次系統啟動,NTP服務自動啟動,請輸入下面命令: chkconfig -level 35 ntpd on 注意:
1.NTP服務的埠是123,使用的是udp協議,所以NTP伺服器的防火牆必須對外開放udp 123這個埠。
2.Ntpd啟動的時候通常需要一段時間進行時間同步,所以在ntpd剛剛啟動的時候還不能正常提供時鍾服務,最長大概有5分鍾吧,如果超過了這個時間請檢查一下您的配置文件。
六、NTP客戶端的使用
Linux系統
在Linux 上面進行網路校時非常簡單,執行 ntpdate 即可:
ntpdate 192.168.0.1 #192.168.0.1是NTP伺服器的IP
不要忘了使用hwclock命令,把時間寫入bios
hwclock -w
如果想定時進行時間校準,可以使用crond服務來定時執行。
編輯 /etc/crontab 文件
加入下面一行:
30 8 * * * root /usr/sbin/ntpdate 192.168.0.1; /sbin/hwclock -w #192.168.0.1是NTP伺服器的IP地址
然後重啟crond服務
service crond restart
這樣,每天 8:30 Linux 系統就會自動的進行網路時間校準。
Windows 系統
在 Windows XP上面使用NTP進行時間校準也很簡單:
雙擊桌面任務欄上的時間,彈出「日期和時間」屬性窗口,如圖所示:
選擇Internet時間,在伺服器中填入你的NTP伺服器的IP地址或者域名,然後點擊立即更新,您的系統時間就會立即更新。如果想定時更新,把左上角的自動與Internet時間伺服器同步選中,然後點擊右下角的應用即可。
yy-2-3.tif
如 果不是Windows XP系統,但是NTP伺服器同時也是samba伺服器的話,則對Windows來說,不需要安裝任何時間同步軟體,因為Windows客戶端可以用net time\\時間伺服器IP或伺服器netbios名/set/yes來同步。可以把該命令放在開始菜單的啟動項中,啟動windows時自動同步。
由於net time命令是利用Netbios over TCP/IP協議來同步時間,所以NTP伺服器不同時是samba 伺服器的話,就需要Windows客戶端安裝時間同步軟體。這方面的軟體很多,使用也很簡單,讀者可以上網查找一下。
⑹ Ubuntu Linux下如何用源碼文件安裝軟體
下面就介紹這種手工安裝方式的詳細步驟。 一、 安裝編譯程序因為要編譯源代碼,所以第一步就是安裝編譯和構建之類的程序。如果你已經安裝過了,可以跳過此步。在Ubuntu系統中非常簡單,只要執行下面命令就行了: $ sudo apt-get install build-essential 該命令執行後,從源文件安裝軟體所需的工具,如gcc、make、g++及其他所需軟體就安裝好了。 二、下載並編譯軟體的源代碼當我們下載源文件時,一定要弄清該軟體所依賴的庫文件和其他程序,並且首先將它們裝好。這些信息,通常都能在該開源項目的主頁上查找到。做好這些准備工作後,我們就可以進行下面的工作了。因為,軟體的源代碼通常以壓縮文件形式發布,所以需要將其解壓到指定目錄。命令如下所示: OwnLinux@ubuntu:~$ tar xvzf program.tar.gz OwnLinux@ubuntu:~$ cd program/ 如果你的對tar命令不熟悉請點擊這里閱讀《tar命令詳解》 在Linux下從源文件安裝程序時,有一個通用模式,即配置(./configure)–> 編譯(make) –> 安裝(sudo make install)。但是,此前你最好還是閱讀源文件中附帶的安裝說明,因為對於每個程序,其開發者的指示才是最具權威性的。程序開發者通常將安裝說明存放在名為INSTALL或README。到哪裡找這些文件呢?它們在項目主頁或源代碼主目錄中都能找到。 1.配置 構建應用的第一步就是執行configure腳本,該腳本位於程序源文件的主目錄下: OwnLinux@ubuntu:~/program$ ./configure 該腳本將掃描系統,以確保程序所需的所有庫文件業已存在,並做好文件路徑及其他所需的設置工作。如果程序所需的庫文件不完全,該配置腳本就會退出,並告訴您還需要哪些庫文件或者是哪些版本太舊需要更新。如果遇到這種情況,僅弄到含有該庫文件的軟體包還是不夠的,同時還要找到具有該庫文件所有頭文件的開發包,在Ubuntu中,這樣的包一般以-dev作為文件名的結尾。安裝好所有需要的庫文件後,重新運行配置腳本,直到沒有錯誤提示為止,這說明需要的庫文件已經全部安裝妥當了即滿足了依賴關系。 2.編譯 當配置腳本成功退出後,接下來要做的就是編譯代碼了。具體操作為在源文件的主目錄中運行make命令: OwnLinux@ubuntu:~/program$ make 這時,您會看到一串編譯輸出數據迅速從屏幕上滾過,如果正常的話,系統會返回的提示符狀態。然而,如果編譯過程中出現錯誤的話,排錯的過程可就不像配置步驟那麼簡單了。因為,這通常要涉及到源代碼的調試,可能源代碼有語法錯誤,或其他錯誤等等。怎麼辦?如果您是編程高手,那就自己調試吧!否則,檢查該軟體的郵件列表等支持渠道,看看是不是已知的bug,如果是就看看別人是怎麼解決的,不是就提交一份bug報告吧,也許不久就會有解決辦法。 3.安裝 當軟體成功編譯後,最後一步就是將它們安裝到系統上。大部分程序的makefile文件中都會有一個用於安裝的函數。需要注意的是,大多時候我們必須作為root用戶來安裝程序,這樣程序就把文件安裝到/usr或其他只有超級用戶才有寫許可權的目錄中。依舊是在源文件的主目錄下,執行如下命令: OwnLinux@ubuntu:~/program$ sudo make install 好了,這樣程序就會安裝到您的計算機上了。另外,當您不再使用該程序時,可以使用軟體所帶的卸載功能,一般程序都會具備此功能。切換至源文件的主目錄下,執行以下命令即可: OwnLinux@ubuntu:~/program$ sudo make uninstall 多數情況下,利用上面介紹的方法安裝的程序,都位於/usr/local下面。若想讓安裝的程序文件與Ubuntu巡視的文件系統隔離開的話,可以為命令添加項,如下所示: OwnLinux@ubuntu:~/program$ ./configure –prefix=/opt 盡管這樣做一般都是有效的,但是也有例外,有些程序根本不理會項;有些程序如含有內核模塊的程序,會把它們自己全部放進您的文件系統。
⑺ 在linux中,軟體包的安裝,源碼安裝,說明過程的配置文件是
詳解linux源碼包安裝過程
1. 解壓縮包
可以通過下載或其他方式獲得了一個軟體包,通常它是一個壓縮文件,大部分可能是存檔的和壓縮的,這些文件一般以 .tar .gz為擴展名。
首先拷貝它到一個目錄,然後 untar 和 gunzip 解壓它。 通常這個命令是
tar xzvf filename [filename 是軟體文件名稱]
解壓後的文件一般會在當前目錄下的創建子目錄,並以這個包名來命名。 你也可以用用這個命令預先查看結果 tar tzvf filename,顯示包里有那些解壓文件。
源文件如果是新的 bzip2 (.bz2) 格式,可用
bzip2 -cd filename | tar xvf -,或更簡單的 tar xyvf filename ,這很不錯的tar命令被不斷的完善。
說明:
A:有時候一些文件必須安裝在用戶的 home 目錄下,或更多的是在一個固定的目錄,比如 /, /usr/src, 或 /opt 。所以必須仔細閱讀安裝包的配置信息。當一個軟體包里如果有config 和 Makefiles 文件則最好去編輯它,這里包括了安裝指令和說明。提示:你改變 makefile 會導致不同的結果。大部分軟體包允許用 make install 自動處理安置二進制文件在適當的系統位置。
B:你可能碰到過一些共享文件、shell 存檔文件、尤其是 Internet 上的源碼新聞組。它們保留的原因是具有人性化的可讀性,並且允許新聞組緩沖並通過它們篩選和剔除出不合格的。它們可能用 unshar filename.shar 命令來解壓。
C: 一些源碼存檔文件是用非標準的 DOS,Mac 或其他壓縮的比如:
zip, arc, lha, arj, zoo, rar, and shk.
D: 有時候,你可能需要使用一個 patch 或顯示改變了的 diff 文件來升級或修復存檔的源碼文件。這 doc 文件或者 README 文件將告訴你怎麼去使用。一個很好的命令用標准語法來調用的命令是 patch < patchfile.
2: 關於 rpm 安裝包
一些 Linux 用戶懼怕通過使用源碼來手動安裝軟體包,不過現在有方便的 rpm 和 deb 或 新格式的 slp 包。例如:rpm 安裝運行平穩又快,作為一個軟體安裝在某幾個有名的操作系統。
作為方便的RPM包也存在很多不好的缺點,例如:
A: 要了解軟體中更多更詳細的內容你必須去在二進制中去了解,而不是rpm包。
B: 還有安裝一個 rpm 包如果需要依賴關系那麼安裝就可能會導致失敗。
C: 當 rpm 請求你系統中不同版本的庫,那麼安裝將不能繼續,除非你為錯誤的庫位置創建連接符號到正確的位置。
說明:必須使用root 安裝 rpm 和 deb 。因為它需要必須的寫入許可權。
最簡單的,用命令 rpm -i packagename.rpm 和 dpkg --install packagename.deb 會自動解包和安裝。
3:關於安裝 Linux 包出現的一些問題及解決方案
假設 make 失敗有個鏈接錯誤: -lX11: No such file or directory,正好在 xmkmf 之後已被調用,這可能意味著 Imake 不能被完全建立。檢查第一部分 Makefile 文件的的行是這樣:
· LIB= -L/usr/X11/lib
· INCLUDE= -I/usr/X11/include/X11
· LIBS= -lX11 -lc -lm
這個 -L 和 -I 開關告訴編譯器和鏈接分別在哪裡找到 library 和 include 文件。在這個例子里, X11 庫應該在 /usr/X11/lib 目錄,且 X11 包含文件應該在 /usr/X11/include/X11 目錄里。假如對於你的機器上的這個錯誤,請處理修改 Makefile 並重新再 make。
沒有聲明涉及的數學庫函數,像下列各項:
/tmp/cca011551.o(.text 0x11): undefined reference to `cos'
要修復它,需要明確鏈接到匹配的庫,在 Makefile (看先前的例子) 里增加一個 -lm 到 LIB 或 LIBS 標記 。
用其他方法嘗試
仍然失敗 如果失敗,參考下列腳本:
make -DUseInstalled -I/usr/X386/lib/X11/config
這個直接方式的類別相當於。
在少數例子里,用 root 運行 ldconfig 可能會解決:
# ldconfig 更新共享庫鏈接符號。
一些 Makefiles 使用你系統里未被承認的庫別名。一個例子,構建可能需要 libX11.so.6 ,但是在 /usr/X11R6/lib 不存在文件或鏈接。然而,在那裡是 libX11.so.6.1。解決方法是用 root 運行ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6 ,接著需要運行 ldconfig 。
有一些包需要你安裝一個或更多庫的升級版本。需要拷貝一個或更多的庫到適當的目錄里,刪除舊的庫,重新設置動態鏈接庫。
4:一些其他的問題處理
安裝一個shell 腳本如果出現:No such file or directory 的錯誤消息。這是可以檢查文件許可權確定文件事可執行的,並檢查文件頭確定是否 shell 或程序是腳本在指定的位置被調用。一個例子,這個腳本可能是這樣開始的:
#!/usr/local/bin/EDEN
如EDEN的實際安裝位置是在你的 /usr/bin 目錄,用一個 /usr/local/bin 替代
這個腳本不能運行有兩個方法來糾正!!
A: 文件頭改成 #!/usr/bin/EDEN
B: 或增加一個鏈接符, ln -s /usr/bin/EDEN
5:一個典型的例子 Xloadimage
首先說明下面的例子來源於國外網站的一個技術實例,這里我做了翻譯和整理。
這個例子展現一個簡單的問題。xloadimage 程序對我的圖形工具的調整設置是有用的附加。從源碼目錄拷貝文件,用 tar xzvf 解壓文件,可是在運行 make 的時候出現令人討厭的錯誤並停止了。
gcc -c -O -fstrength-rece -finline-functions -fforce-mem
-fforce-addr -DSYSV -I/usr/X11R6/include
-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c
In file included from /usr/include/stdlib.h:32,
from image.h:23,
from xloadimage.h:15,
from mcidas.c:7:
/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:
conflicting types for `wchar_t'
/usr/X11R6/include/X11/Xlib.h:74: previous declaration of
`wchar_t'
make[1]: *** [mcidas.o] Error 1
make[1]: Leaving directory
`/home/thegrendel/tst/xloadimage.4.1'
make: *** [default] Error 2
這個錯誤消息包含了實質的線索:
查看 image.h 文件的 23 行:
#include < stdlib.h>
在源碼的某處對於 xloadimage, wchar_t 已經在指定標准 include 文件重新定義。 告訴我們首先在 image.h 的 23 行嘗試注釋它,或許 stdlib.h include 是不存在的,畢竟不是所有都是必需的。
在這點,構建中的收益來源於所有任何一個致命錯誤。xloadimage 現在功能正常。
6: 安裝 Linux 包的一些總結
堅持自己動手處理所有的安裝出現的問題,不斷總結努力學習,從錯誤里去仔細研究,努力動手排錯,從每個不足甚至失敗的地方得到擴充和提升,可以增強安裝構建軟體的技巧。
⑻ php源碼換了機器無法運行
沒有配置Apache。php源碼換了機器無法運行是沒有配置Apache,下載配置即可。PHP即「超文本預處理器」,是在伺服器端執行的腳本語言,尤其適用於Web開發並可嵌入HTML中。
⑼ linux解壓文件後怎麼安裝軟體
一般的套路是:
1.cd +解壓後的文件夾,定位到解壓文件夾;
2../configure + 其他的依賴關系(可選);
3.make && make install。