Browsed by
分类:Linux

日新月异的技术,潮流人士的选择!

Debian 9中安装VirtualBox增强工具

Debian 9中安装VirtualBox增强工具

以前的Debian版本中自带有virtualbox-guest-dkms包,直接安装即可。然而Debian8(?9)后,不知道什么原因这个包不再包含在Debian的库中,因此需要手工编译安装。理论上来说,Debian团队没有必要移除这个包,估计可能是Oracle的政策变化导致的。

步骤稍微有些繁琐,主要参考网上一篇文档进行操作,请猛击此处阅读原文档。

首先是将Debian更新到最新的版本:

apt update
apt upgrade

然后安装编译dkms需要的若干工具和库:

apt install build-essential module-assistant dkms

开始准备编译内核模块:

m-a prepare

点击Vbox的菜单“设备 – 安装增强工具”,会在桌面上生成一个类似cdrom的图标,打开ta并进入terminal窗体,运行以下命令即可:

sh ./VBoxLinuxAdditions.run
升级树莓派系统至 Stretch 版本

升级树莓派系统至 Stretch 版本

Pi 官方的Raspbian版本已经正式升级到 Stretch,即 Debian 9 系统。目前使用的还是 Jessie 版本, 根据官方的指导文档,进行升级,总体是比较平顺的,当然也有一些需要总结和修订。

在升级之前,首先要把源系统更新(update)、升级(upgrade)。

然后修改软件源文件,将 jessie 修改为 stretch,共有两个文件需要修改:

/etc/apt/sources.list
/etc/apt/sources.list.d/raspi.list

修改完成后,直接更新版本即可:

sudo apt-get update
sudo apt-get -y dist-upgrade

更新过程耗时比较长,耐心等待即可。需要注意的是,Stretch 版本中将 MySQL 替换为 MariaDB 了,因此如果是安装了MySQL, 需要重新安装 MariaDB。 好在替换过程似乎也很顺利,如果是深度使用MySQL,建议仔细检查这个替换。

升级完成后,音频库没有必要,可以删掉;另外有个字体库则需要单独安装以支持中文:

sudo apt-get -y purge "pulseaudio*"
sudo apt-get install fonts-droid-fallback

在体验最新版本的过程中,发现 xrdp 无法使用。需要卸载以前的版本,同时重新安装 VNC 软件。

sudo apt-get remove xrdp vnc4server tightvncserver
sudo apt-get purge tightvncserver xrdp
sudo apt-get install -y xrdp vnc4server tightvncserver

在用 Windows 的远程桌面登录时, 也要明确指示采用 Xvnc 而不是 Xorg 。以前的版本倒是没有这么麻烦,不知道是升级导致的问题,还是新版本就有这个问题。

升级后感觉明显快了很多,这有点意外,毕竟硬件没有改变,基础 Debian 系统在效率方面改变似乎也并不很大。

网站启用IPv6应注意的事项

网站启用IPv6应注意的事项

网站支持IPv6的步骤比较简单,基本上目前常用的软件,例如Apache、Postfix、dovecot等,都已经支持IPv4和IPv6双栈,只要服务商的设备提供IPv4和IPv6连接,这些软件本身无需为IPv6做特别配置。

需要注意的是服务商处的DNS配置。如果DNS配置不全面,某些服务器在鉴权时会拒绝接受来自IPv6地址的消息。例如gmail服务器在收到 email 消息时,会鉴定DNS和IPv6地址是否匹配,如果不匹配,则视为垃圾邮件直接拒绝,可以看到如下错误警示:

Our system has detected that this 550-5.7.1 message does not meet IPv6 sending guidelines regarding PTR records 550-5.7.1 and authentication.

下面以Linode中的配置做简单介绍(对DO而言也基本如此)。假设IPv4地址是“1.2.3.4”,IPv6地址是“1:2:3:4::5:6”,域名是“demo.com”。

Reverse DNS

