K.I.S.S. – 简单哲学 Linux, Freedom, Arch, Python, Gtk+, C … Keep It Simple, Stupid!

3十/1010

Arch Linux 下 Android 源码下载与编译

最近工程实践的老师让我把 环境搭建起来,并且将界面换成黑白的,算是一个考验,这里就记录一下具体的做法。

Android 源码以前没有注意过,一直以为是 管理,看了一下文档,才知道 Google 在 上面又加了一个叫做 repo 的工具,用来管理大量的 仓库。

repo 这个工具在 里面有,叫做“repo-git”,首先要把这个工具安好。

按照官网的下载说明,安装下面几个包:gperf sdl esound wxgtk valgrind,当然 base-devel 这个 group 也肯定都要装的了。64 位系统还要装 lib32-readline 和一些其他 32 位包,不过因为我装了 wine,所以所有依赖包都已经装好了。

官网说只能用 jdk5,不过我克服万难从 AUR 上安装好老掉牙没人管的 jdk5 之后,编译时提示我 jdk 版本不对,请使用 jdk6 ……同学们引以为戒,官网说明已经过时了。安装好 jdk 后重启一下系统更新环境变量,当然你也可以:

$ source /etc/profile

然后随便建个目录,比如我是 ~/Workspace/mydroid,进入这个目录后:

$ repo init -u git://android.git.kernel.org/platform/manifest.git

这是获得最新的 git stable 源码,或者你仅仅想要 Android 2.2.1,那么:

$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.2.1_r1

其实就是 git branch 的封装,manifest 是一个 git 的仓库目录,里面就一个 xml 文件,记录了各个仓库的信息,repo 根据这些信息来 clone 源码。

这条命令会问你的名字和 E-mail,其实就是 ~/.gitconfig 中的信息,如果你以前常用 git,直接回车即可。

下面就是同步源代码了:

$ repo sync

Android 的源代码大约有 2G,在我令人发指的网络环境下,同步了 2 天才完事,所以速度在 200K 以下的同学就不要凑热闹了,找个地方画圈圈吧……

这个过程中就是一堆的 git clone、git rebase,如果中断了,会从第一个开始慢慢扫描,直到之前中断的那个仓库,按照 git clone 不支持断点续传的习性,这个被中断的项目会被重新 clone。要知道,Google 这个脑残最恶名昭彰的一点就是把二进制文件往 git 里面放了,第 252 个仓库 prebuild 就是这么个地方,700M,我就在这里中断过……

闲话少说,下面是两个针对 Linux 的 Fix,一个是 Make,目前 testing 中的 make 是 3.82 版本,这个版本在编译 Android 的时候开始会出错,见这个帖子,所以要降级成 core/make,也就是 3.81。

另外,如果用的是 64 位系统,那么要安装 multilib 源中的 gcc-multilib,否则会出现 libgcc.a 不兼容的错误。

全部完成之后,直接执行 make 就可以编译源代码了,当然 Makefile 有很多规则,比如只想编译计算器这个程序,make Calculator 即可。

最后就是用模拟器执行啦,建个脚本执行即可:

#!/bin/bash
export ANDROID_PRODUCT_OUT=~/Workspace/mydroid/out/target/product/generic
# PATH for Android emulator
export PATH=$PATH:~/Workspace/mydroid/out/host/linux-x86/bin
export ANDROID_JAVA_HOME=$JAVA_HOME
# start the emulator with debug info
emulator -debug-init

最后是几张模拟器的图片,是我改成黑白之后的:

android-locked.png

android-main.png

android-browser.png

android-calculator.png

19九/102

加快 git clone 速度的方法

呵呵,不知道我是不是火星了, clone 原来可以不全部克隆的,而是可以只克隆当前的 commit,使用下面的命令即可:

git clone git://... --depth 1

也就是指定克隆深度为 1。
当然,通过这样克隆的代码就不能进行管理、提交什么的了。
学校的网络不知为何把 git 封了,只好用 proxychains 代理进行克隆,速度慢死,有了这个命令,安装个软件就快多了~

