2014年8月

撒花,Linux中国微博粉丝突破3万!为了感谢广大粉丝的支持,现在起关注 @Linux中国 转发此微博送出你对Linux中国的祝福或期待,并"@"三位好友即有机会获得Linux中国为您送出的奖品。

活动时间:2014年8月19日—2014年8月29日

活动奖品:

一等奖:互动出版网100元购书卡(1张)

二等奖:《大教堂与集市》图书(2本)

三等奖:Linux中国限量特制变色马克杯(3个)

好礼等你来拿,心动不如行动,快来参与活动吧!

(获奖名单将于活动结束后7个工作日内公布,敬请关注)

不久前我提供给大家12个调整Ubuntu的小建议。 然而,已经是一段时间以前的事情了,现在我们又提出了另外10个建议,能够使你的Ubuntu宾至如归。

这10个建议执行起来十分简单方便,那就让我们开始吧!

1. 安装 TLP

我们不久前涉及到了TLP, 这是一款优化电源设置的软件,可以让你享受更长的电池寿命。之前我们深入的探讨过TLP, 并且我们也在列表中提到这软件真不错。要安装它,在终端运行以下命令:

sudo add-apt-repository -y ppa:linrunner/tlp && sudo apt-get update && sudo apt-get install -y tlp tlp-rdw tp-smapi-dkms acpi-call-tools && sudo tlp start

上面的命令将添加必要的仓库,更新包的列表以便它能包含被新仓库提供的包,安装TLP并且开启这个服务。

2. 系统负载指示器

给你的Ubuntu桌面添加一个系统负载指示器能让你快速了解到你的系统资源占用率。 如果你不想在桌面上添加这个技术图表,那么可以不要添加, 但是对于那些对它感兴趣的人来说,这个扩展真是很好。 你可以运行这个命令去安装它:

sudo apt-get install indicator-multiload

然后在Dash里面找到它并且打开。

3. 天气指示器

Ubuntu过去提供内置的天气指示器,但是自从它切换到Gnome 3以后,就不再默认提供了。你需要安装一个独立的指示器来代替。 你可以通过以下命令安装它:

sudo add-apt-repository -y ppa:atareao/atareao && sudo apt-get update && sudo apt-get install -y my-weather-indicator

这将添加另外一个仓库,更新包的列表,并且安装这个指示器。然后在Dash里面找到并开启它。

4. 安装 Dropbox 或其他云存储解决方案

我在我所有的Linux系统里面都安装过的一个软件,那就是Dropbox。没有它,真的就找不到家的感觉,主要是因为我所有经常使用的文件都储存在Dropbox中。安装Dropbox非常直截了当,但是要花点时间执行一个简单的命令。 在开始之前,为了你能在系统托盘里看到Dropbox的图标,你需要运行这个命令:

sudo apt-get install libappindicator1

然后你需要去Dropbox的下载页面,接着安装你已下载的.deb文件。现在你的Dropbox应该已经运行了。

如果你有点讨厌Dropbox, 你也可以尝试使用Copy 或者OneDrive。两者提供更多免费存储空间,这是考虑使用它们的很大一个原因。比起OneDrive我更推荐使用Copy,因为Copy能工作在所有的Linux发行版上。

5. 安装Pidgin和Skype

和朋友们保持联系特别好,并且如果你使用即时通讯,那么你很幸运。 Pidgin和Skype在Linux都十分出色,它们都能连接所有主要网络。安装Pidgin就像运行这个命令一样简单:

sudo apt-get install pidgin

安装Skype也很简单 — 你仅仅需要去Skype的下载页面并且下载你Ubuntu12.04对应架构的.deb文件就可以了。

6. 移除键盘指示器

在桌面上显示键盘指示器可能让一些人很苦恼。对于讲英语的人来说,它仅仅显示一个“EN”,这可能是恼人的,因为很多人不需要改变键盘布局或者被提醒他们正在使用英语。要移除这个指示器,选择系统设置,然后文本输入,接着去掉“在菜单栏显示当前输入源”的勾。 (译注:国人可能并不适合这个建议。)

