Building the Coming Soon

关于

HFLS aka the Akademia 12′, then NJUST 16′, now HKU.

学习

APT-GET“Couldn’t create temporary file for passing config to apt-key”问题解决

08/18/2017

今天Kaijia登上一台万年没动的服务器,跑了一下APT更新,遇到了一个最有意思的问题:

Err:4 http://ftp.debian.org/debian stretch Release.gpg
Couldn’t create temporary file /tmp/apt.conf.aBDdBI for passing config to apt-key

不同于以往理论上APT服务器离线、Key过期出错等情况,这次的问题是无法将配置文件传递给apt-key

简单查阅了一下资料,显示apt-key等等实际上并不是直接使用/etc/apt/apt.conf配置文件,而是每次执行操作的时候将配置文件复制到临时文件夹下(以做一些修改等等)。虽然apt-get需要Root权限才能执行,但执行过程中的子任务,例如调用apt-key时,是交给_apt这一用户完成的。所以实际上问题很简单,既是目录对_apt用户缺少了权限,因此无法创建临时的apt.conf文件。

阅读更多

邮件日志中的“UGFzc3dvcmQ6”详解

08/11/2017

今天邮箱服务器又报了内存不足,Kaijia思考平常也并没有什么使用量,肯定是有外部因素,看了一下/var/log/mail.log日志,办天内出现了30万条错误类似如下的错误:

Aug 11 16:08:14 mta postfix/smtpd[1650]: connect from unknown[IP]
Aug 11 16:08:21 mta postfix/smtpd[1593]: warning: unknown[IP]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Aug 11 16:08:21 mta postfix/smtpd[1593]: lost connection after AUTH from unknown[IP]
Aug 11 16:08:21 mta postfix/smtpd[1593]: disconnect from unknown[IP] ehlo=1 auth=0/1 commands=1/2

阅读更多

阿里云旧系列实例迁移后无网络问题解决

07/27/2017

昨天收到阿里云的通知,Kaijia一台青岛机房2年半前创建的阿里云实例(可用区B)需要迁移到新的物理机上(即从两三年前最早的系列I升级到现在的系列III)。毕竟是性能升级,于是Kaijia很高兴得预约了吃螃蟹,结果升级完成了之后,实例就无法再次连接上了。

Kaijia从管理面板终端登录,发现执行ifconfig并无原有的eth0eth1,而手动激活网卡时则会出现错误:

# ifup -v eth0
cannot find device “eth0”

阅读更多

Linux系统快速重新激活触摸板解决假死失灵问题

07/26/2017

接着Kaijia上一篇文章处理XPS 13触摸板假死失灵的问题,在停用了相关驱动后,触摸板仍然时常发生假死失灵。然而,Kaijia也意识到,每次问题出现时,只要重启触摸板又会恢复正常使用。因此,按照Dell论坛用户tjotx共享的信息,另外一个缓解此问题的重要思路便是当每次触摸板假死时,利用键盘上的快捷键自动重新激活触摸板

阅读更多

Linux系统下XPS 13触摸板假死失灵和漂移问题部分解决方案

07/26/2017

Dell XPS 13系列自9343以来的设计堪称经典,但毕竟是超薄机型,对电路设计的要求等原因导致一直以来XPS 13都伴有着各种稀奇古怪的硬件问题。其中之一便是Kaijia使用一年以来经常碰到的触摸板假死/光标漂移问题。重复此问题需要满足几个条件:1、XPS未充电;2、XPS未放平(例如放在教室的折叠式桌板上);3、XPS使用超过5分钟(且略烫);4、手指有汗渍。此时触摸板非常容易偶发假死——手指在移动触摸板上移动但光标却无响应,换用其他手指或按下触摸板左键移动时则可正常响应——或光标在移动过程中上下漂移。Kaijia与内地和香港的戴尔技术支持均有联系,但都无法测定该问题的原因(因为重复实验相当困难)。

阅读更多

文本蕴含识别的概念性流程

07/20/2017

Kaijia可以保证中文互联网上没有几个人在写自然语言处理的底层概念,这一领域的主要知识来源自然是学术论文及著作。写这个总结性文章的目的主要是作为笔记,同时Kaijia也希望可以帮助到正在GitHub上阅读文本蕴含识别系统代码的程序员。

文本蕴含系统(RTE)设计目的是识别文本T(Text,即在通常应用中的语料)与假设H(Hypnosis,通常即指提问)之间的关系。如果可以从文本T中推理出假设H,即代表文本T蕴含假设H。例如文本T为“Kaijia昨天购买了一台手机”,需要推定的假设H则可能是“Kaijia拥有一台手机”。

