Category: 业界资讯

新版 Fedora 软件维护者指南

拖了近一年的时间,终于有时间有精力更新这一篇文档。

本次更新包含的内容主要有:

  • 因应自 Fedora 14 以来的改变,汇入 SRPM 包部分和更新已有软件包部分的内容从 CVS 改成 Git。
  • 增加 RPM Fusion Packager 的相关内容。
  • 修正格式和用字不当。

原文地址请点击此处,如有错漏,请不吝指教。
原文地址请点击<a href=”https://fedoraproject.org/wiki/Fedora_%E6%96%B0%E8%BD%AF%E4%BB%B6%E7%BB%B4%E6%8A%A4%E8%80%85%E6%8C%87%E5%8D%97″ target=”_blank”>此处</a>,如有错漏,请不吝指教。

Fedora 的 fcitx 计划

刚刚应 CSSlayer 和 Aron Xu 的要求,把 Fedora 的 fcitx 细分成多个 sub package,最主要的是把各个码表分离开。

以前的做法是把码表一并放在 fcitx 这个 sub package 里面,但是很多人并不是需要安装所有码表,因此现在的做法是增加多个 sub package 以打包各种码表。

fcitx-table-bingchan 是冰蟾的码表,fcitx-table-erbi 则是二笔的码表,fcitx-table-cangjie 则是仓颉的码表,fcitx-table-dianbaoma 是电报码的码表,fcitx-table-wanfeng 是万峰的码表,fcitx-table-wubi 是五笔的码表,fcitx-table-wbpy 是五笔-拼音的码表,fcitx-table-ziranma 是自然码的码表。所以现在安装新版 fcitx,就只能自带拼音输入法的码表,其他码表需要自行安装。

细分下来,实际上是挺多,spec 文件已经超过 300 行了。以后或许会默认加入更多的码表,spec 文件的行数也会不断得增加。你很难想象维护一个输入法要维护一个超过 500 行的 spec 文件。如果我放弃维护这个软件包了,一个如此长的 spec 文件让别人接手也是一个很大的问题。

同样在 fcitx-4.1 分支中,CSSlayer 增加了 fcitx 的 gtk2、gtk3 和 qt4 的模块,以后可能会加入 m17n 的支持,如果还在包所有的东西包在同一个源代码包里面的话,写 spec 也够辛苦了,说不定是会变成一个有 1000 行的 spec。而且码表、m17n 和图形库的输入法接口未必需要跟着输入法主程序一直同步更新。很多时候主程序更新多次以后码表和 m17n 也不用更新也可以直接用,同样图形库的接口也一样。所以我希望在源代码分包是 fcitx 主程序和相关的库组成一个源代码包 fcitx,中文码表一个源代码包 fcitx-table,图形库接口一个源代码包 fcitx-bridge,另外以后的 m17n 一个源代码包 fcitx-m17n。上述猜想还得和 CSSlayer 商量。

ubuntu 下快速安装交叉编译工具

开始做嵌入式开发的朋友都在前期配置交叉编译工具而烦恼,网上的交叉编译工具的教程很多,但是要么很繁琐要么就是资料不全。那么怎么样快速而又简单地配置交叉编译工具呢,我们现在就用ubuntu里面的apt-get工具快速安装交叉编译工具。

1,添加一个源到/etc/apt/sources.list里,

           sudo gedit /etc/apt/sources.list
           deb http://www.emdebian.org/debian/ stable main

保存关闭;更新一下源列表

         sudo apt-get install emdebian-archive-keyring
         sudo apt-get update

3.更新成功后;我们开始安装arm 交叉编译环境

        sudo apt-get install gcc-4.4-arm-linux-gnueabi
        sudo apt-get install gcc-4.4-arm-linux-gnueabi-base
        sudo apt-get install gcc-4.3-arm-linux-gnueabi
        sudo apt-get install gcc-4.3-arm-linux-gnueabi-base
        sudo apt-get install libc6-dev-armel-cross
        sudo apt-get install binutils-arm-linux-gnueabi

4.测试,输入arm,然后会出现自动补全,就证明环境变量起效了,再补全输入

        arm-linux-gnueabi-gcc -v

出现如下面这样,就证明安装成功了:

       Using built-in specs.
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.5-4' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.3.5 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --disable-sjlj-exceptions --enable-checking=release --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabi
Thread model: posix
gcc version 4.3.5 (Debian 4.3.5-4)

补充:在sudo apt-get install gcc-4.4-arm-linux-gnueabi时,遇到了这样的问题:

