手把手實現linux下桌面應用.(QQ.飛信.股票.音樂.電影.遊戲等)

火星人 @ 2014-03-09 , reply:0
←手機掃碼閱讀

此文凝聚筆者不少心血請尊重筆者勞動,轉載請註明出處,侵權必究http://freeze.blog.51cto.com/

個人小站剛上線,http://www.linuxwind.com 歡迎大家訪問.

忙了一些日子,筆者可以靜下心把這篇博客寫完,跟大家分享.有朋友期待好久了吧?:-)

筆者演示的環境為fedora 14 內核版本為2.6.35.10-74.fc14.i686 關閉selinux

所安裝的開發組件有:GNOME 軟體開發 Java 開發 Perl 開發 X 軟體開發 開發工具 開發程序庫 XFCE 軟體開發 傳統軟體開發

介紹中有好多應用軟體大多在ubuntu上應用,fedora 14上筆者嘗試也可以正常使用,以下應用軟體不全是依賴wine,好多還是linux桌面應用的源代碼包編譯安裝,本文的目的是打造一個linux桌面應用能夠一定程度上windows桌面,linux愛好者可以有自己真實的操作環境還不局現於windows的特性,不局限於只使用虛擬機,筆者為了方便闡述,筆者介紹不分順序,如有闡述不到位的地方,請朋友們指出.

簡單介紹下,在linux系統上實現以上圖片展示的某些軟體,主要利用了一款工具程式的軟體wine

一.wine 的簡介

“WINE 代表 Wine Is Not an Emulator(即,Wine 不是一個模擬器).更確切地說,Wine 是 X 和 UNIX 之上對 Windows API 的一個開放源代碼實現.您可以認為它是一個 Window 兼容層.Wine 不需要 Microsoft Windows,它是由 100% 非 Microsoft 代碼構成的另一個實現.但是它可以使用本機系統 DLL,只要這些 DLL 可用.它可以讓您在 Linux 或者其他類 UNIX 操作系統之上運行大部分 Windows 軟體.”

Wine在任何“類Unix”操作系統(特別是在Linux)上運行Windows程序成為可能.在其核心,Wine是一個Windows應用程序介面(API)庫,作為一個Windows程序和Linux之間的橋樑.Wine是一個兼容層,當Windows程序嘗試執行一個通常情況下Linux不能理解的功能(函數),Wine將把該程序的指令翻譯成Linux能夠理解的指令. 通俗的說,wine其實就是一個可以方便的在linux系統下運行屬於windows程序的程序.   

Wine 如何工作


既然我們已經理解了 Wine 的基本原理,讓我們更詳細地來研究 Wine 能夠做什麼.本文中,我們討論的是 Wine 在純 Linux 上的安裝,沒有任何 Windows 分區.

  1. Windows 可執行文件:
    Wine 完全支持 Windows 可執行文件( .exe 和 DLL)的二進位載入.
  2. DLL:
    Wine 有幾百個 Windows DLL 的內部實現 -- 不過,其中沒有多少是完全的實現.例如,包含有用戶界面相關函數的 userd32.dll 在開放源代碼的 Wine 中實現了 92%.
  3. COM:
    這是一種幾乎被所有的大型 Windows 應用程序所使用的 Windows 技術,它支持諸如將一個 Excel 電子數據表嵌入到 Word 文檔中等功能.這一技術得到了 Wine 的很好的支持.
  4. 註冊表:
    這是另一個幾乎任何一個 Windows 應用程序都會使用的關鍵技術,Wine 實現了大約 90% 的 Windows 註冊表管理 API.
  5. 核心功能:
    核心繫統功能也得到了特別好的支持.如前面提到的,儘管 Linux 和 Windows 之間存在區別,但是基本的層次上還有很多類似之處,因此與進程、線程、文件和消息隊列相關的核心繫統 API 得到了近乎完美的支持.
  6. 音頻和視頻:
    Wine 支持 Windows 音頻和視頻文件的運行(還可以使用 Windows 媒體播放器).
  7. 列印:
    也得到了支持,可以從一個在 Wine 中運行的 Windows 應用程序進行列印.
  8. ODBC:
    Wine 支持那些需要通過 ODBC 訪問資料庫的 Windows 應用程序.
  9. 調試:
    Wine 有一個非常健壯和強大的內置調試器,除了支持標準的調試功能外,它還為調試運行於 Linux 上的 Windows 二進位程序進行了定製.它是 Wine 為其開發者提供的最重要工具之一.Wine 還有一個設計完備的追蹤和記錄日誌的模塊,可以幫助調試.我們之強調這一點,原因在於,儘管框架是健壯的,但是,當在 Wine 中安裝和運行 Windows 應用程序時有很多不確定因素,在使用開放源代碼的 Wine 時遲早會停下來進行調試.

簡單介紹完原理,下面就開始安裝吧.

下載wine的源碼包,目前最新的版本是1.3.9筆者習慣用較為穩定的版本1.2.1,筆者做過測試,1.3.9版本的包在安裝IE6.0的時候總是報錯,筆者用1.2.1版本做演示.

安裝包的下載地址直接google搜索wine-1.2.1 有很多

筆者用的是wine-1.2.1.tar.bz2

1. tar jxvf wine-1.2.1.tar.bz2 #解壓縮wine到當前目錄

2. cd wine-1.2.1 #進入目錄

3. ./configure # 檢測系統當前是否有安裝編譯源代碼的軟體包,並根據具體計算機環境和configure後面附加的參數生成Makefile文件.可以加一些參數來控制,後面附加的參數,筆者用默認,如果中間報錯,會提示你你的哪些庫文件缺失,找到相應的開發包,裝上即可.編譯完成會提示你執行make命令.

4. make #編譯,需要等好長一段時間,編譯是在cpu中進行的,機子會很慢

5. make install #編譯安裝

執行完后,如果沒有報什麼錯,就說明安裝成功了,下面開始裝一些wine運行其他平台所需要的一些庫組件.

獲取最新的WineTricks

WineTricks 是 Wine的其中一個開發者DanKegel寫的一個安裝Windows有關庫和軟體的小程序.

wget http://www.kegel.com/wine/winetricks

終端下運行

sh winetricks msxml3 gdiplus riched20 riched30 ie6 vcrun6 vcrun2005sp1 flash wenquanyi


之後會安裝一些程序,出現安裝界面一直點下一步就行了,等待上一段時間.如果中間出現以上界面,則執行

yum install cabextract #yum大家應該很熟悉了,不過多介紹,可以用163的yum源

在終端運行

regedit

打開註冊表,打開[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]

MS Shell Dlg = wenquanyi

MS Shell Dlg 2 = wenquanyi

Tahoma = wenquanyi (這個沒有手動新建字元串)

至此,wine基本組件已經安裝完畢,下面做一下簡單配置,在終端執行

winecfg

#做如圖配置,主要是把d盤設置到/opt目錄下,以後軟體都裝在此處,方便查找,點一下自動偵測就能檢測到,檢測不到手動添加下.

大功告成,下面開始安裝應用程序吧.有了wine的虛擬環境,windows下的好多軟體可以直接使用,比如MSN,QQ,大智慧,等等,篇幅有限,筆者不能一一介紹,介紹幾款常用的,如果有需求的話請留言.

1.QQ

直接到QQ官方網站,下載最新版的QQ安裝包,下載完直接雙擊打開.

則出現熟悉的安裝畫面,可惜是亂碼,這個不用管,一直點下一步就行了,到選擇安裝路徑是改到/opt下

方便查找,安裝過程出現程序錯誤不用管,點擊右上角的X就行了.

安裝完成後直接運行/opt/QQ/BIN/QQ.exe,(具體目錄跟你安裝目錄所對應),打開后輸入帳號密碼登錄,但是需要注意的是密碼用軟鍵盤輸入,否則會崩潰,請你用虛擬鍵盤輸入(就是不要點擊密碼框,而是直接點擊左邊的鍵盤按鈕)最好勾上記錄密碼和自動登錄登錄成功后的效果圖:


2.虛擬機 VirtualBox

Sun VirtualBox 是由Sun Microsystems公司出品的軟體,原由德國innotek公司開發.2008年2月12日,Sun Microsystems宣布將以購買股票的方式收購德國Innotek軟體公司,新版不再叫做Innotek VirtualBox,而改叫Sun xVM VirtualBox.VirtualBox 是一款功能強大的 x86 虛擬機軟體,它不僅具有豐富的特色,性能也很優異.更可喜的是,VirtualBox 於數日前走向開源,成為了一個發布在 GPL 許可之下的自由軟體.VirtualBox 可以在 Linux 和 Windows 主機中運行,並支持在其中安裝 Windows (NT 4.0、2000、XP、Server 2003、Vista)、DOS/Windows 3.x、Linux (2.4 和 2.6)、OpenBSD 等系列的客戶操作系統.假如你曾經有用過虛擬機軟體的經歷的話,相信使用 VirtualBox 不在話下.即便你是一個新手,也沒有關係.VirtualBox 提供了詳細的文檔,可以助你在短期內入門.   VirtualBox與Xen是Unix/Linux/BSD平台下以GPL發布的虛擬技術力作,但VirtualBox在網路方面需再進行改進.

筆者感覺virtualBox比vmware,kvm,xen速度快的多,方便管理,畢竟現在歸到oracle旗下了,還是強烈推薦的首選虛擬機.

安裝:

直接去網上下載VirtualBox的rpm包,筆者下載的是VirtualBox-3.2-3.2.12_68302_fedora14-1.i686.rpm 版本

yum localinstall VirtualBox-3.2-3.2.12_68302_fedora14-1.i686.rpm --nogpgcheck

##有一些包的依賴,最好用yum安裝,163的mirrors地址為http://mirrors.163.com

裝好後效果圖,還有前面的一張啟動的圖片(運行程序在左上角應用程序中的系統工具里)

3.系統監控軟體conky

Conky是一種自由軟體,用於X視窗系統的系統監視,可以在FreeBSD、OpenBSD和各種Linux發布上使用的自由軟體 on SourceForge.net.Conky具有很高的可配置性 by Dmitri Popov on Linux.com by Casey Stamper on Debian.net by Sebastian Wieseler,可以監視許多系統參數,如:CPU、內存、交換內存、硬碟使用情況等狀態;各種硬體的溫度;系統的進程(top);網路狀態;電池電量;系統信息和郵件收發;各種音樂播放器MPD、XMMS2、BMPx、Audacious)的控制.

效果圖如下:

安裝很簡單,如果用163的mirrors,直接yum可以安裝:

yum install conky #會自動解決依賴關係

安裝完后在終端運行conky就出現了,但此時你的conky沒有配置,你會發現非常醜陋,那麼做一下簡單的配置,網上有conky的配置教程,筆者不重複介紹,筆者把自己的配置參數與大家分享:

vim /etc/conky/conky.conf

筆者配置:(例如CPU溫度或者是上面的字體可能有些顯示不出來,需要安裝一些字體支持的包和插件,網上有教程,筆者不過多敘述.)

(如果想讓conky開機啟動,編輯/root/下的.bash_profile在裡面加一條sleep 10 && conky &)

background no

override_utf8_locale yes

font Sans:size=9

xftfont Sans:size=9

use_xft yes

xftalpha 1

update_interval 1.0

total_run_times 0

own_window yes

own_window_type override

own_window_transparent yes

own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

double_buffer yes

draw_shades no

draw_outline no

draw_borders no

draw_graph_borders no

minimum_size 170 5

maximum_width 240

alignment top_right

gap_x 10

gap_y 50

no_buffers yes

cpu_avg_samples 2

override_utf8_locale yes

uppercase no # set to yes if you want all text to be in uppercase

use_spacer none

out_to_console no

