Arch Linux [testing] 系列仓库简介 8

Arch Linux 中的 [testing]、[community-testing] 和 [multilib-testing] 三个仓库构成了 [testing] 系列仓库。由于网上许多地方对 [testing] 系列仓库存在一定的误解,我作为一只开发者,想藉此文介绍一下 [testing] 系列仓库。 一、[testing] 系列仓库里有哪些包? 主要有三类,按照数量排序应该是:由 soname 等 TODO 产生的大批完全未经测试的包;重要软件包、软件集合的更新、不靠谱上游推出的新版本、上游大版本更新等维护者虽然测试过但是不敢肯定没问题的包;因为维护者没有时间等情况而完全未经测试的包。注意,这里多数的情况都是完全未经测试的包,keep in mind。 二、什么情况下软件包会留在 [testing] 系列仓库里很长时间? 主要也有三类:没人测试给 signoff 的;已知有问题但还未修复或不知道怎么修复还在研究的;维护者明明拿到 signoff 了(针对目标仓库是 [core] 的情况)或明明不需要 signoff(针对所有除了 [core] 以外的仓库)但还是觉得没把握的。简单来说,一般情况下你想用的新版软件不会在 [testing] 系列仓库里停留超过一个星期,除非它已经被发现有问题了。 三、开 [testing] 系列仓库需要满足什么条件? 对当前系统中所有重要资料的备份。因为你不知道你装的下一个未经充分测试的包里是否会出现类似之前 bumblebee 或 steam 那样的灾难性错误。 有从包括 bumblebee 在内的各种灾难中恢复的能力。几乎没有人能帮你完成这件事,所以你需要自己拥有这种能力。这里包括的不止是对修复针对性问题所需要的知识和/或找到这些知识的能力,还包括提前准备好修复工作中需要的工具,比如 USB 安装介质和你的备份。 能接受系统在一段时间内不可用。 如果你正在工作中赶进度,或者明天就需要在一场演讲中用到,这不是一个开启 [testing] 跑更新的很好时机。请保证你在满足前两个条件的情况下,还能接受你的系统需要一段时间才能修复这个事实。无论是找到问题、修复还是重装系统,还有从备份中 恢复文件,都是需要一定时间的。 ...

用 Jinja 的 Babel 支持来提取 Bottle STPL 模板里的待翻译文本 3

Bottle 的 SimpleTemplate (STPL) 模板引擎虽然颇为简单, 但是从我们长期的使用看来还是十分方便的. 然而美中不足的是, Bottle 并没有像 Jinja 那样对 Babel 的待翻译文本提取工具进行集成支持. 因此, 当我们需要提取模板中的待翻译文本的时候, 便只好把主意打到语法有些接近的 Jinja 上面了. 安装 jinja2 模块, 然后直接使用 Jinja 处理全部模板文件: [jinja2: **.html] (如果你仍在使用 Bottle STPL 的默认后缀 .tpl, 可以按照需要进行修改.) 这时我们会发现, 大部分的文本被提取出来了, 但是仍然可能会缺一些, 这是为什么呢? 阅读 Jinja 关于 Babel 集成部分的文档, 我们看到: Until 2.7 template syntax errors were always ignored. This was done since many ...

pybabel 不支持 PO 文件 “Language” 字段的临时解决方法

Babel 的上游似乎很不活跃, 我有根据之前一个 Pull Request 添加测试后再次提交这个更改, 但是没有得到任何回应… 因为急用, 就先采用了这个临时的方法. 如你所料, 这又是一个丑陋的 monkey-patch 😀 使用这个脚本来执行 pybabel extract, update, compile 等操作时, 如果用 -l 参数正确指定了语言, 生成的相应 .po/.mo 文件里就能保留相应的 Language 字段了. #!/usr/bin/env python import sys from pkg_resources import load_entry_point   import babel.messages.catalog _get_mime_headers = babel.messages.catalog.Catalog._get_mime_headers     def _get_mime_headers_with_language(self): headers = _get_mime_headers(self) if self.locale is not None: headers.append(('Language', str(self.locale))) ...