标签: 2 评论
23七/108

用 Blender 制作的杯具

关心 Linux 桌面的朋友可能都已经知道 TX 兄的 iBentu 网站上线了,第一篇文章就是 kevin 的 教程,教大家制作杯具……

看得出来,kevin 的视频做得很用心,加上很让人惊艳的声线,这样的教程确实很值的一看。:)

看看我的作品吧:

blender-cup.png

好吧,我承认自己做得很渣,虽然多次请教 kevin,最后还是做成了这样……不过杯具就要有悲剧的样嘛~^_^

期待 kevin 的下一次视频教程……另外请大家支持 网站~

16七/109

Arch 中抢先体验 Compiz++

LDCN 曾经介绍过 将用 C++ 重写,不过之后 -Shell 的大热几乎让我们忘记了 Compiz++ 这么回事,再加上 Compiz 开发者匮乏,开发进度缓慢的一贯印象,除了少数如我一般的 Compiz 死忠,似乎很少有人关心 Compiz 怎么样了。
无论如何,Compiz 的开发者们还是在默默地为了理想中的窗口管理器努力着,如今 Compiz++ 已经接近可用状态, 论坛上也有人放出了 Compiz++ 系列的 PKGBUILD,如果你也是 Compiz 的粉丝之一的话,不妨抢先体验一下吧。
这几个包的名称和地址是:
compiz-core++
compiz-plugins-main++
compiz-plugins-extra++
compiz-plugins-unsupported++
libcompizconfig++
compizconfig-python++
ccsm++
emerald++ (可选)
emerald-themes++ (可选)

安装 Compiz++ 完全不会影响现有的 Compiz,因为它是安装在 /opt 下面的,配置文件的名字也会不同。安装完成上面的包,可以运行如下命令来配置 Compiz++:

/opt/compiz++/bin/ccsm++

开启 Compiz++(建议预先开启 fusion-icon,这样遇到什么问题,可以方便切换为原来的 metacity 或者 compiz):

/opt/compiz++/bin/compiz --replace ccp

如果遇到问题,试试:

/opt/compiz++/bin/compiz --replace move decor composite resize place opengl

还不行的话,把 opengl 去掉试试。
当然这只是一次 C++ 语言的重写,不要期望有大的功能上或者性能上的变化,也不要指望开发版的稳定性有多么好就是了。不过相信通过 C++ 的重写和重新架构,以后的 Compiz 开发会更加容易、更加顺畅,给我们带来更好的体验。

Arch 论坛上的讨论帖:http://bbs.archlinux.org/viewtopic.php?id=93786

标签: , , 9 评论
15七/1010

在 Virtualbox 中安装 Mac OS X

关注 的同学可能已经知道, 3.2 版本中已经加入了 Mac OS X Guest 系统的支持,也就是说,我们可以在其他系统上通过 虚拟它、体验它了!

我个人以前也在真机上折腾过所谓的“黑苹果”,不过由于我的台式机 CPU 都是 AMD 的,折腾来折腾去一直没有成功安装运行起来过,不过单单是它的安装界面,就不枉众人对它的美誉了。感谢郭嘉以及 Virtualbox 给了我这次宝贵的体验机会,我当然要好好珍惜啦。在 Lifehacker 这篇《How to Run Mac OS X in VirtualBox on Windows》的指引下,安装过程很是顺利。

这里简单说说要点:

首先,确定你的 CPU 支持虚拟化《How To Find Out If Your CPU Supports Hardware Virtualization (Intel VTx / AMD-v)

然后,下载一款黑苹果的 ISO,我用的是 Hazard 的 OSX86 Snow Leopard

接着,在 Virtualbox 3.2.6 或以上版本里面,创建一个虚拟机,目前 Virtualbox 3.2.6 中 CPU 只能选单核,内存自己定(我用 1G),不要选 EFI 选项,网卡要选 Intel PRO/1000 MT Desktop,声卡驱动见《Mac OS X guest sound support driver》。

