自己编译安装新版GTK+问题?

软件和网站开发以及相关技术探讨
回复
like555
帖子: 9
注册时间: 2013-01-31 14:48
系统: ubuntu12.04

自己编译安装新版GTK+问题?

#1

帖子 like555 » 2013-07-31 14:01

我的系统是 Ubuntu 13.04, 64位的。

ubuntu 13.04 自带的 gedit 文本编辑器,版本 3.6.2,双击打开多个文件时卡卡的,鼠标变成圆圈好久才恢复正常。用着不爽,就想升级它,但是源(我的是中国官方的源)里没有比它新的版本,只能自己下载新本编译安装了。
折腾了许久,终于弄得差不多了,只是还有一些小问题。

以下以我成功安装的顺序说明(不是我实际的安装顺训,实际的安装顺训很麻烦,缺以大堆依赖包,发现一个,搜索一个安装一个,源里没的,还需要自己去找,基本上都是源码,自己编译安装的).

一 . 先安装 GTK+-3.8.2(源里的版本是 GTK+-3.6.2, gedit 3.8.1 依赖的比它高, GTK+-3.8.2是最新稳定版)
1. 安装 GTK+ 依赖包

代码: 全选

$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install gtk-doc-tools
gtk-doc-tools 这个可选,用于构建 GTK+ 文档
2. 去 GTK+ 官网下载 GTK+-3.8.2,解压缩,cd 到 GTK+ 安装包所在目录。

代码: 全选

$ ./configure --prefix=/opt/gtk  --enable-x11-backend --enable-wayland-backend  --enable-gtk-doc
$ make
$ sudo make install[/quote]
--prefix=/opt/gtk 这是官方安装说明文档里用的安装目录,就是因为安装到了 /opt/gtk ,才出现了一些小问题。如果安装到 /usr/local 也许就没了,但可能会有其他问题,GTK+各版本不一样,可能会有不兼容问题。
--enable-x11-backend 这个用于支持 x11
--enable-wayland-backend 这个用于支持 wayland, 我看了一下,官方的 GTK+-3.6.2 都支持了,我也就让它支持了
--enable-gtk-doc 用于构建GTK+文档,依赖前面安装的 gtk-doc-tools 包。
3. 设置 gtk 环境变量

代码: 全选

      CPPFLAGS="-I/opt/gtk/include"
      LDFLAGS="-L/opt/gtk/lib"
      PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig"
      export CPPFLAGS LDFLAGS PKG_CONFIG_PATH

      LD_LIBRARY_PATH="/opt/gtk/lib"
      PATH="/opt/gtk/bin:$PATH"
      export LD_LIBRARY_PATH PATH
我是把以上写入了 ~/.bashrc.
这个 gtk+ 如果安装到了 /usr/local 目录就不用设置这些环境变量了。

gtk 安装后没主题,默认的编译出来的程序很难看,我把 GTK+-3.6.2 的主题都拷贝过去了,能用,没发现问题

代码: 全选

$ sudo cp -r /usr/share/themes/Ambiance /opt/gtk/share/themes/Ambiance
$ sudo cp -r /usr/share/themes/HighContrast /opt/gtk/share/themes/HighContrast
$ sudo cp -r /usr/share/themes/Radiance /opt/gtk/share/themes/Radiance
这个用于支持 ibus

代码: 全选

$ sudo cp /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so /opt/gtk/lib/gtk-3.0/3.0.0/immodules/im-ibus.so
还需要修改 /opt/gtk/lib/gtk-3.0/3.0.0/immodules.cache 这个文件

代码: 全选

sudo gedit /opt/gtk/lib/gtk-3.0/3.0.0/immodules.cache
添加 以下 到这个文件

代码: 全选

"/opt/gtk/lib/gtk-3.0/3.0.0/immodules/im-ibus.so" 
"ibus" "IBus (Intelligent Input Bus)" "ibus" "" "ja:ko:zh:*" 
还有一些模块也没,我也拷过去了,都能用,不拷的话,终端里运行有的程序会报 缺相应的模块

