我下載的wine一直無法正常運(yùn)行exe文件,折騰了好久,網(wǎng)上大量搜索也沒有發(fā)現(xiàn)問題原因(貌似大家都沒有遇到過一樣),反復(fù)實(shí)驗(yàn)排除了系統(tǒng)版本的問題,wine版本問題。最后終于發(fā)現(xiàn)原來是wine與exe文件路徑配置的問題。 針對(duì)問題: wine正常安裝后,無法運(yùn)行非Windows自帶的exe、bat等其他合法的Windows可執(zhí)行文件,即自行安裝(解壓)的Windows程序無法運(yùn)行。 問題現(xiàn)象: 在圖形界面里面雙擊exe文件時(shí),彈出一個(gè)wine對(duì)話框,內(nèi)容為:"Path not find"。 在命令行中使用相對(duì)路徑執(zhí)行該文件,提示(假設(shè)程序?yàn)?home/userx/abc.exe): wine: cannot find L"unix\\home\\userx\\abc.exe" 若在命令行下使用完整的路徑名也無法運(yùn)行并會(huì)提示: wine: cannot find L"\\home\\userx\\abc.exe" 這些因素與問題無關(guān): 32位或64位的linux系統(tǒng)。 wine版本。 問題原因: wine只能運(yùn)行放置在“在wine中配置了Windows盤符的目錄(含子目錄)”下面的exe程序,即文件需要有一個(gè)合法的Windows路徑才能運(yùn)行。 wine在運(yùn)行exe的時(shí)候,需要先將這個(gè)exe文件所在的路徑用合法的Windows路徑表示(在$HOME/.wine/dosdevices目錄中以符號(hào)鏈接的形式保存了合法的路徑映射(從虛擬Windows盤符到本地Linux路徑))。這里就涉及一個(gè)Linux路徑到Windows路徑的映射,為了簡(jiǎn)化映射邏輯和方便使用,wine只允許進(jìn)行磁盤分區(qū)級(jí)別的映射,即將某個(gè)Linux目錄映射為一個(gè)虛擬Windows分區(qū),由此訪問該Linux目錄下的目錄和文件在wine中就完全等效于訪問該虛擬Windows分區(qū)下的目錄和文件。默認(rèn)情況wine只為我們將“$HOME/.wine/driver_c”配置為虛擬的C盤,因此只有“$HOME/.wine/driver_c”下的文件才有合法的Windows路徑,才能改被wine成功加載并運(yùn)行。 解決方法: 本質(zhì)上是讓所運(yùn)行的exe文件具有合法的能夠被wine識(shí)別的Windows路徑映射。 法1: 把需要運(yùn)行的exe程序放置在$HOME/.wine/driver_c下的某個(gè)位置。 法2: 為L(zhǎng)inux中放置exe程序的目錄(或其某個(gè)上級(jí)目錄)配置路徑映射。 配置方法有二: 2.1修改$HOME/.wine/dosdevices/下的空白符號(hào)鏈接文件,讓其中某一個(gè)鏈接文件指向需要的路徑。 或 2.2使用winecfg在圖形界面中配置location部分。值得一提的是:有一個(gè)auto detection功能,它會(huì)自動(dòng)提取磁盤分區(qū)信息并為各個(gè)分區(qū)所對(duì)應(yīng)的Linux掛載點(diǎn)生成一個(gè)對(duì)應(yīng)的Windows盤符(就類似Windows的一個(gè)物理分區(qū)對(duì)應(yīng)一個(gè)盤符的顯示方式,只是C盤不同了)。 原載于http://blog.csdn.net/yanxiangtianji 轉(zhuǎn)載請(qǐng)注明出處 |
|