引言:sogou输入法是市场上最为好用和流行的输入法,最为良心的是还有Linux版本,这让我等Linux人士欢呼雀跃。在新出的Ubuntu 16.04上安装sogou输入法的时候,碰到了一些问题,主要还是依赖包没有正确安装,我们一起来看如何来解决这个问题。
1.环境介绍
Ubuntu 16.04,sogou输入法:sogoupinyin_2.0.0.0078_amd64(http://pinyin.sogou.com/linux/?r=pinyin)
2.问题表现
sudo dpkg -i sogoupinyin_2.0.0.0078_amd64.deb
错误信息如下:
sogoupinyin : Depends: libopencc2 but it is not installable or
libopencc1 but it is not going to be installed
Depends: fcitx-libs (>= 4.2.7) but it is not going to be installed
Depends: fcitx-libs-qt (>= 4.2.7) but it is not going to be installed
Recommends: fonts-droid-fallback but it is not going to be installed or
fonts-droid but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
一看就知道是依赖包存在问题。
3.问题分析
之前在Ubuntu 15.10的版本之时,使用同样的sogou版本,不存在此类的问题。但是在Ubuntu 16.04中,却存在此类问题,说明Ubuntu升级之后,sogou输入法并未做相应的系统兼容性测试,故起最高的Ubuntu支持版本时15.10.
虽然我们知道了问题,但是该如何解决呢?
基于错误信息,我们发现起依赖包有以下几个:libopencc1 libopencc2,fcitx-libs,fcitx-libs-qt font-droid-fallback.
4.试错分析
试错1:
bladestone@bladestone-laptop:~$ sudo apt install fcitx-libs
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
sogoupinyin : Depends: libopencc2 but it is not installable or libopencc1 but it is not going to be installed Depends: fcitx-libs-qt (>= 4.2.7) but it is not going to be installed Recommends: fonts-droid-fallback but it is not going to be installed or fonts-droid but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
试错2:
bladestone@bladestone-laptop:~$ sudo apt install fcitx-libs-qt
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
sogoupinyin : Depends: libopencc2 but it is not installable or libopencc1 but it is not going to be installed Depends: fcitx-libs (>= 4.2.7) but it is not going to be installed Recommends: fonts-droid-fallback but it is not going to be installed or fonts-droid but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
试错3:
bladestone@bladestone-laptop:~$ sudo apt install fcitx-libs-qt fcitx-libs
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
sogoupinyin : Depends: libopencc2 but it is not installable or libopencc1 but it is not going to be installed Recommends: fonts-droid-fallback but it is not going to be installed or fonts-droid but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
试错4:
bladestone@bladestone-laptop:~$ sudo apt install fonts-droid-fallback
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
sogoupinyin : Depends: libopencc2 but it is not installable or libopencc1 but it is not going to be installed Depends: fcitx-libs (>= 4.2.7) but it is not going to be installed Depends: fcitx-libs-qt (>= 4.2.7) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
试错5:
bladestone@bladestone-laptop:~$ sudo apt install libopencc1
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
sogoupinyin : Depends: fcitx-libs (>= 4.2.7) but it is not going to be installed Depends: fcitx-libs-qt (>= 4.2.7) but it is not going to be installed Recommends: fonts-droid-fallback but it is not going to be installed or fonts-droid but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
分析:经过各种尝试,发现依然无法正常解决问题,类库包之间的依赖关系还是非常复杂的。
5.问题解决
5.1.移除sogou输入法,由于其安装不完整
sudo apt remove sogoupinyin
执行过程:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
sogoupinyin
0 upgraded, 0 newly installed, 1 to remove and 43 not upgraded.
1 not fully installed or removed.
After this operation, 42.6 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 214444 files and directories currently installed.)
Removing sogoupinyin (2.0.0.0078) ...
Processing triggers for libglib2.0-0:amd64 (2.48.1-1~ubuntu16.04.1) ...
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) ...
Processing triggers for shared-mime-info (1.5-2ubuntu0.1) ...
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160523-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus (3.13.3-6ubuntu3) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5) ...
Processing triggers for mime-support (3.59ubuntu1) ...
5.2.正确的包安装姿势
sudo apt install libopencc1 fcitx-libs fcitx-libs-qt fonts-droid-fallback
5.3.重新安装sogou输入法
sudo dpkg -i sogoupinyin_2.0.0.0078_amd64.deb
结果一切顺利,没有报类似的错误信息。
6.总结
安装依赖需要一次安装完成,切勿单个安装,主要是由于包之间彼此会有一定的依赖关系,这个是你无法准确定位的,故在一次安装动作中做完。
另外,sogou输入法的Linux版本目前只兼容到Ubunut15.10,请大家彼此周知该情况。