7. 回归传统菜单

在Ubuntu切换到Unity之前,它使用Gnome 2 作为默认的桌面环境。 这包含一个简单的菜单去访问已安装的应用,菜单包含的很多分类,比如: 游戏,办公, 互联网,等等。 你可以用另外一个简单的包找回这个“传统菜单” 。要安装它,运行这个命令:

sudo add-apt-repository -y ppa:diesch/testing && sudo apt-get update && sudo apt-get install -y classicmenu-indicator

8. 安装Flash和Java

在之前的文章中我提到了安装解码器和Silverlight,我应该也提到了Flash和Java是它们所需要的主要插件,虽然有时可能它们可能被遗忘。要安装它们只需运行这个命令:

sudo add-apt-repository -y ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java7-installer flashplugin-installer

安装Java需要新增仓库,因为Ubuntu不再包含它的专利版本(大多数人为了最好的性能推荐使用这个版本),而是使用开源的OpenJDK。

9. 安装VLC

默认的媒体播放器Totem十分优秀但是它依赖很多独立安装的解码器才能很好的工作。我个人推荐你安装VLC媒体播放器, 因为它包含所有解码器并且实际上它支持世界上每一种媒体格式。要安装它,仅仅需要运行如下命令:

sudo apt-get install vlc

10. 安装PuTTY (或者不)

最近,如果你出于SSH的需要而使用PuTTY,你有两个选择:为Linux安装PuTTY,或者直接使用终端。如果你想使用终端安装PuTTY,需要用到这个命令:

sudo apt-get install putty

然而,并不需要直接安装它,因为你可以使用这个命令来连接任何远程主机。

ssh [email protected]

用你想要连接的用户名来替换掉“username”,然后用主机的直接域名或者IP地址替换掉“this.domain.here” 都可以。

你推荐如何调整?

补充了这10个调整,你应该感觉你的Ubuntu真的有家的感觉,这很容易建立起或击溃你的Linux体验。有许多不同的方式去定制你自己的体验去让它更适合你的需要;你只需自己寻找来发现你想要的东西。

您有什么其它的调整和建议想和读者分享?在评论中告诉我们吧!

图片致谢: Home doormat Via Shutterstock


via: http://www.makeuseof.com/tag/10-tweaks-make-ubuntu-feel-like-home/

作者:Danny Stieben 译者:guodongxiaren 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

基本测试

安装好内核后,试试能不能启动它。能启动的话,检查 dmesg 看看有没有隐藏的错误。试试下面的功能:

  • 网络(Wifi 或者网线)是否可用?
  • ssh 是否可用?
  • 使用 ssh 远程传输文件。
  • 使用 git clone 和 git pull 命令。
  • 用用网络浏览器。
  • 查看 email。
  • 使用 ftp, wget 等软件下载文件。
  • 播放音频视频文件。
  • 连上 USB 鼠标等设备。

检查内核日志

使用 dmesg 查看隐藏的问题,对于定位新代码带来的 bug 是一个好方法。一般来说,dmesg 不会输出新的 crit, alert, emerg 级别的错误信息,也不应该出现新的 err 级别的信息。你要注意的是那些 warn 级别的日志信息。请注意 warn 这个级别的信息并不是坏消息,新代码带来新的警告信息,不会给内核带去严重的影响。

  • dmesg -t -l emerg
  • dmesg -t -l crit
  • dmesg -t -l alert
  • dmesg -t -l err
  • dmesg -t -l warn
  • dmesg -t -k
  • dmesg -t