插入光盘,启动虚拟机,开始时要按回车或者按 F8,不然会启动不了。格式化好磁盘,然后在安装时选自定义,注意选中最上面的所有更新,选中 Kernels 里面的 Legacy kernel,以及最下面的附加字体。对于 AMD 用户,要选中下面的“AMD”,对于 Intel 用户,则需要在 bootloaders 里面选中最新版本的 Chameleon。最好不要选其他的了,否则不保证能安装成功,经验之谈。

最后,就是漫长的安装过程了,大概要一小时或者更长(我用的是动态扩展的磁盘空间)。

安装过程到此为止,重启后经过简单的设置,就可以进入桌面了。

MacOSX_Virtualbox.png

在 Virtualbox 中虚拟的 Mac OS X 还没有虚拟 XP 那么流畅,CPU 占用率也一直很高,不过还差强人意,各种特效能够运行起来,足以让人体验一下传说中苹果系统的风采了。

也许是习惯了各种仿苹果系统的 Dock、动画之类的,Mac OS X 并没有十分的惊艳的感觉。不过通过简单的试用,我还是能够体验到 Mac OS X 背后那种深厚的文化底蕴,虽然动画效果没有 绚丽多姿、功能强大,不过整体的协调感、界面的一致性,这都是 乃至 KDE、Windows 7 都模仿不来的,这或许就是传说中的“简约不简单”吧。

4七/103

Compiz 0.9 正式发布!

之前介绍过在 Arch Linux 下体验 git 版本的 Compiz++ 0.9),刚刚收到消息, 0.9 正式发布了!

这是 Compiz 0.9 系列的第一个非稳定版本,包含了很多新的特性和改进,包括使用 C++ 重写、全新的开发者 API、将渲染分离为一些插件、构建系统由 Autotools 转为 CMake,以及一些小的功能上的改进。这个版本主要是给开发者和测试者用的预览版本,展示 0.10.x 可能带来的一些改变,此版本还存在很多已知的问题和缺失的功能,不能用于日常使用。

不过小白鼠们,还是勇敢的上吧!

详细的变更日志在这里:http://lists.freedesktop.org/archives/compiz/2010-July/003429.html

标签: 3 评论
19六/102

HTTPS Everywhere – 总是使用加密连接访问网站

关于加个 S 的重要性在此不再赘述了。很多网站虽然提供 HTTPS,不过默认使用的还是普通连接,或者用着用着就会跳回 HTTP,很多网友已经推出了各种脚本来促使某些网站默认使用 HTTPS,效果也很好。

这里介绍的 也是属于这类,不过它有更全的网站库,也不必像 GreaseMonkey 脚本一样要等到页面载入完成才行,下面简要介绍一下它吧。

HTTPS Everywhere 是 Tor 项目和 EFF(Electronic Frontier Foundation)合作开发的 扩展,它支持的网站如下:

https-everywhere.png

另外,HTTPS Everywhere 也支持自定义规则。

HTTPS Everywhere 还处于 Beta 阶段,有兴趣的同学可以去 EFF 的网站下载。

16六/106

giggle – 来自 GNOME 的 git 图形界面

以前介绍过 gitk 和 gitg 两款 图形界面工具,并对它们进行了简单的对比,最近,又发现另一款工具,, 在此介绍给大家,希望有此需要的同学多个选择。

giggle 将用于浏览仓库内容的 gitk 和用于执行各种操作的 git-gui 融合在一起,成为一款集 git 所有功能于一身的管理工具。

giggle 有两种模式,一种是浏览模式,可以浏览目录中的所有文件,并指出它们在哪次提交中被修改,做了哪些修改,并且能够据此产生补丁。

另外,浏览模式本身也是个简单的编辑器,可以对文件即时进行修改,并对修改进行提交。如果你仅仅需要少量修改,或者不需要一些编辑器的高级功能,那么一个 giggle 足以完成 git + 编辑器的功能了。