ubuntu:~$ sudo apt-get install gcc-4.3-arm-linux-gnueabi
Reading package lists… Done
Building dependency tree
Reading state information… Done
You might want to run `apt-get -f install’ to correct these:
The following packages have unmet dependencies:
gcc-4.3-arm-linux-gnueabi: Depends: gcc-4.3-arm-linux-gnueabi-base (= 4.3.5-4) but it is not going to be installed
Depends: cpp-4.3-arm-linux-gnueabi (= 4.3.5-4) but it is not going to be installed
Depends: binutils-arm-linux-gnueabi (>= 2.19.1) but it is not going to be installed
Recommends: libc6-dev-armel-cross (>= 2.5) but it is not going to be installed
libmpfr4: Depends: libgmp10 but it is not installable
E: Unmet dependencies. Try ‘apt-get -f install’ with no packages (or specify a solution).

解决办法:

ubuntu:~$ sudo apt-get install libc6-dev-armel-cross

ubuntu:~$ sudo apt-get install binutils-arm-linux-gnueabi

安装libmpfr4,下载地址:http://www.anheng.com.cn/debian/pool/main/m/mpfr4/libmpfr4_3.0.0-9_i386.deb

ubuntu:~$sudo dpkg -i libmpfr4_3.0.0-9_i386.deb

ubuntu:~$ sudo apt-get install cpp-4.3-arm-linux-gnueabi

安装libgmp10,下载地址:http://www.anheng.com.cn/debian/pool/main/g/gmp/libgmp10_5.0.1+dfsg-7_i386.deb

ubuntu:~$sudo dpkg -i libgmp10_5.0.1+dfsg-7_i386.deb

ubuntu:~$ sudo apt-get install gcc-4.3-arm-linux-gnueabi-base

ubuntu:~$sudo apt-get install gcc-4.4-arm-linux-gnueabi

Fedora LiveCD 换用 XZ 压缩格式

Fedora 开发者邮件列表宣布,即日起来 Nightly Compose 改用户 XZ 压缩格式,以提高压缩率,容纳更多的软件。

据了解,改用新的压缩格式以后,LiveCD 可以额外腾出多达 130MB 空间。因此有开发者提议集成 LibreOffice,因为办公套件大部分用户都是需要的,而且可以减轻软件源服务器的负担。可是这 130MB 的空间未必足够的,可能还是要移除更多的软件才行。

XZ 压缩格式原本是计划在 Fedora 14 引入的,但是内核迟迟没有引入稳定的 LZMA 压缩支持所以才推迟到 Fedora 15。可以预期的是 Fedora 15 是一个激动人心的版本,因为还有万众期待的 systemd。

AppStream

原文出自:http://linuxtoy.org/archives/appstream.html,作者是黑日白月

终于在最近的 FreeDesktop 会议上,Red Hat, Canonical, Novell, Debian, Mandriva 等重要的 Linux 发行版厂商们坐下来开始实现跨发行版的软件安装机制

简单来说,AppStream 跨发行版安装机制有四个部分组成:

  • 打包服务器:从打包文件的desktop文件中抽取元信息,将包括软件图标在内的信息提交给镜像。
  • 镜像:在各个仓库已有镜像的基础上添加 app-data.xml 数据文件和包含软件图标的 app-data-icons.tar.gz 文件。这些文件将会被客户端访问并使用。
  • 客户端:以 Ubuntu Software Center 为界面基础,使用 PackageKit 为后端执行软件包管理操作,并连接本地 xapian 文本搜索数据库实现内容搜索,利用 Zeitgeist 实现软件使用统计
  • OCS 服务器:通过 OAuth 与客户端联系,提供社会化评论及评分功能。

AppStream 会

  • 为各大 Linux 发行版提供便捷统一的安装流程,用户在一个发行版上的安装经验可以平缓迁移到其他发行版。
  • 提供一个统一的元数据、评论、评分分享平台

AppStream 不会

  • 取代现有发行版的打包机制,而是利用 PackageKit 的多后端支持将后台的模式封装起来。
  • 为镜像服务器带来额外同步负荷,小尺寸图标文件和描述元信息很小。

会议记录

详细架构图

Ubuntu 最近动态小结

首先,Ubuntu 计划在下一个发行版本预装 Qt 运行时组件,并计划开发 Unity 界面的 2D 版本。Ubuntu 称此举为改变评价默认桌面应用程序的原则,脱离纯技术的考核。但是从另外一个角度说,Ubuntu 让人感觉轻易改变技术路线,似乎在乱搞一通。

此外,Canonical 创始人 Mark Shuttleworth 访问中国,抵达百度总部,与百度 CEO 李彦宏商谈合作事宜。会后,Mark Shuttleworth 接受访问时透露,Ubuntu 中国版已经发布,应用程序商店内置超过 20000 个应用程序。Ubuntu 中国版现已提供下载,地址是:http://china-images.ubuntu.com/ 现在只有 i386 版本。

Mark Shuttleworth 提到的 20000 个应用,这让 Debian 众情何以堪呢?与百度的洽谈是否让百度成为 Ubuntu 中国版默认的搜索引擎?早前火狐和 Opera 也推出了中国版,但是不太成功,而 Ubuntu 是否步其后尘?带着种种的疑问,让我们等待真相的揭晓吧。

动态管理防火墙 firewalld

Firewalld 是一款提供 D-Bus 接口从而支持动态管理的防火墙守护进程

Firewalld 由 Red Hat 的 Thomas Woerner 为 Fedora 开发,在 Fedora 15 中将可以使用(但不会成为默认!)测试,目的是取代目前 system-config-firewall 的静态防火墙配置。它的特点是

该守护进程目前具有以下功能:

  • 支持绝大多数 system-config-firewall 所具有的功能,除去:
    1. 不支持 iptables 格式的自定义规则文件,但是提供有限的自定义规则支持。
    2. ip_forward 的 sysctl 变动尚未实现。
    3. 暂时不能保存永久性规则配置,意味着一旦服务重启所有配置都将丢失,永久性保存规则将在后续加入。
  • 实现动态管理,对于规则的更改不再需要重新创建整个防火墙
  • 一个简单的系统托盘区图标来显示防火墙状态,方便开启和关闭防火墙。
  • 提供 firewall-cmd 命令行界面进行管理及配置工作。
  • 为 libvirt 提供接口及界面,会在必须的 PolicyKit 相关权限完成的情况下实现。

下一步将实现以下功能:

  • 实现 firewall-config 图形化配置工具。
  • 实现系统全局及用户进程的防火墙规则配置管理。
  • 区域 Zone 的支持。
  • NetworkManager 防火墙规则助手。

项目主页及详细介绍