下面的脚本运行了上面的命令,并且将输出保存起来,以便与老的内核的 dmesg 输出作比较(LCTT:老内核的 dmesg 输出在本系列的第二篇文章中有介绍)。然后运行 diff 命令,查看新老内核 dmesg 日志之间的不同。这个脚本需要输入老内核版本号,如果不输入参数,它只会生成新内核的 dmesg 日志文件后直接退出,不再作比较(LCTT:话是这么说没错,但点开脚本一看,没输参数的话,这货会直接退出,连新内核的 dmesg 日志也不会保存的)。如果 dmesg 日志有新的警告信息,表示新发布的内核有漏网之“虫”,这些 bug 逃过了自测和系统测试。你要看看,那些警告信息后面有没有栈跟踪信息?也许这里有很多问题需要你进一步调查分析。

压力测试

执行压力测试的一个好办法是同时跑三四个内核编译任务。下载各种版本的内核,同时编译它们,并记录时间。比较新内核跑压力测试和老内核跑压力测试所花的时间,然后可以定位新内核的性能。如果新内核跑压力测试的时间比老内核的更长,说明新内核的部分模块性能退步了。性能问题很难调试出来。第一步是找出哪里导致的性能退步。同时跑多个内核编译任务对检测内核整体性能来说是个好方法,但是这种方法涵盖了多个内核模块,比如内存管理、文件系统、DMA、驱动等(LCTT:也就是说,这种压力测试没办法定位到是哪个模块造成了性能的下降)。

time make all

内核测试工具

我们可以在 Linux 内核本身找到多种测试方法。下面介绍一个很好用的功能测试工具集: ktest 套件

ktest 是一个自动测试套件,它可以提供编译安装启动内核一条龙测试服务,也可以跑交叉编译测试,前提是你的系统有安装交叉编译所需要的软件。ktest 依赖于 flex 和 bison。详细信息请参考放在 tools/testing/ktest 目录下的文档,你可以自学成材。另外还有一些参考资料教你怎么使用 ktest:

tools/testing/selftests 套件

我们来玩玩自测吧。内核源码的多个子系统都有自己的自测工具,到目前为止,断点、cpu热插拔、efivarfs、IPC、KCMP、内存热插拔、mqueue、网络、powerpc、ptrace、rcutorture、定时器和虚拟机子系统都有自测工具。另外,用户态内存的自测工具可以利用 testusercopy 模块来测试用户态内存到内核态的拷贝过程。下面的命令演示了如何使用这些测试工具:

编译测试:

make -C tools/testing/selftests 

测试全部:(有些测试需要 root 权限,你需要以 root 用户登入系统然后运行命令)

make -C tools/testing/selftests run_tests 

只测试单个子系统:

make -C tools/testing/selftests TARGETS=vm run_tests 

tools/testing/fault-injection 套件

在 tools/testing 目录下的另一个测试套件是 fault-injection。failcmd.sh 脚本用于检测 slab 和内存页分配器的错误。这些工具可以测试内核能否很好地从错误状态中恢复回来。这些测试需要用到 root 权限。下面简单介绍了一些当前能提供的错误检测方法。随着错误检测方法的增加,这份名单也会不断增长。最新的名单请参考 Documentation/fault-injection/fault-injection.txt 文档。

failslab (默认选项)

产生 slab 分配错误。作用于 kmalloc(), kmemcachealloc() 等函数(LCTT:产生的结果是调用这些函数就会返回失败,可以模拟程序分不到内存时是否还能稳定运行下去)。

fail\_page\_alloc

产生内存页分配的错误。作用于 allocpages(), getfree\_pages() 等函数(LCTT:同上,调用这些函数,返回错误)。

fail\_make\_request

