您的位置:首页 > 其它

gentoo安装的点点滴滴(七)

2014-06-18 20:23 253 查看
1. 今天升级youcompleteme插件出现了很多问题,现在将解决的方法记录下:

错误一:

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR
GTEST_MAIN_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake/Modules/FindGTest.cmake:150 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
ycm/tests/CMakeLists.txt:33 (find_package)


google了半天没有结果,还上gentoo论坛上问了,也没有结果。思来想去,就去检查下ebuid的文件,惊奇的发现下面的依赖关系

DEPEND="
${COMMON_DEPEND}
test? (
>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
>=dev-python/nose-1.3.0[${PYTHON_USEDEP}]
dev-cpp/gmock
dev-cpp/gtest
)
"
看到gtest,上面的错误多次出现gtest。再emerge -s gtest,果然是没有安装这个软件引起的。安装后再安装youcompleteme出现另外一个错误与gmock有关,于是乎将depend的里面的软件都安装下。

再安装youcomplete时,差不多快成功了,编译到91%的时候又来个错误,有点坑啊!!错误是说'Test::WhenSorted' is not in the scope。这次google有效果了,看到whesorted与gmock有关,不是已经安装gmock了,怎么还会和这个有关呢?再联想下是不是安装的版本不够新,再次安装gmock最新版本,最后终于通过了91%了,安装成功。

2. 固定当前的内核版本,当升级系统的时候不升级内核,可以用下面的命令来实现:(经过测试不给力,直接将sys-kernel/gentoo-sources写入到package.mask就可以)

echo ">sys-kernel/gentoo-sources-3.12.20" >> /etc/portage/package.mask
echo "=sys-kernel/gentoo-sources-3.12.20" >> /etc/portage/package.unmask


3. 更新layman里面的ebuild的命令如下:

sudo layman -s gentoo-zh
最后面是layman的名字。

4. gentoo连接nexus7安装mtpfs,还不行,要安装新版本的go-mtpfs才可以连接。参考wiki:http://wiki.gentoo.org/wiki/MTP

root #
emerge
--ask go-mtpfs

Configuration

Your user needs to be in the "plugdev" group:

root #
gpasswd
-a YOUR_USER plugdev

Usage

mount:

user $
mkdir
~/AndroidDevice

user $
go-mtpfs
~/AndroidDevice &


Note: If you don't run go-mtpfs in the background (with & at the end), you will need another console to browse the device and to unmount it.

unmount:

user $
fusermount
-u ~/AndroidDevice


When you unmount the device, go-mtpfs will quit.

5. gentoo添加打印机的方法:

最近有一台佳能iR3235打印机要添加到自己的gentoo打印机上。先找到相应的驱动,佳能的UFR驱动:

emerge -av cndrvcups-lb
gentoo自带cups打印机管理服务,先启动这个服务:

beyond@beyond ~ $ sudo /etc/init.d/cupsd start


然后在浏览器打开http://localhost:631/,里面有添加打印机,要输入用户名与密码。这个要输入root的密码,再选择iR3235就可以了。

最后安装一个gtklp这个是CUPS比如打印进度、进程管理之类的GUI前端,可以直接由这个管理。



6. 重新更新了系统了,会出现一些32位软件的gtk的icon不能显示。比如adobe reader。google了好久,也试了好多方法,最后得到的结论是重新安装下面的软件就可以了。

sudo emerge -av emul-linux-x86-gtklibs


7. 上次全面更新系统后,出现了一个奇怪的问题。如下图所示:



没有菜单栏了,还有一些程序也是这样。因为是全面更新,所以肯定是哪个软件的版本太高了,或者删除了某个软件才会导致成这样。

先找nm-applet这个软件,我的桌面是xfce的,nm-applet是gnome的。所以在/var/log/emerge.log中刚才更新的软件中找gnome相关的。

1. 找到了一个gnome-base,先降级,没有反应。还是原来一样的问题

2. 再找相关gtk的,找到一个gtk-engine的,先降级,也没有反应。

3. 快崩溃了,想不到好方法啊。 后来想到了zenity,打开后也是一样的没有菜单。难道nm-applet是调用了zenity,于是将zenity降级,问题一样存在。无语中,直接将其删除,结果用-c还真能删除,没有依赖关系,原来nm-applet不是调用zenity这个。

4. 那这样来就是找zenity的原理,看他调用了什么库。google了下zenity可以调出gtk+ dialog。想想应该和gtk+库有关,直接emerge -s gtk+出来,再看看/var/log/emerge.log中的gtk+还真升级了。

5. 因为ubuntu中也有zenity看看ubuntu的都能调出菜单栏,不科学啊!再看看ubuntu中的gtk+库,用命令dpkg -l libgtk*,这个gtk+是3.10(ubuntu 14.04下面),而我升级的是gtk+3.12

6. 问题大概找到了吧,原来就是这个gtk+版本出问题了。直接降级吧,问题又来了,满足不了依赖,gtkmm3.12要依赖gtk+3.12,直接删除gtkmm3.12。问题又来了,gnome-blutooth要依赖>=gtk+3.11,平时也不用bluetooth就直接卸装了。可是还不能随便删除啊,nm-applet依赖于gnome-bluetooth,原来在编译nm-applet时选择use=bluetooth时会安装gnomeblutooth。

7. 直接重新编译nm-applet,加-bluetooth的use。再删除gnome-bluetooth,最后安装gtk+3.10。终于出现了,如下图



8. 上面的问题解决了,又出现了新的问题,我的wireshark打不开了,出现了下面的问题:

beyond@beyond ~ $ wireshark

(wireshark:10964): GLib-GIO-CRITICAL **: g_loadable_icon_load: assertion 'G_IS_LOADABLE_ICON (icon)' failed

(wireshark:10964): Gtk-WARNING **: Error loading theme icon 'gtk-select-color' for stock: 图标加载失败

(wireshark:10964): Gtk-CRITICAL **: render_fallback_image: assertion 'pixbuf != NULL' failed

(wireshark:10964): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(wireshark:10964): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(wireshark:10964): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(wireshark:10964): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
**
Gdk:ERROR:gdkcairo.c:193:gdk_cairo_surface_paint_pixbuf: assertion failed: (cairo_image_surface_get_format (surface) == CAIRO_FORMAT_RGB24 || cairo_image_surface_get_format (surface) == CAIRO_FORMAT_ARGB32)
已放弃


这样又把gtk升级到3.12这个问题就没有了,看来是这个gtk3.12出问题了啊!!!最后编译wireshark时选择gtk2,去除gtk3就可以了。如果选择gtk3的话就要用gtk3.12才不会出现上面的wireshark问题,但是选gtk3.12又会出现第7个问题,没有标题栏的问题。折中只能选择gtk2编译wireshark了。

9. fcitx出问题了,一直不能激活,找了好久的原因,都不知道为什么。后来在网上看到有人说直接到~/.config/fcitx下全部删除,就可以了。可能是以前的配置出问题了,又找不出来,这就是最好的方法了。之后就好了。呵呵
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: