Package xproto , required by xau , not found

前面有一個博客介紹 opencv的編譯,然後發現雖然編譯通過,其實並不完美,比如沒有gtk支持。
其實我的電腦上是安裝了gtk庫的,但是在尋找gtk的時候,報錯:

Package 'xproto', required by 'xau', not found

什麼情況,我百度這個錯誤,各自感覺看不懂,重要的是沒有說修復過程,

$ sudo apt install libxproto-dev xproto

然後發現這個東東,並沒有發現什麼,伸手黨倒騰崩潰。

然後只有找源碼了,好在在github上找到了。

運行下面命令:

$ git clone https://github.com/freedesktop/xorg-xproto.git
cd xorg-xproto && ./autogen.sh && sudo make install && cd ..

然後問題就解決了,不過還有:

Package 'renderproto', required by 'xrender', not found

這還沒有完:

Package 'kbproto', required by 'x11', not found
Package 'xextproto', required by 'xext', not found
Package 'xineramaproto', required by 'xinerama', not found
Package 'inputproto', required by 'xi', not found
Package 'fixesproto', required by 'xfixes', not found
Package 'randrproto', required by 'xrandr', not found
Package 'compositeproto', required by 'xcomposite', not found
Package 'damageproto', required by 'xdamage', not found

看到了吧,這是讓人崩潰,而且這些錯誤是一個一個的來的,並不知道下一個錯誤是啥,就等着,不過好在現在都知道了。

寫一個腳本完事:

git_package="xproto renderproto kbproto xextproto xineramaproto inputproto fixesproto randrproto compositeproto damageproto"
for i in  $git_package;  
do  
echo 下載 $i ... 
git clone https://github.com/freedesktop/xorg-$i.git >> download-$i.txt 2>&1 
# git clone https://github.com/freedesktop/xorg-xproto.git

echo 安裝 $i ... 
cd xorg-$i && ./autogen.sh >>../install-$i.txt 2>&1  && sudo make install >>../install-$i.txt 2>&1   && cd .. 
done  

將上面代碼複製到 install_proto.sh 文件中,然後bash 運行,直接自動安裝。

最後得到的效果是總算gtk能正常使用了:

-- Checking for module 'gtk+-3.0'
--   Found gtk+-3.0, version 3.18.9

git項目地址居然神祕消失,讓人尷尬,跟新一波腳本

import os 

p_down_dir = 'p_down'
p_urls = ['http://distfiles.macports.org/xorg-xproto/xproto-7.0.31.tar.bz2',
'http://distfiles.macports.org/xorg-renderproto/renderproto-0.11.1.tar.bz2',
'http://distfiles.macports.org/xorg-kbproto/kbproto-1.0.7.tar.bz2',
'http://distfiles.macports.org/xorg-xextproto/xextproto-7.3.0.tar.bz2',
'http://distfiles.macports.org/xorg-xineramaproto/xineramaproto-1.2.1.tar.bz2',
'http://distfiles.macports.org/xorg-inputproto/inputproto-2.3.2.tar.bz2',
'http://distfiles.macports.org/xorg-fixesproto/fixesproto-5.0.tar.bz2',
'http://distfiles.macports.org/xorg-randrproto/randrproto-1.5.0.tar.bz2',
'http://distfiles.macports.org/xorg-compositeproto/compositeproto-0.4.2.tar.bz2',
'http://distfiles.macports.org/xorg-damageproto/damageproto-1.2.1.tar.bz2']

if not os.path.exists(p_down_dir):
    os.makedirs(p_down_dir)

os.chdir(p_down_dir)

for url in p_urls:
    filename = os.path.basename(url)
    os.system('wget '+url+' -O '+filename)
    os.system('tar xf '+filename)
    pro_name = filename[:-8]
    os.chdir(pro_name)
    if os.path.exists('configure'):
        ret = os.system('./configure >>../install-%s.txt 2>&1' % (filename))
    elif os.path.exists('autogen.sh'):
        ret = os.system('./autogen.sh >>../install-%s.txt 2>&1' % (filename))
    else:
        print('cant config project:', pro_name)
        continue
    print('[%s]build1: ' % pro_name, ret)
    ret = os.system('sudo make install >>../install-%s.txt 2>&1' % (filename))
    print('[%s]build2: ' % pro_name, ret)
    os.chdir('..')

運行後像這樣的就正常:

--2020-05-20 18:20:31--  http://distfiles.macports.org/xorg-damageproto/damageproto-1.2.1.tar.bz2
Resolving distfiles.macports.org (distfiles.macports.org)... 23.111.9.35
Connecting to distfiles.macports.org (distfiles.macports.org)|23.111.9.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 98392 (96K) [application/x-bzip2]
Saving to: ‘damageproto-1.2.1.tar.bz2’

damageproto-1.2.1.tar.bz2          100%[=============================================================>]  96.09K   116KB/s    in 0.8s    

2020-05-20 18:20:32 (116 KB/s) - ‘damageproto-1.2.1.tar.bz2’ saved [98392/98392]

[damageproto-1.2.1]build1:  0
[damageproto-1.2.1]build2:  0

第一個build1:是項目構建,0狀態表示正常
第二個build2: 是項目編譯,0狀態表示正常

如果不是0,大家看 p_down 下對應項目的 install-*.txt 日誌文件。根據錯誤在百度上查查,然後做相應處理。


完成一個坑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章