解决 Debian Wheezy 使用 Nginx 1.6 官方包和 php-fpm 时返回空白页的问题 12

Nginx 1.6 终于迎来了 SPDY 3.1 以及其他激动人心的新特性, 然而, 如果从 Nginx 官方提供的 Debian 仓库安装 Nginx 1.6, 并配合 php-fpm 等 fastcgi 程序时, 却会遇到蛋疼的空白页问题. 之所以说这个问题蛋疼, 是因为页面上没有错误信息(完全空白), 而 Nginx 返回的状态码是 200, 就连 php-fpm 也没有写下任何日志 (这个可能是因为其他原因, 不过本猫暂时没有细查). 从故障现象上看很像是 fastcgi_params 的问题, 因为确认了 nginx 的权限等方面均无错, 而且如果按照网上说的增加 PATH_TRANSLATED 之类的变量却可以得到 “File not found.” 的返回. 最后, 本猫通过比较 Nginx 官方包和 Debian 提供的 Nginx 包中的 fastcgi_params 文件, 确认是因为 ...

让 PyMongo + MongoDB 2.6 继续支持空 $set 1

tl;dr 这只是一个丑陋的 monkey-patch 方法. 在 MongoDB 2.4 及以前版本中, db.foo.update({…}, {“$set”: {}}), 也即 “空 $set” 是可以正常执行的. 配合 upsert 等参数执行时可以有不同的方便用法. 但是升级到 MongoDB 2.6 以后, 由于引入了严格的参数检查, 试图进行空 $set 操作时, 会出现这样的错误: OperationFailure: '$set' is empty. You must specify a field like so: {$mod: {<field>: ...}}" 由于本猫不太想改依赖这个方法的代码逻辑(有点多…), 于是写了一个丑陋的 monkey patch 来 workaround 这个问题: # Monkey patch pymongo to allow empty ...

让 Pipelight 用中文 Locale 运行 – 解决非中文 Locale 下 Pipelight 插件中文显示为方框问题的简单方法 4

让 Pipelight 用中文 Locale 运行 - 解决非中文 Locale 下 Pipelight 插件中文显示为方框问题的简单方法
如果你和我一样, 系统语言喜欢用英语等非中文语言, 但是又需要 pipelight 的插件能正常显示中文(比如 flash player + AB 站之类的), 那么这个简单的方法可以让你两者兼得! 先上效果图: 方法其实很简单, 只是因为 pipelight 还在开发中, 所以没看到相关的介绍哈. 以下方法是 pipelight 开发者在 irc 中告诉我的, 特此感谢~! (如果你的 pipelight 安装的地方和我不一样, 别忘记相应修改路径哈) 1. 创建文件 /usr/local/bin/wine-pipelight-zh_cn-wrapper: #!/bin/sh LANG=zh_CN.utf8 /opt/wine-compholio/bin/wine "$@" 给它加上执行权限. 2. 复制 pipelight 配置文件以便编辑: (以 flash 为例) $ cp /usr/share/pipelight/configs/pipelight-flash ~/.config/ 3. 编辑 pipelight 配置文件: 找到 winePath = /opt/wine-compholio/bin/wine 修改为: ...

搜狗拼音 for Linux 新版发布 23

搜狗拼音 for Linux 新版发布
官网地址: http://pinyin.sogou.com/linux/ 本猫折腾了一下, 做了一个 PKGBUILD, Hack 了一下 curl 版本的问题, 目前自己测试可以用哈~ 坑爹之处在于, 这次放出的版本必须用内置的 qimpanel 界面! 也就是说, 经典 UI 和 kimpanel (包括 gnome-shell 那个 kimpanel 插件之类的) 都不能用, 否则你会看到一条超坑的提示: “请启用fcitx-qimpanel面板程序,以便更好的享受搜狗输入法!” 做好的包和完整的 src 包下载: http://pkgbuild.com/~fyan/staging/fcitx-sogoupinyin/ PKGBUILD: (偷懒的猫只做了 x86_64 的) # Maintainer: Jove Yu <yushijun110[AT]gmail.com> # Contributor: csslayer <wengxt[AT]gmail.com>   pkgname=fcitx-sogoupinyin pkgver=1.0.0.0011 pkgrel=1 pkgdesc="Sogou Pinyin for Linux" arch=('x86_64') url="http://code.google.com/p/fcitx" license=('custom') ...

