A. 怎麼在linux下搭建pyqt的開發環境
以Ubuntu 12.10下搭建PyQt環境為例!
make
安裝python(由於此版本默認有Python2.7和Python3.2故可省去)
第一步:下載Qt4源代碼
第二步:下載SIP( SIP is a tool forautomatically generating Python bindings for C andC++ libraries)
第三步:下載PyQt
第四步:配置SIP:
解壓sip-XXXXX.tar.gz壓縮包,進入sip-XXXXX目錄
運行
python configure.py
注意:If you have multiple versions of Python installed then make sure
you use theinterpreter for which you wish SIP to generate bindings for.
也就是說我採用Python3.x進行開發,那麼使用的命令是:python3 configure.py
shell下的結果是:
lieo@ubuntu:~/download/sip-4.14.2$ python3 configure.py
This is SIP 4.14.2 for Python 3.2.3 on linux2.
The SIP code generator will be installed in /usr/bin.
The sip mole will be installed in /usr/lib/python3/dist-packages.
The sip.h header file will be installed in /usr/include/python3.2mu.
The default directory to install .sip files in is /usr/share/sip.
make
注意: 這步可能會報找不到Python.h文件的錯誤(沒報錯跳到make install)
這是因為缺失頭文件和靜態庫包,
假如使用python2.7運行
sudo apt-get install python-dev
假如使用python3運行
sudo apt-get install python3-dev
make install
第五步:編譯安裝Qt4
Ubuntu默認沒有編譯環境,運行以下命令安裝編譯環境
sudo apt-get install build-essential
#進入qt源碼目錄運行
./configure
結果:Qt will be installed into /usr/local/Trolltech/Qt-4.8.4
make
make install
1.如果在./configure階段,出現了以下錯誤
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11
那是因為沒裝有libxtst-dev,使用命令apt-get install libxtst-dev安裝
2.如果在make階段,出現一下錯誤
/usr/bin/ld: cannot find -lXrender
make[1]: *** [../../../../lib/libQtWebKit.so.4.7.3] 錯誤 1
make: *** [sub-webkit-make_default-ordered] 錯誤 2
那是因為沒有裝libxrender-dev
3.在qt create中,嘗試編譯測試,如果找不到qmake,則在工具-選項-QT4中手動設置qmake的位置。qmake的位置默認在/usr/local/Trolltech/Qt-4.8.4/bin/qmake。
當這幾個步驟全部完成後,把「PATH=/usr/local/Trolltech/Qt-4.8.4/bin:$PATH
export PATH」加到.profile中,Qt就安裝成功了。
或者 在.bashrc文件(如果你的shell是bash、ksh、zsh或者sh)中,添加下面這些行:
QTDIR=/usr/local/Trolltech/Qt-4.8.4
PATH=$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
第六步:安裝PyQt
#進入PyQt源碼目錄運行以下命令安裝PyQt
#前提是Qt4和SIP以正確安裝
python configure.py
make
make install
至此配置完成
B. linux 上面怎麼搭建java開發環境
在Linux上面搭建java開發環境的步驟如下:
1、JDK的安裝:
執行下面命令安裝JDK(首先創建/opt/java目錄)
tar -xvf jdk-7u9-linux-i586.tar.gz -C /opt/java
ln -s /opt/java/jdk1.7.0_09 /opt/java/jdk 創建一個鏈接
vi /etc/frofile 設置環境變數
exort JAVA_HOME=/opt/java/jdk
exprot PATH=$JAVA_HOME/bin:$PATH
相當於重新設置PATH=JAVA_HOME/bin+PATH
配置好之後要用命令source /etc/profile
執行java -version 命令測試一下jdk是否安裝成功。
2、tomcat的安裝:
解壓安裝
tar -xvf apache-tomcat-6.0.10.tar.gz -C /opt/tomcat/
ln -s /opt/tomcat/apache-tomcat-6.0.10 /opt/tomcat/tomcat6.0 創建一個鏈接
然後 cd /opt/tomcat/tomcat6.0/bin
執行./startup.sh
再打開瀏覽器測試一下,輸入地址訪問tomcat,看有沒有tomcat貓的頁面出來,有的話就說明安裝成功了。
3、eclipse的安裝:
解壓,gunzip eclipse-java-juno-SR2-linux-gtk.tar.gz
安裝 tar -xvf eclipse-java-juno-SR2-linux-gtk.tar -C /opt
然後去圖形界面進入/opt/eclipse目錄,運行eclipse,就可以打開eclipse界面了。
以上步驟就完成了在Linux上搭建java環境的步驟了。
C. linux下怎麼安裝Go開發環境
一、Go安裝使用
1、下載Go源碼包
https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz
上傳到/usr/local/src目錄下
2、編譯安裝Go到/usr/local
tar zxvf go1.6.3.linux-amd64.tar.gz -C /usr/local/
#註:必須使用root賬戶或者使用sudo來解壓縮Go源碼包
3、設置PATH環境變數,添加/usr/local/go/bin到環境變數
export PATH=$PATH:/usr/local/go/bin
4、安裝到自定義位置
Go二進制文件默認安裝到/usr/local/go,但是可以安裝Go工具到不同的位置,可以自行定義,只需要設置正確的環境變數。
例如,安裝Go到家目錄下,必須添加環境變數到$HOME/.profile
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
註:安裝Go到其他目錄時,GOROOT必須設置為環境變數
5、檢查是否正確安裝程序
通過設置一個工作區和建立一個簡單的程序,檢查是否正確安裝了一個簡單的程序。創建一個目錄包含您的工作空間,例如/data/work,並設置GOPATH環境變數指向的位置。
export GOPATH=/data/work
#如果不存在/data/work,需要新建
然後,在你的工作內創建src/github.com/user/hello,如果使用github,可以使用自己的用戶名代替user,在hello目錄下,新建hello.go
# cat hello.go
package main
import "fmt"
func main {
fmt.Printf("hello,world!\n")
}
#使用go編譯hello.go
go install github.com/user/hello
#上面的命令講名叫hello(or hello.exe)的程序放到你的工作區內,執行下面命令,會得到輸出結果。
$GOPATH/bin/hello
hello,world!
#當出現hello,world!表明Go已經安裝成功可以工作。
二、Go工作區介紹
1、機構組織代碼概述
Go語言程序通常將所有的代碼保存在一個工作區中。
工作區包含許多版本控制庫(由Git管理)。
每個存儲庫包含一個或多個包。
每個包由一個或多個在一個目錄中的源文件組成。
一個包的目錄的路徑決定其導入路徑。
註:同於其他的編程環境中,每一個項目都有一個獨立的工作區且工作區是緊密聯系在一起的版本控制庫。
2、工作區介紹
工作區是一個目錄層次結構,它的根目錄有三個目錄:
src 包含Go源文件
pkg 包含對象和包
bin 包含可執行命令
Go工具創建源碼包並安裝二進制文件到pkg和bin目錄下
src目錄通常包含多個版本控制庫(如Git或Mercurial),跟蹤一個或多個源包的開發。
下面展示一個好的工作區的例子:
bin/
hello # command executable
outyet # command executable
pkg/
linux_amd64/
github.com/golang/example/
stringutil.a # package object
src/
github.com/golang/example/
.git/ # Git repository metadata
hello/
hello.go # command source
outyet/
main.go # command source
main_test.go # test source
stringutil/
reverse.go # package source
reverse_test.go # test source
golang.org/x/image/
.git/ # Git repository metadata
bmp/
reader.go # package source
writer.go # package source
... (many more repositories and packages omitted) ...
上面的屬性圖展示了一個包含兩個存儲庫(example和image)的工作區,example 存儲庫包含兩個命令(hello,outyet),image庫包含bmp包和幾個其他的包。
一個典型的工作區包含包含許多軟體包和命令的多個源庫。大多數程序員將所有的源代碼和依賴關系保存在一個工作區中
3、GOPATH環境變數設置
GOPATH環境變數指定工作區的位置。它很可能是唯一的環境變數,代碼開發時需要設置。
開始,創建一個工作區目錄並設置相應的gopath。您的工作區可以位於任何你喜歡的地方,但我們將在這個文檔中使用/data/work。請注意,這不能是您的「Go安裝」路徑相同。
mkdir -p /data/work
export GOPATH=/data/work
為了方便。添加工作區的bin到PATH中
export PATH=$PATH:$GOPATH/bin
4、導入路徑
一個導入路徑是唯一標識一個包的字元串。一個包的導入路徑對應於它在工作區內或遠程存儲庫中的位置。
從標准庫的軟體包中給出了短的導入路徑等。對於您自己的包,您必須選擇不可能和未來添加到標准庫或其他外部庫的基礎路徑沖突的路徑。
注意,你不需要將你的代碼發布到一個遠程存儲庫之前,你可以建立它。這只是一個很好的習慣來組織你的代碼,如果你有一天會出版它。在實踐中,你可以選擇任何任意的路徑名稱,只要它是唯一的標准庫和更大的去生態系統。
我們將使用github.com/user作為我們的基本路徑。在您的工作區中創建一個目錄,以保持源代碼:
mkdir -p $GOPATH/src/github.com/user
5、第一個項目
編譯並運行一個簡單的程序,首先選擇一個包的路徑(我們將使用github.com/user/hello)和創建在您的工作區相應的軟體包目錄:
mkdir $GOPATH/src/github.com/user/hello
創建名叫hello.go的文件,上面創建過,此處略過。
cd $GOPATH/src/github.com/user/hello
go install
$GOPATH/bin/hello
或者:
hello
如果你使用的是一個源代碼管理系統,現在是一個很好的時間來初始化一個存儲庫,添加文件,並提交你的第一次更改。再次,這一步是可選的:您不需要使用源代碼管理來寫代碼。
cd $GOPATH/src/github.com/user/hello
git init
Initialized empty Git repository in /data/work/src/github.com/user/hello/.git/
git add hello.go
git commit -m "first commit"
[master (root-commit) bbfb477] first commit
6、first library
mkdir $GOPATH/src/github.com/user/stringutil
下一步,在目錄下創建一個名為reverse.go文件中有下列內容:
// Package stringutil contains utility functions for working with strings.
package stringutil
// Reverse returns its argument string reversed rune-wise left to right.
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
使用go build測試包的編譯
$ go build github.com/user/stringutil
如果當前位置源碼包目錄,只需要:
go build
上面操作並不會產生一個輸出文件,必須使用go install,把包和對象輸出到工作去的pkg目錄內
確認stringutil包創建完成後,修改原始hello.go,使用stringutil包:
package main
import (
"fmt"
"github.com/user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("\n !oG ,olleH"))
}
無論使用go安裝包還是二進制文件,所有相關的依賴都會自動安裝。所以當你安裝hello程序時:
$ go install github.com/user/hello
對應的stringutil包會自動安裝好。
執行新的hello程序,可以看到消息已經被反轉
# hello
Hello, Go!
完成上面操作之後,工作區應該為:
├── bin
│ └── hello # command executable
├── pkg
│ └── linux_amd64 # this will reflect your OS and architecture
│ └── github.com
│ └── user
│ └── stringutil.a # package object
└── src
└── github.com
└── user
├── hello
│ └── hello.go # command source
└── stringutil
└── reverse.go # package source
注意:go install會把庫文件stringutil.a放到pkg/linux_amd64下邊(目錄結構跟源代碼結構一樣)。這樣可以go命令可以直接找到對應的包對象,避免不必要的重復編譯。linux_amd64是為了根據操作系統和你的系統架構交叉編譯。
所有Go可執行程序都通過靜態方式鏈接在一起,所以在運行時是不需要相關的包對象(庫)。
7、包命令
所有的Go源代碼都以下面的語句開始:
package name
其中name就是包引用默認的名稱,一個包中的所有文件必須使用同一個包名,可執行命令必須是main。
一個二進制文件下所有的包名不需要唯一,但是引用路徑必須唯一
8、測試
Go自帶了一個輕量級的測試框架,由go test和testing包組成。
可以通過新建xx_test.go寫一個測試,其中包含若干個TestXXX函數。測試框架會自動執行這些函數;如果函數中包含tError或t.Fail, 對應的測試會被判為失敗。
添加一個針對stringutil的測試文件$GOPATH/src/github.com/user/stringutil/reverse_test.go,包含以下內容:
package stringutil
import "testing"
func TestReverse(t *testing.T) {
cases := []struct {
in, want string
}{
{"Hello, world", "dlrow ,olleH"},
{"Hello, 世界", "界世,olleH"},
{"", ""},
}
for _, c := range cases {
got := Reverse(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
#通過go test測試
# go test github.com/user/stringutil
ok github.com/user/stringutil 0.002s
#同樣的,在包文件夾下可以忽略路徑而直接執行go test
[root@zabbix stringutil]# go test
PASS
ok github.com/user/stringutil 0.002s
9、遠程包
包的引用路徑用來描述如何通過版本控制系統獲取包的源代碼。go工具通過引用路徑自動從遠程代碼倉庫獲取包文件。比如本文中用的例子也對應的保存在github.com/golang/example下。go可以通過包的代碼倉庫的url直接獲取、生成、安裝對應的包。
[root@zabbix ~]# go get github.com/golang/example/hello
[root@zabbix ~]# $GOPATH/bin/hello
Hello, Go examples!
如果工作區中不存在對應的包,go會將對應的包放到GOPATH環境變數指明的工作區下。(如果包已經存在,go跳過代碼拉去而直接執行go install)
建議詳細看一下http://www.linuxprobe.com/set-go-env.html這個,有圖文
D. linux鎼寤哄紑鍙戠幆澧冩剰涔塴inux鎼寤哄紑鍙戠幆澧
鎬庝箞璁劇疆golang鐨勭幆澧冨彉閲弆inux錛
Linux涓嬪畨瑁匞o寮鍙戠幆澧冩搷浣滄ラょ涓姝ワ細鐧婚檰linux絎浜屾ワ細鐢ㄥ懡浠yuminstallmercurial瀹夎卪ercurial鍖呯涓夋ワ細鐢ㄥ懡浠yuminstallgit瀹夎単it鍖呯鍥涙ワ細鐢ㄥ懡浠yuminstallgcc瀹夎単cc
linux緋葷粺鎬庢牱榪涜宩ava寮鍙戱紵
linux涓媕ava緙栫▼涓庡湪windows涓嬩竴鏍鳳紝閲嶇偣鍦ㄤ簬鎼寤簀ava寮鍙戠幆澧冦俵inux涓嬫惌寤簀ava寮鍙戠幆澧冩ラわ細
1銆佷笅杞絣inux鐜澧冧笅鐨凧DK錛屼婦渚嬶細
JDK紼嬪簭鍚嶄負錛歫dk-7u11-linux-i586.tar.gz淇濆瓨璺寰勶細/home/wyl/tools-wyl/JDK7u11eclipse紼嬪簭鍚嶄負:eclipse-jee-juno-SR1-linux-gtk.tar.gz淇濆瓨璺寰勶細/home/wyl/tools-wyl/eclipse-javaEE
2銆佽В鍘嬩笅杞界殑jdk-7u11-linux-i586.tar.gz鏂囦歡chmod777jdk-7u11-linux-i586.tar.gztarxzvfjdk-7u11-linux-i586.tar.gz(鏅閫氱敤鎴瘋韓浠借В鍘嬪嵆鍙)
3銆侀厤緗鐜澧冨彉閲忎互瓚呯駭鐢ㄦ埛韜浠芥墽琛屼笅闈㈢殑鍛戒護錛#vim/etc/profile鍦ㄦ枃浠舵湯灝懼姞涓婁互涓嬪唴瀹瑰悗淇濆瓨閫鍑猴紙:wq錛塭xportJAVA_HOME=/home/wyl/tools-wyl/JDK7u11/jdk1.7.0_11錛堣存槑錛氳繖涓鏄疛DK瑙e帇鍚庢枃浠跺す鐨勮礬寰勶級exportPATH=$JAVA_HOME/bin:$PATH鎴杄xportPATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.
4銆佹敞閿閲嶆柊鐧誨綍鍚庡湪緇堢杈撳叆java,javac,java-version,javac-version.嫻嬭瘯鏄鍚﹀畨瑁呮垚鍔熴$java-versionjavaversion"1.7.0_11"Java(TM)SERuntimeEnvironment(build1.7.0_11-b21)JavaHotSpot(TM)ServerVM(build23.6-b04,mixedmode)$javac-versionjavac1.7.0_11$
5銆佽В鍘媏clipse-jee-juno-SR1-linux-gtk.tar.gz騫惰繍琛屽畠(chmod777eclipse...)
5.1銆佽В鍘嬶細tarxzvfeclipse-jee-juno-SR1-linux-gtk.tar.gz錛堟櫘閫氱敤鎴瘋韓浠借В鍘嬪嵆鍙錛屽惁鍒欐瘡嬈¢兘瑕佷互瓚呯駭鐢ㄦ埛韜浠借繍琛屽畠錛夈
5.2銆佽繍琛岋細榪涘叆瑙e帇鍚庣殑鐩褰曪紝鎵ц屽懡浠わ細./eclipse鍗沖彲榪愯宔clipse.鎴栬呰繘鍏ヨВ鍘嬪悗鐨勭洰褰曪紝鍙屽嚮eclipse鍥炬爣鍗沖彲銆傝繍琛宔clipse鍗沖彲榪涜宩ava緙栫▼銆
瑁卨inux緋葷粺闇瑕佸氬ぇ鐨勭┖闂達紵
centos鐨勫唴瀛樹竴鑸緇1g灝卞熶簡錛岃繖涓鍏蜂綋瑕佺湅浣犵殑浜嬫儏鐜澧冿紝鑷宸辯墿鐞嗘満鐨勫唴瀛樺ぇ灝忥紝涓鑸鎯呭喌涓嬩竴鑸瀹夎呯郴緇熺殑鏃跺欓兘鏄緇欏唴瀛樺ぇ涓鐐逛竴鑸緇2g鎴栬呮洿澶с傚畨瑁呭畬linux鍚庯紝鐒跺悗鎶婄綉鍗mac鍒犻櫎錛屾妸鈥/etc/udev/rules.d/70-persistent-net.rules鈥濆垹闄わ紝鐒跺悗鍋氬揩鐓э紝鍋氬厠闅嗐傛墍鏈夌殑鎿嶄綔閮芥槸鍦ㄥ厠闅嗘満鍣ㄩ噷闈㈡搷浣滅殑錛屽疄楠岀幆澧冪殑linux涓鑸瀹夎呴渶瑕侀夋嫨鍥懼艦鍖栨垨鍛戒護琛岋紝鏈夋椂鍊欏仛闆嗙兢鐜澧冧腑linux鍐呭瓨緇4-5鐧懼厗灝卞彲浠ヤ簡銆傝繖涓鏄鎴戠殑緇忛獙銆
linux鐨勫︿範寤鴻鍘粀ww.linuxprobe.com鐪嬬湅錛屽笇鏈涙偍鑳藉熸湁鏀惰幏銆傚湪linux鐨勫︿範涓鎺屾彙涓涓濂界殑鏂規硶鑳藉熸彁楂樺︿範鏁堢巼鐨勩傚緩璁鎵句竴涓濂界殑緗戠珯錛屽ソ濂界殑瀛︿範linux銆傜濅綘濂借繍錛侊紒