代码: 全选

$ sudo cp -r /usr/lib/x86_64-linux-gnu/gtk-3.0/modules /opt/gtk/lib/gtk-3.0/modules
$ sudo cp -r /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/theming-engines /opt/gtk/lib/gtk-3.0/3.0.0/theming-engines
$ sudo cp -r /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/menuproxies /opt/gtk/lib/gtk-3.0/3.0.0/menuproxies
二 ,安装 gedit 3.8.1

1. 安装 gedit 依赖包

代码: 全选

$ sudo apt-get install libenchant-dev
$ sudo apt-get install libxml++2.6-dev
$ sudo apt-get install libgtksourceview-3.0-dev
$ sudo apt-get install libffi-dev
$ sudo apt-get install gsettings-desktop-schemas-dev
$ sudo apt-get install itstool
$ sudo apt-get install flex bison
以下可选,用于支持 py

代码: 全选

$ sudo apt-get install python-dev
$ sudo apt-get install python3-dev
$ sudo apt-get install python3-cairo-dev
以下包源里没找到,源码编译安装。
1.gobject-introspection-1.36.0.tar
2.pygobject-3.8.2 // 可选,依赖与前面的三个 py 可选包,用于支持 py
3.libpeas-dev
都是去下载源码包,解压缩后 cd 到目录,顺序不能错,有依赖关系。

代码: 全选

$ ./configure
$ make
$ sudo make
2. 去 gedit 官网下载 gedit 3.8.1 最新稳定版。

下载完成后,解压;
cd 到解压目录;

代码: 全选

$ ./configure
$ make
$ sudo make install
我的是成功安装了。

最后说一下遇到的问题吧,安装中的问题许多都自己解决掉了。
现在的问题就是因为把 GTK+ 3.8.2 安装在了 /opt/gtk 目录里了,gtk 的安装目录 bin,etc,include,lib,share 都在 /opt/gtk 目录里了,其中 bin,include,lib 这三个都被加入到了相应的环境变量中了, 而 share 没有。那问题就是凡是用到 /opt/gtk/share 目录里的东西的时候,都找不到。
我查了一下,应该是 XDG_DATA_DIRS 这个环境变量吧。
默认是 XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/
usr/local/share 在里面,这就是如果安装在 /usr/local 目录里应该就不会有这个问题了(但是可能会有其他问题,我没测试)。

怎么把 /opt/gtk/share 加入到 XDG_DATA_DIRS 环境变量里,我试了很多种,都不行,
XDG_DATA_DIRS 这个环境变量不支持相对路径,遇到相对路径会忽略它。
谁知道怎么可以,麻烦回帖告诉我。
Thanks a lot.
yjx_ubuntu
帖子: 1
注册时间: 2013-08-28 15:14
系统: ubuntu 12.04

Re: 自己编译安装新版GTK+问题?

#2

帖子 yjx_ubuntu » 2013-08-29 9:44

你好,你说的问题我也不知道,应该这一块你要比我厉害,
我现在遇到安装GTK+的一些问题,向你请教,
我是直接从http://www.gtk.org/这里下载GTK+ 3.8.2,还有glib-2.36.4那几个,然后一个一个安装,中间页遇到好多问题,幸好都解决了,最后装完了GTK+ 3.8.2,然后我就重启了一些,ubuntu直接就启动不了了,卡在启动的那个界面,就是中间有个ubuntu,下面有5个点那一块,
你知道这是怎么回事么?
我现在可以进到recovery模式里,但那里的几个操作都不能让系统正常启动,
我在想是不是GTK+这个图形库修改了启动项,我的电脑硬件不支持?
你觉得像这类问题应该从哪下手解决呢?希望多多指点啊,
对了,我 先在虚拟机里装的,后来用wubi.exe装的也有这问题,
回复