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 日志文件。根据错误在百度上查查,然后做相应处理。


完成一个坑。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值