尝鲜: 新的网络连接管理工具 systemd-networkd 25

在吃掉 udev 和谋划收编 dbus 后, systemd 又将它的魔爪伸向了网络管理方面. 虽然这已经是 systemd 209 时候的旧闻, 不过因为整个功能太过不完善 (被吐槽有超多 bug, 以及各种基本功能缺失) 以及没有文档, 上游一直没有大力推广. 本文仅就最为简单普通的有线网络连接介绍 systemd-networkd 的打开方式. (wifi 呀, ppp 呀, vpn 呀之类的复杂配置现在都不支持哦) (大部分信息翻译自 ArchWiki) 先介绍一些基本的信息: 配置文件存放在 /usr/lib/systemd/network (上游提供的配置), /run/systemd/network (运行时配置), 以及 /etc/systemd/network (本地配置). 其中 /etc/systemd/network 有着最高的优先级. 有三类配置文件: .network 文件: 给匹配到的设备应用一个网络配置 .netdev 文件: 给匹配到的环境创建一个虚拟的网络设备 .link 文件: 当一个网络设备出现时, udev 会寻找第一个匹配到的 .link 文件. 他们都遵循一些相同的规则: ...

添加 Linux 原生游戏到 Wine Steam 里并记录游戏状态 / 让 Wine Steam 里的不同游戏用不同的语言(环境变量)运行 2

添加 Linux 原生游戏到 Wine Steam 里并记录游戏状态 / 让 Wine Steam 里的不同游戏用不同的语言(环境变量)运行
首先解释下这个奇怪的需求哈: 1. 添加 Linux 原生游戏到 Wine Steam 里并记录游戏状态: 可以让 Steam 好友知道自己在玩什么, 而同时又可以避免用 Wine 跑相应游戏带来的性能损失. 如果直接用 Wine 自带的 start.exe 启动 Linux 游戏, 因为 start.exe 会在启动游戏后直接退出 (/wait 参数对 Linux 进程无效), 因此游戏时 Steam 状态会显示为不在游戏中, 这样我们的目的就达不到了… 2. 让 Wine Steam 里的不同游戏用不同的语言(环境变量)运行: Wine 对 CJK 字符编码的修正是和语言(Locale)环境变量有关的, 比如 Touhou 用 ja_JP 环境跑表现一切正常, 而在 zh_CN 或者 en_US 下标题栏均是不同程度的乱码 (其它程序有更严重的问题, 包括全部字符变成问号等). 但是用 Steam ...

开源图形驱动也可以流畅 Wine “原生的” DX9! 8

想在 Linux 里 Wine 点什么 Direct X 游戏? 买 A 卡啦? Intel 集显啦? 用 nouveau 开源驱动啦? 哈哈哈哈哈哈哈哈(大雾 其实我们改改 Gallium3D (Mesa) 再改改 Wine 的话, Direct X 9 还是可以跑得刷刷的快的哦~! (虽然这个其实不是新闻了) 首先解释一下原理, Gallium3D 拥有一种被称为 “State Tracker” 的机制, 下面的介绍翻译自维基百科: Gallium3D 提供了一个统一的 API, 将标准的硬件功能暴露出来, 比如现代硬件中的着色器单元. 因此, 如 OpenGL 1.x/2.x, OpenGL 3.x, OpenVG, GPGPU 平台, 或者甚至 Direct3D (存在于 Wine 兼容层中) 都将只需要一个后端 ...
QR Code Business Card