Linode 为每个节点分配的DNS名默认是类似的成员名,例如“1234.members.linode.com”。在 Linux 系统 ping 域名”demo.com”时,首先显示的是”1234.members.linode.com”,然后才是跳转到”demo.com”。某些服务应用会认为是PTR错误。在linode中需要设置“ reverse DNS”记录,将节点的DNS名直接指定为“demo.com”。

具体措施请参考linode的在线文档

如果同时支持IPv4和IPv6,上述文档里指导的操作需要单独操作两次,分别指定IPv4地址和IPv6地址。

MX 记录

另外一个需要注意的是 MX 记录,即邮件服务器记录。如果我们将 MX 记录设置为“mail.demo.com”,那么在DNS的A和AAAA记录中,要分别对“mail.demo.com”设置IPv4和IPv6地址,例如以下DNS记录结果:

mail.demo.com. 300 IN AAAA 1:2:3:4::5:6
mail.demo.com. 300 IN A 1.2.3.4

仅仅指定一个地址,对端有可能以域名和地址不匹配为由拒绝消息请求。

TTL

Linode 默认的TTL是3600秒,建议修改为300秒。TTL 太长太短都不好,要根据自己的实际情况调整,以方便自己网络部署、同时又不增加太多网络负担为准则。

Debian testing

Debian testing

Debian 9的KDE实在太丑,“微风”变成浓郁的乡村风,一股掩盖不住的土气扑面而来。相比之下,“Debian 8 + KDE”完全是珍品。

我觉得自己要被Debian 9的乡村风给窒息了,难道以后都会是这样? 赶紧装上testing版本,滚动到最新的KDE看看……无语了,真丑!丑出天际!

似乎大量的部件都用QML重写了,又耗资源又慢,这是要作死啊,一脸油腻的样子。

Debian testing KDE
Debian testing KDE

2018-01-08 更新:实在忍不住,下载了Neon(user edition)看看最新的KDE5究竟是什么样的。好吧,就是下面这个样子。看来冤枉了Debian,KDE5现在就是这种奔放的乡村风。

KDE5 in Neon
KDE5 in Neon
Neon

Neon

Linux的发行版本有如过江之鲫数不胜数,我已经厌倦了这些发行版。生命很短暂,时间很宝贵,没有必要把时间浪费在各种“碉堡了”的发行版上。作为一名软件开发人员,我觉得严肃对待Debian和Ubuntu已经足够了。

然而最近我尝试了一个新的发行版本:Neon。这是个相对比较新的发行版本,与众不同之处在于:Neon是KDE组织的官方发行版本!作为一名KDE粉丝,听闻居然有KDE官方发行版本,还是很让人激动的。另外一个吊诡之处在于:Neon是基于Ubuntu的版本!同时作为一名Debian/Ubuntu粉丝,当然就更加激动,实在是甚合我意啊!

以往说起KDE,往往想起openSUSE。openSUSE社区也往往自居正统KDE发行版本。KDE 社区居然会选择Ubuntu作为基础版本,这事挺有意思,感觉可能和Kubuntu有点关系。

简单试用了一段时间,非常棒!Neon实在是个短小精干的版本,启动后系统内存占用居然低于500M,该有的都有,不该有的基本都没有,运行很稳定,KDE 桌面效率也很高,完全可以洗刷对KDE的各种误解。

Neon桌面
Neon桌面

Neon,你值得拥有!

Pi3

Pi3

Pi3已经上市一段时间了,由于以前的Pi1一直工作得很好,所以没什么动力改用Pi3。最近有用户和朋友相继推荐,心动之下就入了。

Pi3桌面截图
Pi3桌面截图

Pi3的桌面比Pi1实在是好太多了,进步非常明显。不是传统的KDE或者Gnome,感觉有点像lxde或者openBox,使用起来也很爽。

CPU强大好多,居然可以使用Chromium浏览器上网,而且还比较流畅。CPU强大带来的好处就是编译版本快了。以往出个版本要数个小时,现在一个小时左右就可以了。Pi1的CPU随时跑到100%,而Pi3仅仅20%即可,我很满意。当然,缺点也很明显,CPU温度明显比一代要高很多!幸亏买了两个散热片贴上,然后直接裸奔,即使这样依然感觉烫手。