giggle-browse.png

另一种模式是历史模式,这种模式下比较容易从总体上把握每次提交后项目的修改状况,以及提交的详细信息。当然创建分支、标签和补丁的功能是必不可少的。

giggle-history.png

另外,giggle 还可以修改 .gitconfig、.gitignore 等文件的设置,同时提供了嵌入的终端,以及打开外部编辑器编辑文件等功能,确实具有一个完善的 git 图形界面的潜力。

giggle 现在已经成为 的组件,开发比较活跃,有兴趣的同学可以一试。

标签: , , 6 评论
8五/102

两个新的 pacman 外壳:clyde 和 packer

Linux 独特的 包管理器是其备受亲睐的原因之一,作为一款命令行包管理器,它深谙 K.I.S.S. 原则,在使用上甚至比很多图形界面的包管理器还要强大,还要方便、直观。

然而,Arch 的用户总是挑剔的,总是希望日常使用的包管理器更加的 Simple and Stupid,于是有了 pacman-color、yaourt 等等,种种扩展、外壳更是把 pacman 武装成了神兵利器,再加上如我一般的用户更是用 alias 将各种命令简化,简简单单的 ysyu 命令就更新了整个系统,实在是把 Linux 下的包管理简化到了一个极点。

不过,总是有更加挑剔的用户,Linux 世界才有这么多的优秀软件,据我所知,今年又有两个 Arch 用户不满 yaourt 的缓慢、低效、丑陋(虽然我没感觉),开发出了两个新的 pacman 的外壳(wrapper):clydepacker

Clyde 由 DigitalKiwi 和 Ghost1227 开发,主要是不满基于 Bash 的 yaourt 太过缓慢,和对 支持的低能。他们希望使用小巧快速的 Lua 语言重写一个 wrapper(底层用 C 编写),能够提供多线程下载的支持,并且容易在此基础上构建图形界面包管理器。

Clyde.png

Clyde 保留了 pacman 和 yaourt 的选项用法,界面也很类似,使后两者的用户更加容易迁移,开发者表示,Clyde 已经足够稳定来应付日常使用,“不过如果它破坏了你的系统,烧坏你的主板,吃了你的孩子,可不要找开发者算帐,警告过你了哦!”

Clyde 可以通过 AUR 安装,软件包名 clyde-

packer 的开发者是 bruenig,他开发 packer 的主要目的是整合 pacman和 AUR,看来也是对 yaourt 对两者分别处理,还在不必要的时候对 pacman 来回调用、拖慢速度十分不满。

作者认为 packer 主要实现四个 pacman 和 AUR 的整合功能就可以了:搜索(-Ss)、查看信息(-Si)、安装(-S)、升级(-Su),在这四个功能上做到 pacman 和 AUR 一视同仁。

packer.png

如果你对 packer 感兴趣,可以从 AUR 里面安装 packer,或者 nightly 源里面也可以。

3三/101

另一个图形界面批量改名工具——GPRename

今天用到批量改名的功能,本来想要用 Linuxtoy 介绍的 pyRenamer 的,不过通过 安装的时候发现 pyRenamer 的服务器杯具了(法克及。爱抚。打不留!)只好寻找一个替代产品,这就找到了

GPRename 是基于 gtk2-perl 的批量改名工具,我们知道 perl 在正则的使用上是十分灵活的,用来做改名工具最适合不过。

不知道是不是和 pyRenamer 有什么渊源,两者的界面十分相似,GPRename 支持对文件名改变大小写、插入、删除、替换以及批量改为数字文件名的功能,在正则表达式的帮助下足够应付大多数情形,对于那些有这种需求,又懒得或者不会自己编写脚本的人一定很有用。

GPRename1.png

GPRename2.png

GPRename3.png

GPRename4.png

想要安装 GPRename,在 里只需要使用下面的命令即可:

sudo -S gprename