default_color white default_shade_color black default_outline_color white TEXT ${color grey}運行時間 $uptime ${color grey}CPU @ ${freq}MHz ${alignr} ${color grey}${cpubar 8} ${color white}$stippled_hr ${color white}CPU Used:$alignr${color red} $cpu% ${color white}cpu 溫度:$alignr${color red}${execi 6 /usr/bin/sensors | grep temp2|cut -d' ' -f8 } ${color }$stippled_hr ${color }Processes:$alignr${color }$processes ($running_processes running) ${color white}$stippled_hr ${color }Highest CPU:$alignr PID CPU% ${color #ddaa00}${top name 1}$alignr${top pid 1} ${top cpu 1} ${color lightgrey}${top name 2}$alignr${top pid 2} ${top cpu 2} ${color lightgrey}${top name 3}$alignr${top pid 3} ${top cpu 3} ${color }Highest MEM:$alignr PID MEM% ${color #ddaa00}${top_mem name 1}$alignr${top_mem pid 1} ${top_mem mem 1} ${color lightgrey}${top_mem name 2}$alignr${top_mem pid 2} ${top_mem mem 2} ${color lightgrey}${top_mem name 3}$alignr${top_mem pid 3} ${top_mem mem 3} ${color white}$stippled_hr ${color green}網路信息 ${hr 1}${color} ${color white}IP地址: ${color #dcff82}${addr eth0}${color} ${voffset 1}${color white}上行速率:${color #dcff82} ${upspeedf eth0} Kb/sec ${voffset 1}${color white}下行速率:${color dcff82} ${downspeedf eth0} Kb/sec ${downspeedgraph eth0 25,98 000000 4ea5cd} ${alignr}${upspeedgraph eth0 25,98 000000 296dac} ${color white}上行統計: ${color #dcff82}${totalup eth0} ${color white}下行統計:${color #dcff82}${totaldown eth0} ${color white}$stippled_hr ${color }MEM:${color} $memperc%$alignr$mem/$memmax ${membar 3,160} ${color }ROOT:$alignr${color}${fs_used /}/${fs_size /} ${fs_bar 3,160 /} ${color }HOME:$alignr${color}${fs_used /home}/${fs_size /home} ${fs_bar 3,160 /home} ${color white}$stippled_hr ${color green}RSS閱讀${hr 1} ${color white}${rss http://tech.qq.com/web/webrss.xml 5 item_titles 14}

4.電影播放器 Mplayer

linux下的播放器中,筆者認為mplayer是當之無愧的王者.

MPlayer被評為Linux下的最佳媒體播放工具,又成功地移植到Windows下.它能播放幾乎所有流行的音頻和視頻格式,相對其它播放器來說,資源佔用非常少,不需要任何系統解碼器就可以播放各種媒體格式,對於MPEG/XviD/DivX格式的文件支持尤其好,不僅拖動播放速度快得不可思議,播放破損文件時的效果也好得出奇,在低配置的機器上使用更是能凸顯優勢.
MPlayer本身編譯自帶了多種類型的解碼器,不需要再安裝xvid、ffdshow、ac3 filter、ogg、vobsub等等所謂看DVDrip必備解碼器,也不會跟你的電腦原來所安裝的解碼器有任何衝突.它支持大多數的媒體格式如:MPEG/VOB, AVI, ASF/WMA/WMV,RM, QT/MOV/MP4, Ogg/OGM, MKV, VIVO, FLI, NuppelVideo, yuv4mpeg, FILM和RoQ文件.還能觀看VCD, SVCD, DVD, 3ivx, DivX 3/4/5, 甚至 WMV 電影.

MPlayer廣泛地支持音視頻輸出驅動.它不僅可以使用 X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca, DirectFB, Quartz, Mac OS X CoreVideo, 也能使用GGI, SDL (及它們的所有驅動), 所有VESA兼容顯卡上的VESA(甚至不需要 X11), 某些低級的顯卡相關的驅動(如 Matrox, 3dfx 及 ATI) 和一些硬體 MPEG 解碼器卡, 比如 Siemens DVB, Hauppauge PVR (IVTV), DXR2 和 DXR3/Hollywood .它們中絕大多數支持軟體或硬體縮放, 你可以享受全屏電影.

上mplayer的官方網站可以下載到最新的源碼包,還有解碼器,筆者下載的是MPlayer-1.0rc3.tar.gz源碼包和essential-20071007.tar.bz2解碼器,這個版本的筆者感覺比較穩定,下載好后,進入源碼包所在的目錄,還是老規矩,五步走:

tar zxvf MPlayer-1.0rc3.tar.gz

cd MPlayer-1.0rc3

./configure

make

make install

(如果./configure沒有報錯的話,make出錯 ,/usr/lib/libgif.so.4: could not read symbols: Invalid operation collect2: ld returned 1 exit status make: *** [mplayer] 錯誤 1

lib庫引用錯了. QuantizeBuffer是libgif里的東東, 但是卻引用成-lungif. 找到Makefile引用的地方, 把-lungif改成-lgif就可以了.則解決方案為 在Makefile包含的一個config.mak里(大概是46行,把lungif換成lgif即可

下面安裝essential-20071007.tar.bz2

tar jxvf essential-20071007.tar.bz2

cd essential-20071007

mv * /usr/lib/wincodecs

OK,大功告成,下面試一下吧.

5.辦公軟體

linux下也有跟微軟office功能差不多強大的辦公軟體,叫openoffice.

安裝很簡單的,掛163的mirrors.

yum install openoffice -y

只需等待安裝

安完后的使用效果

六 遊戲

玩遊戲,最大的障礙就是顯卡驅動,linux下的顯卡驅動安裝起來比較麻煩,,現查看自己的顯卡型號.使用命令

[root@freeze ~]# lspci |grep "VGA"

01:00.0 VGA compatible controller: ATI Technologies Inc M92 [Mobility Radeon HD 4500 Series]

筆者是 ATI的顯卡,HD4500,然後去google搜索 ATI HD4500 for linux,找到安裝包,放到root目錄下,重啟,進入3級別模式,直接執行安裝就可以了,需要注意的是,顯卡的型號一定要匹配,不然會出亂子,如果是N卡的話,現在完驅動,確認版本沒問題並且,安裝按照以上方法不行的話,請升級內核版本.筆者不一一介紹了,安裝驅動沒多大難度,如果有需要的朋友,可以留言,筆者寫出詳細過程.

裝完之後你會發現玩遊戲什麼的不在卡了,直接用wine 就可以調出.

想全屏的話加上 --opengl的參數

好了,寫到這裡,基本功能全部已經實現,經過你的精心打造,linux下基本能實現windows的大部分功能,是不是很激動呢?以後就用linux把.可以 邊學邊實踐.好了,就簡單介紹到這裡,大家要是有什麼喜歡的功能想融合,歡迎交流.

本文出自 「夜的博客」 博客,請務必保留此出處http://freeze.blog.51cto.com/1846439/451500





[火星人 via ] 手把手實現linux下桌面應用.(QQ.飛信.股票.音樂.電影.遊戲等)已經有532次圍觀

http://www.coctec.com/docs/linux/show-post-49838.html