制作deb安装包遇到的两个问题

制作deb安装包遇到的两个问题

Ubuntu软件中心在安装deb软件时,对一些细节的检查比Debian要严格一些。例如,我们的软件安装包在Debian系统安装时不会提示错误,而在Ubuntu系统中则会提示错误。当然,用户可以选择忽略这些告警提示并继续安装过程,但这样始终观感不佳,因此在网上搜了一下(感谢google,鄙视百度和bing)解决方法,希望能帮到有类似问题的朋友。

E: … maintainer-name-missing

这个错误最初让人感觉困惑,因为在control文件中是设置了maintainer字段的:

Maintainer: iloveu@myvoipapp.com

查到了Debian的资料,要求Maintainer字段的内容遵循RFC822规范,只写一个email地址是不对的。标准格式应当是“用户名”+email地址,例如以下格式:

Maintainer: MYVOIPAPP <iloveu@myvoipapp.com>

E: … wrong-file-owner-uid-or-gid

这个错误很容易理解,就是用户的系统中没有安装包文件的用户ID和组ID。例如,制作deb安装包的用户是John,而用户系统中没有“John”用户,则会提示这个错误。解决方法有多种,例如在制作deb安装包时切换到root用户,或者post-script中重置相关文件的用户ID和组ID等。

这些方式都有些繁琐,最简单的方式是制作deb包时使用fakeroot命令。在dpkg-deb命令前添加fakeroot即可:

fakeroot dpkg-deb -b ......
pure-ftp over TLS

pure-ftp over TLS

最近查看log,感觉有些无聊人士尝试干扰或者攻击FTP服务器,因此有必要将FTP服务修改为加密方式。最简单的方法就是采用TLS进行传输(即FTPS),确保传输过程是加密的。

目前系统为Debian7,已部署pureFTPd作为FTP服务器。打开TLS支持方法比较简单,请参考pureFTP over TLS文档。主要步骤如下(假定pureFTPd已经部署):

步骤1:打开pureFTP的TLS支持

执行命令:

echo 1 > /etc/pure-ftpd/conf/TLS

设置TLS为1,运行采用overTLS以及普通不加密方式。如果要求必须使用TLS加密方式,则应设置TLS为2。实际部署中,建议设置为2。

步骤2:创建TLS加密密钥

使用openssl创建即可:

openssl req -x509 -nodes -days 7200 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

会提示各项信息输入,照着填写即可。同时,修改pem文件的属性:

chmod 600 /etc/ssl/private/pure-ftpd.pem

完成上述配置后,重启pureFTPd即可:

service pure-ftpd restart

步骤3:FileZilla采用显式加密

在FileZilla的站点管理配置中,“通用 – 加密”项必须配置为“要求显式的FTP over TLS”,如附图所示即可。

FTP over TLS
配置FileZilla采用FTP over TLS
Kubuntu/Ubuntu 15.10

Kubuntu/Ubuntu 15.10

15.10发布了!花了一下午的时间,将移动硬盘里的Kubuntu 15.04顺利地升级到15.10。整体上看,变化不大。图标有一些变化,与15.04相比,略微显得更灰暗一些,不过总体上也更和谐。

值得注意的是,升级过程中发现了大量的Wayland包,不知道是默认已经切换到Wayland,还是说只是内置了一个可选项。

简单地测试了一下,感觉和15.04差别不大,“微风”风格的界面还是很不错,扁平化设计我个人很喜欢,也有朋友觉得不顺眼。不知道稳定性是否有提高?15.04版本稳定性有点问题,经常会遇到crash的情况,希望15.10能有改善。

kubuntu15.10桌面
kubuntu15.10桌面
退休

退休

这个国庆有点意思,初中同学聚会、高中同学聚会、大学同学回母校聚会,而我居然都没有参加。感谢微信,的确是个好东西,很多已经失去联系的朋友通过微信又重现联系在一起了。

初中同学曲曲折折地联系到我,把我加入初中群,我才惊觉时间居然已经这么久,已经25年了!连名字都已经忘记,许多面孔已经完全认不出来(当然,有很多和我一样已经变形了)。群里各种晒照、各种秀,同学们在老家过得很欢乐,感觉很陌生,似乎和自己是平行线。

而最让我激动的是,居然联系到初中同桌!一眼就认出了她的照片,依稀还是当年的模样。微信上简单地聊了聊,感叹真是沧海桑田。而让我感到震惊的是:当年的小姑娘现在已创业成功,退休了!现在整天琢磨着美食、烘培之类的东西。。。

