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
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]
--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
这个 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
代码: 全选
$ 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
代码: 全选
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
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
代码: 全选
$ 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
下载完成后,解压;
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.