之前在VirtualBox虚拟机上安装好ubuntu 16之后,下载搜狗拼音输入法linux安装包直接安装,结果失败了。以后开机就出现如图1所示的错误提示:
sudo apt-get install -f
命令并重启之后就解决了开机后一直出现的那个红色圆圈中横着一条白线类似警告的提示符。在ubuntu终端man了一下,该条命令据说可以修复软件安装过程中依赖关系问题。
输入法相关内容介绍(以下内容摘自参考资料1),输入法从底层到上层可以简单的分为三类:
1. 输入法框架
输入法框架是作为处理输入法引擎处理后的用户输入数据,最终要显示输入结果的图形(GNOME,KDE)或命令行环境(X11,Console)以及各类应用程序间的通信的中心而存在的。常见的输入法框架有苏哲先生的 scim,黄鹏先生、日本人 Takao Fujiwara 的 ibus 以及 22 岁的开发者翁学天(老 K,KDE 的 K)的 fcitx(最早是鱼王的,现在鱼王还在,只是脱离的主要贡献者的角色)和不入流的小小啊,gcin/hime 等等。目前比较常见的通信协议是自定义的 dbus 协议。
输入法框架复杂就复杂在它要处理与几乎所有应用程序的通信,除非这个应用程序上一个输入框没有。而且它是 CJK 用户唯一直接面对的系统程序,甚至比诸如音乐播放器 Amarok 什么的重要得多。没有输入法,这个操作系统再好,对你来说,也是个坏的操作系统。
另外一个复杂之处在于输入法需要提供几乎所有桌面环境下原生的界面。对,输入法框架的开发者不开发输入法引擎,但是他需要提供最底层,和最上层。但是,第一,输入法框架的作者是有桌面环境倾向的,一个人不可能日常既用 GNOME,又用 KDE,只有小白才会这么朝秦暮楚,读这篇介绍的都是开发者,你们自然懂; 第二,几乎所有的上游桌面环境在开发时都很少考虑输入法的兼容问题,至于集成,考虑不来。人的时间精力有限,作为用户可以要求输入法作者既开发输入法,又积极参与各类桌面环境的底层开发,作为开发者,这么说话应该掌嘴。因此输入法 bug 多可以理解,而且其中大多数的 bug 直接来自于最上层的输入法界面,大多数输入法界面的 bug 直接来自于上游的桌面环境。
第三个复杂之处在于输入法框架作为一个通信中心,需要有信可通。由于第二个复杂之处,目前输入法作者是自己去找信来通。这就存在着兼容问题。这是产生输入法框架的 bug 的一个来源。一个理想的输入环境是应用程序反馈给输入法一些信息供输入法处理,但目前几乎所有的图形环境/桌面环境/应用程序都没有提供这样的信息。
第四个复杂之处在于输入法框架没有一个标准的协议。目前使用的 dbus 协议都是输入法作者个人开发,不能在输入法框架之间兼容。但要求一个标准的协议有点强人所难。第一,我们是自由世界; 第二,输入法的完成度和历史不同,比如 scim 和 gcin 是第一古老,fcitx 是第二(后来有重写),ibus 是第三。他们有的使用了 dbus,有的可能没有。在这里用 Windows 的思维去考虑问题是不对的,因为 Windows 只有一个微软提供的输入法框架,所谓搜狗输入法,谷歌输入法,都是输入法引擎和输入法界面。甚至 Windows 和 Linux 的输入法开发者需要提供的东西都不一样。
2. 输入法引擎
输入法引擎主要是用来处理比如输入连续的拼音,如何把它们切分成不同的字和词组这样的认字和断句的任务的程序。这点中文和西文很大不同,因为西文的是几乎不存在字这个概念的(26 个英文字母严格来说不是字,因为它们本身并无意义,而“说文解字”这样的书中,每一个方块字都有自己的出处和意思,这才是真正意义上的字),它们的句子只有词,而词和词之间是通过空格来划分的。而中文首先认字就是一个很大困难,存在五笔、拼音、区位等多种输入和认识字的方法,存在很多选择和冗余(因为大部分时候你只需要一个特定的字)。词组的划分又有比如两维、三维、多维等等各种语言和语义模型。
3. 输入法界面
输入法界面是被最终用户直观感受到的图形界面。在 Linux 世界就是 ibus 的 gtk 界面,和 gnome-shell 外挂,以及 fcitx 的 gtk 界面和 kcm-fcitx 模块。它们和其他 gtk/kde 程序一样,本身就是一个 gtk/kde 程序。在 Windows 世界就是所谓的搜狗拼音、百度拼音等等。
输入法界面分为两部分。一部分叫做输入面板,主要用来显示拼音/五笔和候选词,一部分叫做配置页面,主要用来显示与输入法框架/引擎相关(不是每个输入法框架都有针对框架的配置选项)的配置选项。输入面板和配置页面与输入法框架本身的联系都不是很紧密,因此可以由外部程序来提供。比如 ibus 可以使用 kde playground 中的 kimpanel 或者 opendesktop.org 的 kimtoy 实现 kde 的输入面板或 qt 的输入面板,上面两个都是独立的 dbus 通信程序,监听输入法框架通过专有 dbus 协议传递的信号并做出反应。再比如 fcitx 的 kde 配置页面是在 kde 个人中心里面,这是更像是一个独立的 kde 模块而不是一个输入法模块。但是这都是传统意义上的输入法界面。因为输入法框架仍然是在主程序中提供一个图形界面的,比如 ibus 的 pygtk 和 fcitx 默认的 c。
Fcitx(Flexible Context-aware Input Tool with eXtension support or Free Chinese Input Toy for X)是一种输入法框架。linux下的搜狗输入法是基于这种框架的。基于以上内容可以知道linux下搜狗输入法只需要安装相应的软件包以及fcitx源即可。
注意:因为搜狗输入法是基于fcitx框架的,因此在安装之前要保证键盘输入法系统(Keyboard input method system)是fcitx。如果要安装的相应输入法是基于其它框架,比如iBus,则应该保证键盘输入法系统(Keyboard input method system)时iBus。如图2所示:
搜狗输入法的安装
1. 安装搜狗输入法安装包
首先将当前目录(cd命令)定位到搜狗输入法安装包(*****.deb)所在目录,然后使用命令:dpkg -i q.deb安装即可(这里我把下载的安装包的名字改成q.deb,不然名字太长了麻烦。还有这里是安装离线包不是在线安装所以使用dpkg命令而不是apt-get或者apt命令,这些命令的细节可以去man一下)。我的电脑上没有安装fictx相关内容,所以出现如图3所示的不满足依赖关系的错误提示。
2.相关依赖关系修复
有的博客上说提示缺什么就安装什么,但是由于依赖关系可能比较复杂,有时可能你安装了这个它又提示缺少了那个。所以我这里直接使用下面的命令满足所有依赖关系:
sudo apt-get install -f
之后就安装好了,如图4所示:
相关问题
有时候初次安装(以前没安装过)完之后,桌面右上角依然找不到搜狗输入法的图标,这时可能需要进行一个添加步骤。点击桌面右上角的键盘图标–>configure,出现如图5所示界面.
参考资料:
1.http://blog.csdn.net/hankaibo/article/details/8143914
2. http://blog.topspeedsnail.com/archives/6955
3. http://www.cnblogs.com/hupeng1234/p/6956645.html
4. https://github.com/FZUG/repo/wiki/Sogou-Pinyin-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98