Arch 简讯: /lib 目录成为软链接

(译自 Arch 官网。 所有 Arch 软件包已经将 /lib 目录的文件转移到了 /usr/lib 。/lib 将成为 /usr/lib 的一个软链接。触发这个变更的升级会导致 /lib 内的冲突。解决这个冲突最简单的办法是:

pacman -Syu --ignore glibc
pacman -Su

不要在此次升级中使用 --force

如果以上方法无效(比如依赖包的版本在 /lib 产生文件冲突),这里有一个更详细的升级向导

随手翻译解救udev同学

udev的大名儿是"Linux dynamic device management",也就是管理硬件设备的同志。

这位udev总管(btw,她的名字很商业嘛,优德弗听起来像不像优特友博/你管子他表姐?)是kernel陛下的外交部发言人之一。日理万机的kernel根本没空跟外界解释它是怎么决定和命名每个硬件设备的,所以每次他念出一个设备名的时候,udev同志就会出来把他老人家之乎者也的圣旨翻译成通俗易懂的设备名称,事件,并且根据她私藏的数据库通知每个相关人士。

udev同志在进程大街的办公室名为udevd,通信地址是 /etc/udev/ 和 /lib/udev 。想跟她交往的同学请RTFM先。

学Vim的人你们伤不起

这是最终修正版,如果还有问题,我会继续修正……首发于 Twitter。咆哮者系本人。

学Vim的人你们伤不起

点击可以看大图。

Django 补丁接受

这是本人第二枚遭到接受的补丁,上次是2010年8月

Trac #15609

Change Set 15811

补丁内容是把所有异常的提出方式改为 raise Exception(msg) 的形式,为将来的 Python 3 移植作准备。

提交到源里的是Django的创建者之一 Adrian Holovaty

令人震惊的是,这个补丁从提交到进入代码库只花了2个小时!从我产生该想法到进入源玛也不到3个小时。Django 社区的效率较之从前真是高了许多呀。

如何向Python 3过渡?

如何向Python 3过渡?作为软件库提供者,你有三种选择:

  1. 放弃 Python 2 支持,投向 Python 3 怀抱。

  2. 在 VCS (svn, git, hg, bzr) 里保留两个分支,分别支持两个版本。其效果类似第一种选择:保留Python 2分支是为了进行 bugfix , 最终目标是等待大多数用户转而使用 Python 3 分支。

  3. 同时发布两个版本的代码,根据运行环境决定运行哪一个版本的代码。这可能比听上去简单一些。假设你在库的 src2 和 src3 分别放置 Python 2 代码和 Python 3 代码,然后在 setup.py 里面加入下面这段代码::


    import sys
    from distutils.core import setup
    if sys.version < '3':
        package_dir = {'': 'src2'}
    else:
        package_dir = {'': 'src3'}
    setup(name='dual', version='1.0', package_dir=package_dir)

这样用户安装库的时候,会得到正确的版本。