对满足条件(可以设置 /sys/block//make-it-fail 或 /sys/block///make-it-fail 文件)的磁盘产生 IO 错误,作用于 generic\_make\_request() 函数(LCTT:所有针对这块磁盘的读或写请求都会出错)。

fail\_mmc\_request

对满足条件(可以设置 /sys/kernel/debug/mmc0/fail\_mmc\_request 这个 debugfs 属性)的磁盘产生 MMC 数据错误。

你可以自己配置 fault-injection 套件的功能。fault-inject-debugfs 内核模块在系统运行时会在 debugfs 文件系统下面提供一些属性文件。你可以指定出错的概率,指定两个错误之间的时间间隔,当然本套件还能提供更多其他功能,具体请查看 Documentation/fault-injection/fault-injection.txt。 Boot 选项可以让你的系统在 debugfs 文件系统起来之前就可以产生错误,下面列出几个 boot 选项:

  • failslab=
  • fail\_page\_alloc=
  • fail\_make\_request=
  • mmc\_core.fail\_request=[interval],[probability],[space],[times]

fault-injection 套件提供接口,以便增加新的功能。下面简单介绍下增加新功能的步骤,详细信息请参考上面提到过的文档:

使用 DECLARE\_FAULT\_INJECTION(name) 定义默认属性;

详细信息可查看 fault-inject.h 中定义的 struct fault\_attr 结构体。

配置 fault 属性,新建一个 boot 选项;

这步可以使用 setup\_fault\_attr(attr, str) 函数完成,为了能在系统启动的早期产生错误,添加一个 boot 选项这一步是必须要有的。

添加 debugfs 属性;

使用 fault\_create\_debugfs\_attr(name, parent, attr) 函数,为新功能添加新的 debugfs 属性。

为模块设置参数;

为模块添加一些参数,对于配置错误属性来说是一个好主意,特别是当新功能的应用范围受限于单个内核模块的时候(LCTT:不同内核,你的新功能可能需要不同的测试参数,通过设置参数,你的功能可以不必为了迎合不同内核而每次都重新编译一遍)。

添加一个钩子函数到错误测试的代码中。

should\_fail(attr, size) —— 当这个钩子函数返回 true 时,用户的代码就应该产生一个错误。

应用程序使用这个 fault-injection 套件可以指定某个具体的内核模块产生 slab 和内存页分配的错误,这样就可以缩小性能测试的范围。


via: http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,2

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

就像我们所知道的,“ifconfig”命令用于配置GNU/Linux系统的网络接口。它显示网络接口卡的详细信息,包括IP地址,MAC地址,以及网络接口卡状态之类。但是,该命令已经过时了,而且在最小化版本的RHEL 7以及它的克隆版本CentOS 7,Oracle Linux 7和Scientific Linux 7中也找不到该命令。

在CentOS最小化服务器版本中如何查找网卡IP和其它详细信息?

CentOS 7最小化系统,使用“ip addr”和“ip link”命令来查找网卡详情。要知道统计数据,可以使用“ip -s link”。

要查看网卡细节,输入以下命令:

ip addr

输出样例:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/void 
    inet 127.0.0.1/32 scope host venet0
    inet 192.168.1.101/32 brd 192.168.1.101 scope global venet0:0

要查看网络接口统计数据,输入命令:

ip link

输出样例:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/void

或者

ip -s link

输出样例:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/void 
    RX: bytes  packets  errors  dropped overrun mcast   
    8515667    6667     0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    300403     4249     0       0       0       0

在CentOS 7最小化服务器版本中如何启用并使用“ifconfig”命令?

如果你不知道在哪里可以找到ifconfig命令,请按照以下简单的步骤来找到它。首先,让我们找出哪个包提供了ifconfig命令。要完成这项任务,输入以下命令:

yum provides ifconfig

输出样例:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.aol.in
 * extras: centos.aol.in
 * updates: centos.aol.in
net-tools-2.0-0.17.20131004git.el7.x86_64 : Basic networking tools
Repo        : @base
Matched from:
Filename    : /usr/sbin/ifconfig

或者你也可以使用以下命令。

yum whatprovides ifconfig

这里,“provides”或者“whatprovides”开关用于找出某个包提供了某些功能或文件。

就像你在上面的输出中所看到的,net-tools包提供了ifconfig命令。因此,让我们安装net-tools包来使用ifconfig命令。

yum install net-tools

现在,你就可以像以往一样使用ifconfig命令了。

ifconfig -a

输出样例:

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

venet0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP>  mtu 1500
        inet 127.0.0.1  netmask 255.255.255.255  broadcast 0.0.0.0  destination 127.0.0.1
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 0  (UNSPEC)
        RX packets 7073  bytes 8549159 (8.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4611  bytes 359201 (350.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

venet0:0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP>  mtu 1500
        inet 192.168.1.101  netmask 255.255.255.255  broadcast 192.168.1.101  destination 192.168.1.101
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 0  (UNSPEC)

尽情享受吧!


via: http://www.unixmen.com/ifconfig-command-found-centos-7-minimal-installation-quick-tip-fix/

作者:Senthilkumar 译者:GOLinux 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

编译安装稳定版内核

如果你用 git 下载源码,就执行以下命令:

cd linux-stable
git checkout linux-3.x.y

如果是直接下载压缩文件,用以下命令进入源码目录:

cd linux-3.x.y

如果你想把内核安装到自己的系统上,最安全的方法是使用你安装好的发行版拥有的配置文件。你可以在 /boot 目录找到当前发行版的内核配置文件:

cp /boot/config-3.x.y-z-generic .config

运行下面的命令,可以在当前内核配置的基础上修改一些小地方,然后产生新的内核配置文件。比如说新的内核比你的 Ubuntu 发行版自带的内核多了些新功能,而你正好需要用到它们,这个时候你就要修改配置了。

make oldconfig

完成配置后,就可以编译了:

make all

完成编译后,安装这个新的内核:

sudo "make modules_install install"

上面的命令安装新内核,并把新内核作为启动项添加到 grub 文件(LCTT:就是你下次开机时会多出一个开机选项)。好了你可以重启电脑,然后选择新的内核启动系统。等等!先别冲动,在重启电脑之前,我们保存下编译内核产生的日志,用于比较和查找错误(如果有错误发生的话):

dmesg -t > dmesg_current
dmesg -t -k > dmesg_kernel
dmesg -t -l emerg > dmesg_current_emerg
dmesg -t -l alert > dmesg_current_alert
dmesg -t -l crit > dmesg_current_alert
dmesg -t -l err > dmesg_current_err
dmesg -t -l warn > dmesg_current_warn

正常的话,dmesg 不会输出 emerg, alert, crit 和 err 级别的信息。如果你不幸看到这些输出了,说明内核或者你的硬件环境有问题。

再介绍一些重启前的需要执行的操作。谁也不能保证新内核能够正常启动,所以请不要潇洒地把老内核删除,至少保留一个稳定可用的内核在系统上。修改一下 /etc/default/grub 文件:

使用 earlyprink=vga 作为内核启动选项,把系统早期启动的信息打印到显示屏上:

GRUB_CMDLINE_LINUX="earlyprink=vga" 

将 GRUB\_TIMEOUT 的值设置成10秒到15秒之间的值,保证在开机启动的时候你有足够的时间来选择启动哪个内核:

取消对 GRUB\_TIMEOUT 的注释,并把它设置为10:GRUB\_TIMEOUT=10

注释掉 GRUB\_HIDDEN\_TIMEOUT 和 GRUB\_HIDDEN\_TIMEOUT\_QUIET

运行 update-grub 命令,更新 /boot 目录下的 grub 配置文件:

sudo update-grub 

现在可以重启系统了。新内核起来后,比较新老内核的 dmesg 信息,看看新的内核有没有编译错误。如果新内核启动失败,你需要通过老内核启动系统,然后分析下为什么失败。

跟上节奏,永不落后(编译最新版内核)

如果你想开上内核快车道,追求与时俱进,那就去下载 mainline 状态的内核或 linux-next 状态的内核(LCTT:读者可进入 kernel.org 获取代码,linux 代码被分为4种状态:mainline, stable, longterm, linux-next)。安装测试 mainline 状态或 linux-next 状态的内核,你就可以在正式发布之前帮助内核找到并修复里面的 bug。

mainline 状态的内核源码:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

linux-next 状态的内核源码:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

编译安装这两种内核的步骤与编译安装稳定版内核一样。按之前讲过的步骤来就行了。

打补丁

Linux 内核的补丁是一个文本文件,包含新源码与老源码之间的差异。每个补丁只包含自己所依赖的源码的改动,除非它被特意包含进一系列补丁之中。打补丁方法如下:

patch -p1 < file.patch
git apply --index file.patch 

两种方法都可以打补丁。但是,如果你要打的补丁包含一个新文件,git 命令不能识别这个新增的文件,也就是说这个新文件在 git 里面属于 untracked 文件(LCTT:玩 git 的人对这个会比较熟悉,就是文件处于未被跟踪的状态,你需要使用 git add 命令将文件放入暂存区)。git diff 命令不会将这个文件的增量显示出来,并且 git status 命令会显示这个文件处于 untracked 状态。

大多数情况下,有个没被跟踪的文件,对于编译安装内核来说没什么问题,但是 git 操作就会出现一些问题了: git reset --hard 命令不会删除这个新加的文件,并且接下来的 git pull 操作也会失败。你有多种选择来避免上面所说的状况:

选项1,不跟踪这个新文件:

如果打补丁后新添加了文件,在 git reset --hard 前使用 git clean 命令来删除没有被跟踪的文件。举个例子,git clean -dfx 命令会强制删除未被跟踪的目录和文件,忽略在 .gitigniore 文件内规定的文件。如果你不在乎哪些文件会被删除,你可以使用 -q 选项让 git clean 命令进入安静模式,不输出任何处理过程。

选项2,跟踪新文件:

你可以在使用 git apply --index file.patch 命令后让 git 跟踪打完补丁后新产生的文件(LCTT:使用 git add 命令),就是让 git 把文件放入 index 区域。做完这个后,git diff 命令会将新文件的增量打印出来,git status 也会显示者这是一个正常的新增文件。

via: http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,1

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Sublime Text 是为程序员准备的最好的文本编辑器之一(尽管不是最最好的)。Sublime 囊括了众多特性并且拥有很棒的界面外观,在三大主流桌面操作系统上均能运行,即 Windows, Mac 还有 Linux 之上。

但这并不表示 Sublime Text 是完美的。它有不少 bug、会崩溃而且几乎没有任何技术支持。如果你有关注过 Sublime Text 的开发过程,你就会发现此时 Sublime Text beta 版已经公布超过一年了,却没有告知用户任何关于它的发行日期的确切信息。最重要的是,Sublime Text 既不免费也不开源

这一系列问题也使 Fredrik Ehnbom 感到沮丧,因此他在 Github 上发起了一个开源项目 —— Lime Text,希望能开发出一款新的、外观与工作方式完全与 Sublime Text 一致的文本编辑器。在被问到为什么他决定去“克隆”一款现有的文本编辑器这个问题时,Frederic 说道:

因为没有一款我试过的其他文本编辑器能达到我对 Sublime Text 的喜爱程度,我决定了我不得不开发出我自己的文本编辑器。

Lime Text 的后端采用 Go 实现,前端则使用了 ermbox,Qt (QML) 及 HTML/JavaScript。开发正根据完全明确可见的目标逐步进行中。你能够在它的 Github 页面中为项目贡献自己的力量。

如果你想要试用 beta 版本,你可以根据 wiki 中的介绍搭建 Lime Text。同时,如果你想找寻其他强大的文本编辑器的话,试一试 SciTE 吧。


via: http://itsfoss.com/lime-text-open-source-alternative/

作者:bhishek 译者:SteveArcher 校对:ReiNoir

本文由 LCTT 原创翻译,Linux中国 荣誉推出