阅读更多

Ubuntu 16.04 HWE内核安装Xtables-addons

05/30/2017

Ubuntu长期支持版的HWE(硬件加强)是快速升级Linux内核的便捷方法,目前Ubuntu 16.04的HWE提供了4.8(linux-generic-hwe-16.04)和4.10(linux-generic-hwe-16.04-edge)两个内核版本。

通常为了采用新的或改进的技术,例如TCP_BBR和更新的KVM等等,Kaijia会将服务器升级到最新的HWE。然而HWE内核通常也会带来一个衍生问题——仅Linux内核获得了升级,动态内核模块(DKMS)等组件在APT仓库中均停留在原先的版本上,因此可能会产生不兼容无法通过编译的问题。这次Kaijia遇到的Xtables-addons DKMS无法通过编译就是在升级到HWE内核后产生的:

——————————
Deleting module version: 2.10
completely from the DKMS tree.
——————————
Done.
Loading new xtables-addons-2.10 DKMS files…
Building only for 4.10.0-21-generic
Building initial module for 4.10.0-21-generic
Error! Build of xt_ACCOUNT.ko failed for: 4.10.0-21-generic (x86_64)
Consult the make.log in the build directory
/var/lib/dkms/xtables-addons/2.10/build/ for more information.

阅读更多

FUSE耗尽LXC容器内存问题解决

05/28/2017

大量网络文件协议需要利用FUSE(用户空间文件系统)挂载成本地目录,例如SSHFS、CurlFtpFS、EncFS等。而此挂载过程随着IO和网络请求的产生必然会形成缓存,其中包括FUSE协议本身使用的缓存以及内核缓存。在物理机和硬件虚拟化(Hypervisor)环境下,这些缓存会在内存中体现为cache,内存耗尽时将会自动被挤出,并不会对系统产生影响。但是,在LXC等容器环境下,受限于请求控制,这些缓存并无法被标记为cache,而是标记为正在使用的实际内存,虽然最终内存耗尽时仍会部分被挤出,但对于运维等服务器管理工作来说,会造成不必要的误会。

阅读更多

合并Gettext PO文件

12/11/2016

对于有强迫症的人通常会对翻译错误无法忍耐,尤其是,老外翻译的中文。碰到这种情况时,Kaijia经常会联系软件商更正翻译错误。一般情况下个人开发者都会非常友好得接受Kaijia的翻译建议,然而总有几家中型软件商,通常没有大中华区市场,会拒绝Kaijia的建议,理由基本上是:我们外包的翻译虽然母语不是中文,但他们可是专业翻译。这种情况下,虽然无力吐槽但毕竟是开源软件,Kaijia会选择维护一个自有的译本更新部分错到离谱的翻译,然后重新编译软件。对于只需要修改几处的情况非常合适,每次软件发布更新,只需要重新替换几处译文便可重新编译,但对于大型软件涉及几十或者上百处更正的情况,每次更新时简单的人工替换显然不合适。通常情况下需要将Kaijia现有维护的译文与新版本自带的译文合并。此处合并需要满足两个需求:

  • 新版本自带翻译中新增字段需要进入源翻译文件(PO文件);
  • Kaijia自己修改的翻译需要被保留。

在Gettext环境下,可以通过msgcatmsgmerge(互有区别)两个命令实现这个操作。这两个命令均为Gettext自带的工具,Linux发行版中安装Gettext时会默认安装。语法分别为: 阅读更多

SmartGit“Unsupported system classloader”启动错误解决

12/02/2016

好久一段时间不用SmartGit,上一次使用应该还是在Ubuntu 14.04上(之后IntelliJ IDEA和命令行几乎包揽了日常Git工作),这次Kaijia重新在Ubuntu 16.04系统上安装SmartGit时却遇到了无法启动的窘境。按照往常安装顺序将安装包解压运行之后,Unity启动栏上出现了SmartGit的图标,但之后立即消失了,并且没有弹出载入界面。

Kaijia在命令行中运行了bin/smartgit.sh文件,获得了以下提示:

Unsupported system classloader jdk.internal.loader.ClassLoaders$AppClassLoader@16c0663d

不支持的系统类载入器 jdk.internal.loader.ClassLoaders$AppClassLoader@16c0663d

阅读更多

较旧文章
... 载入更多文章 ...

- 已经载入全部文章 -