与一代一样,存储IO是个瓶颈。虽然采用class10,UHS1的microSD卡,编译时还是能很明显感受到读写速度慢带来的影响。我觉得Pi未来的发展要重视这个问题,也许内置SSD可以解决。

软件方面有点差异。Pi3默认情况下没有打开SSH和VNC,无法远程SSH进入或者远程桌面接入。需要运行下述命令允许SSH接入和VNC接入:

sudo raspi-config

奇怪的是默认没有安装VNC服务器,因此还需要单独安装:

sudo apt-get install vnc4server

另外,Pi3的硬件做工明显比Pi1要好很多,是个很不错的选择,值得玩家入手。

2017-10-11更新:观察了这几个月的运行情况,感觉很不满意。Pi3的稳定性比Pi1差多了。以前Pi1能正常运行数月不等的时间,而Pi3基本上隔一两天就死机或者重启,CPU发热太严重。如果稳定工作,可能需要在旁边装个风扇主动散热(这只是推测,没实验过)。总之,比较失望。

2017-11-19更新: 以前的推测应该是对的。这段时间天气变凉,Pi3就可以持续、稳定地运行数个星期,目前还在观察。随着冬天气温会更低,估计Pi3稳定运行是没有问题的。

奇怪的GTK style

奇怪的GTK style

一直愉快地在Debian 7系统使用KDE桌面,最近在一个旧系统(64bits)发现某些Gtk程序,例如FileZilla等,界面没有转化成KDE的oxygen风格,及其原始的Gtk风格实在太丑了。

这个问题有些奇怪,安装、使用过很多Debian的系统,从来没发生过这种奇怪的事情。简单搜索了一下,发现是需要安装对gtk程序的适配引擎,具体命令如下:

sudo apt-get install gtk2-engines-oxygen gtk3-engines-oxygen kde-config-gtk-style

安装完成后,需要退出当前用户再重新进入,或者干脆重启也可以。然后Gtk程序就适配成了KDE的oxygen风格。

不过在Debian 9中,KDE的默认风格改成了“微风”,不知道是否还要再重新适配一下,留待以后验证吧。

Linux系统ssh代理的问题

Linux系统ssh代理的问题

因为需要访问公司远程网络,而考虑到国内特殊的网络环境,通常在windows系统下都是使用putty创建本地socks5代理,在firefox中设置该代理访问internet。

但是在linux下,默认采用以下命令时,居然只能使用socks4代理:

ssh -D 6666 myname@mycompany.com

如果需要使用socks5代理,则需要明确指定本地的IP地址,命令如下:

ssh -D 127.0.0.1:6666 myname@mycompany.com

其实用netstat检查前一个命令的结果,能看到正确绑定了任意地址的6666端口,而后一个命令只是明确绑定在本地循环地址上。两者应该都能成功进行socks5代理才对。

不知道这是ssh的bug,还是firefox的bug? 简单搜索了一下,似乎也没有人提到这点。

WiFi 5G问题

WiFi 5G问题

自从将T430安装上Ubuntu 16.04版本后,一直有个问题:2.4G WiFi网络连接没有问题,5G WiFi则可以连接,但是分配不到IP地址,也就无法真正访问网络。还以为是Ubuntu的驱动有问题,内心里又一次鄙视了Ubuntu。

偶然看到一点Linux的网络知识,可以检查当前的频点。随手查了一下,结果如下:

yxh@t430:~$ iwlist chan
 wlp3s0    32 channels in total; available frequencies :
 Channel 01 : 2.412 GHz
 Channel 02 : 2.417 GHz
 Channel 03 : 2.422 GHz
 Channel 04 : 2.427 GHz
 Channel 05 : 2.432 GHz
 Channel 06 : 2.437 GHz
 Channel 07 : 2.442 GHz
 Channel 08 : 2.447 GHz
 Channel 09 : 2.452 GHz
 Channel 10 : 2.457 GHz
 Channel 11 : 2.462 GHz
 Channel 12 : 2.467 GHz
 Channel 13 : 2.472 GHz
 Channel 36 : 5.18 GHz
 Channel 40 : 5.2 GHz
 Channel 44 : 5.22 GHz
 Channel 48 : 5.24 GHz
 Channel 52 : 5.26 GHz
 Channel 56 : 5.28 GHz
 Channel 60 : 5.3 GHz
 Channel 64 : 5.32 GHz
 Channel 100 : 5.5 GHz
 Channel 104 : 5.52 GHz
 Channel 108 : 5.54 GHz
 Channel 112 : 5.56 GHz
 Channel 116 : 5.58 GHz
 Channel 120 : 5.6 GHz
 Channel 124 : 5.62 GHz
 Channel 128 : 5.64 GHz
 Channel 132 : 5.66 GHz
 Channel 136 : 5.68 GHz
 Channel 140 : 5.7 GHz
 Current Frequency:2.422 GHz (Channel 3)

好吧,很显然Ubuntu这次背锅了。在5G的频点中,不包含中国区的频点(通常在148以后)。修改路由器的配置,将区域设置为“United state”并设置相应的频点,重启路由器,Ubuntu就可以连接5G WiFi并正常访问网络了。

这台T430是老婆公司退下来的,可以确认肯定是面向大陆地区销售的产品。内置的5G WiFi居然不支持中国的频点,Lenovo果然是美帝良心企业。

装机 – Ubuntu16.04

装机 – Ubuntu16.04

老婆公司有个让人惊讶的规定:员工笔记本三年后归自己个人所有,公司重新配新电脑! 这是多么让人热爱的公司!老婆工作这几年,家里多了几台笔记本,一水的ThinkPad。上周又过了三年,拿回一台T430。以前拿回电脑时,会恢复到Thinkpad出厂时安装的window系统,这次这台T430居然只是低格了,没有系统?!

当然可以从网上扒一个windows恢复盘下来重装,不过考虑到家里已经有几台windows的笔记本和台式机,实在没有必要再增加一台,因此这次打算装Linux系统试试。

选择发行版本

“Linux发行版本”之争在程序员迷之争论中绝对可以位列前三位!好在是给自己的笔记本选发行版,因此有幸避免了与别人的争论,只要考虑自己的需求就好了。我的基本原则其实很简单:

(1)发行版要有强大的、历史悠久的社区。

(2)或者,有商业背景企业发布的版本。

以上两点只确保一个问题:若干年后,依然能活着并得到强有力的支持。绝大多数妖艳的Linux发行版本,比如Arch等,基本不用考虑了。符合要求的版本大致也就是:Debian、CentOS、Ubuntu等寥寥数种而已。

CentOS的软件实在太老旧了点,有时候不得不自己去编译各类软件,与其这样,还不如用Arch或者Gentoo等版本来得直接。公司做项目时基本都是采用Debian系统做服务器,很满意,但是Debian桌面系统就差强人意。不知道是Debian的问题,还是KDE的问题,使用时总有各种烦人的小毛病,比如鼠标问题等。

因此这次就选择了Ubuntu 16.04 (Unity7),谁会做死去选择Ubuntu的非LTS版本呢?

安装软件

安装Ubuntu系统实在没什么可以说的,下载iso文件,录制u盘,直接安装即可,比装windows还简单,过程枯燥乏味。下面只是记录一些安装应用软件方面需要注意的地方。

安装virtualBox与Windows环境下稍有不同,扩展功能包也收录在软件中心,因此实际执行命令一起安装:

sudo apt-get install virtualbox virtualbox-ext-pack

将其他计算机中的vbox客机导出到新计算机中,U盘必须采用exFat格式才能支持超过4G大小的文件,ubuntu默认没提供对该格式的支持,因此也需要单独安装:

sudo apt-get install exfat-utils

qt开发工具集升级到qt5了,采用以下命令安装:

sudo apt-get install qt5-default