天啊,我的天啊!退休!当这个词砸到我面前的时候,我承认我几乎被吓到了。弯腰码代码的时候,从来没想过这个词,更从来没想过这种生活,我是不是努力不够?还需要更努力一些才行?

virtualbox无法启动虚拟机

virtualbox无法启动虚拟机

前几天系统升级到win10,初步体验了一下,感觉不如win7,不过已经升了,也就算了。但是比较闹心的是,virtualbox无法启动虚拟机了!vbox中共创建了两个虚拟机,分别是Debian7(32bit)和Debian7(64bit),都无法启动,一启动就报错:VERR_VM_DRIVER_VERSION_MISMATCH。

在网上查了很久,并重新装了vbox的4.x版本和最新的5.x版本,问题始终存在,一度误解为win10的问题。今天无意中发现vbox安装目录下有driver目录,考虑到出错提示的信息隐约和驱动有关,因此试试安装了其中的驱动,问题居然就好了! 安装文件为以下文件(视vbox具体安装目录而异),右键点击文件,然后点击“安装”即可:

D:\Program Files\Oracle\VirtualBox\drivers\vboxdrv\VBoxDrv.inf

回顾问题,究其原因可能在于win10是升级,而不是全新安装,因此残留了vbox以前的一些配置,而这些信息在两个系统中又是不一致的。vbox自身也有问题,删除旧版本时显然没删干净,至少旧的驱动程序保留下来了。

python的小坑:%u

python的小坑:%u

最近在开发过程中,有一小处代码需要将一个无符号32位整数转成字符串,于是想当然地按照C格式化的方法,采用了类似写法:

print "a=%u"%-1

本来预期是输出内容为:

a=4294967295

实际结果并没有转化为无符号整数,仍然采用了有符号整数方式:

a=-1

作为一名C/C++程序员,对这个结果自然感到惊讶。很显然,python把%u和%d等同起来了。于是搜了一下python的文档,在字符串格式化章节中有这样的描述:

%u Obsolete type – it is identical to 'd'.

根据这文档中的内容,又进一步找到了PEP-0237,其中又强调了这点:

this means that '%u' becomes an alias for '%d'.  It will eventually be removed.

虽然不是很理解为什么采取这种做法,但是很明显,在python代码中不应该再使用%u了,这个格式转换完全等同于%d,而且在后续的版本中有可能会被删除掉。

在空闲之余,又挖了一下python的代码,的确也反应了上述各项说明:

  • PyString_Format 函数中,’iduoxX’都按照 PyInt 处理;
  • 接着在 formatint 函数中,明确进行以下转换:
  • if (x < 0 && type == 'u') { 
        type = 'd'; 
    }
推荐一个MSC小工具:mscgen

推荐一个MSC小工具:mscgen

在通信设计中经常需要使用消息序列图(MSC),目前市面上有很多画MSC图的工具,例如UML工具,例如我们自己的一个小工具等等。这些工具都是图形画的工具,而现在要推荐的是mscgen:一个用文字描述然后产生MSC图的工具,能生成SVG、PNG等多种格式。

从该工具网站提供的描述看,语法很简单,很有意思,精确地抓住了MSC图的本质,朴实而实用,非常值得大家尝试使用。

在日本创业

在日本创业

在网上闲逛看到的一篇blog,很有意思。是繁体中文,作者是一位在日本创业的华侨朋友,有亚马逊、微软等公司的工作经验,创业方向居然是制作小人偶(这似乎是日本的流行文化?)。于我心有戚戚焉的是他的创业历程和感悟,分享链接如下:

华侨朋友在日本创业

新闻里的香港法制

新闻里的香港法制

这个是香港大学学生“暴力包围校委会。。。推倒及造成校务委员受伤,又阻止伤者送院。。。”,结果是:除了“谴责”就别无其他维护法治和秩序的法律行动。新闻链接如下:

http://news.sina.com.cn/c/2015-08-03/060532168658.shtml?cre=sinapc&mod=g&loc=39&r=u&rfunc=5

另外一个是大陆人在机场与工作人员冲突,结果是:6被告被控9项罪名,即时监禁9至11天。新闻链接如下:

http://news.sina.com.cn/c/2015-07-30/023932159223.shtml

结论:香港的所谓法制现在基本只适用于大陆人,在大陆人身上特别容易显示“严格的法治”。而对香港成年人而言,禁锢他人、打伤他人甚至阻止伤者送院,不用承担任何法律责任。

哦,或者还可以给香港法治留点遮羞布:香港的大学生都不是成年人,不在法律管辖范围之内,而其他非学生的香港成年人可能还是能适用香港法律的。