2015年7月

UPDATE: 2015-08-31

QQ 6.3 由于版本低,已不能登录,以下教程已不适用,有想要折腾 wine QQ 的仅供参考。

Linux 上面玩 QQ 一直都是一个问题。Wine 算是一个解决方案,但是也有不少人失败了。由于 QQ 的特殊性,采取了一系列的保护措施,导致 QQ 这个 Windows 程序非常复杂,因此 Wine 在运行 QQ 时表现差强人意。本文将要安装的是 QQ6.3 ,更高的版本除非对 QQ 做出修改,否则很难安装成功,即使成功了,问题也挺多的(笔者已试验过 QQ7.4 安装)。写这个的目的主要是方便有人遇到问题截图提问,毕竟 Linux 的普及工作还得靠大家,对于日常聊天还是建议使用手机QQ 。

本文环境

  • Arch Linux (其他发行版仅供参考)
  • KDE4 & LXDE & GNOME (其它请自测)

准备工具

  • Wine
  • winetricks

简介

  • Wine 是一个在类 Unix 系统中运行 Microsoft Windows 程序的软件, Wine 的全称是 Wine Is Not Emulator 意为 Wine 不是一个模拟器,它通过 API 转换技术做出 Linux 上对应于 Windows 的函数,从而调用 DLL 运行 Windows 程序。
  • winetricks 是一个 script ,可以用来下载和安装各种在 Wine 运行时需要的部分 DLL 和框架。如 .NETVisual C++ runtime library 或微软和其他公司的闭源程序,使用 winetricks 你可以快速安装某些常用的Windows程序。

步骤

1.安装 Wine

$ sudo pacman -S wine

注意:64 位需启用 multilib 仓库才可安装 Wine ,去掉 [multilib] 及其 Include的 “#”即可

$ sudo nano /etc/pacman.conf

2.安装 winetricks

$ sudo pacman -S winetricks

3.获取 winetricks-zhverb 文件,更多详情请到: winetricks-zh

$ mkdir workforwine
$ cd workforwine
$ wget https://github.com/hillwoodroc/winetricks-zh/raw/master/verb/qq.verb

4.安装 QQ

$ WINEARCH=win32 winetricks qq

接下来是漫长的安装过程,会下载一系列需要的组件,将缓存在 ~/.cache/winetricks ,请耐心等待。或许你还可以试试 winetricks-zhwinetricks-zhwinetricks 的本地化版本,添加了更多国人可能用到的软件。

$ wget https://github.com/hillwoodroc/winetricks-zh/raw/master/winetricks-zh
$ chmod +x winetricks-zh
$ ./winetricks-zh

注意:若你觉得 安装QQ 这一步安装 monogecko 太慢,如下图:

installmono

installingmono

installgecko

根据配图我们可以知道 mono.NET 需要的包,而 gecko 则是 HTML 需要的包,并且 wine 也更建议我们使用我们发行版中的 monogecko 包,这有两个好处,一是更加符合自己的发行版,二是不用为每个 PREFIEX 单独安装,因此可以尝试以下操作,其他发行版仅供参考:

$ rm -rf ~/.wine
$ sudo pacman -S wine-mono
$ sudo pacman -S wine_gecko
$ WINEARCH=win32 winetricks qq

需要注意的几点

  • 请确保你安装有文泉驿字体 sudo pacman -S wqy-microhei
  • winetrickswinetricks-zh 安装的区别仅在于安装目录不同, winetricks 未指定位置时默认 ~/.wine ,而winetricks-zh 则安装QQ至 ~/.local/share/wineprefixes/qq
  • 有任何问题都可以直接删除上面提到的两个文件夹重来。
  • wine 的不稳定性,导致用 winetricks 安装字体有时可以解决,有时不可以,笔者试验了很多次以失败告终,希望有谁解决了可以告诉笔者。

其他解决方案

参考资料

自由软件/开源社区与 Apple 之间的争论可以回溯到上世纪80年代,当时 Linux 的创始人称 Mac OS X 的核心就是“一堆废物”。还有其他一些软件史上的轶事。

开源拥护者们与微软之间有着很长、而且摇摆的关系。每个人都知道这个。但是,在许多方面,自由或者开源软件的支持者们与 Apple 之间的争执则更加突出——尽管这很少受到媒体的关注。

需要说明的是,并不是所有的开源拥护者都厌恶苹果。从各种轶事中,我已经见过很多 Linux 的黑客玩耍 iPhone 和iPad。实际上,许多 Linux 用户是十分喜欢 Apple 的 OS X 系统的,以至于他们创造了很多Linux的发行版,都设计得看起来像OS X。(顺便说下,北朝鲜政府就这样做了。)

但是 Mac 的信徒与企鹅的信徒——即 Linux 社区(不包括别的,仅指自由与开源软件世界中的这一小部分)之间的关系,并不一直是完全的和谐。并且这绝不是一个新的现象,在我研究Linux和自由软件基金会历史的时候就发现了。

GNU vs. Apple

这场战争将回溯到至少上世纪80年代后期。1988年6月,Richard Stallman 发起了 GNU 项目,希望建立一个完全自由的类 Unix 操作系统,其源代码将会免费共享,强烈指责 Apple 对 Hewlett-Packard(HPQ)和 Microsoft(MSFT)的诉讼,称Apple的声明中说别人对 Macintosh 操作系统的界面和体验的抄袭是不正确。如果 Apple 流行的话,GNU 警告到,这家公司“将会借助大众的新力量终结掉为取代商业软件而生的自由软件。”

那个时候,GNU 对抗 Apple 的诉讼(这意味着,十分讽刺的是,GNU 正在支持 Microsoft,尽管当时的情况不一样),通过发布“让你的律师远离我的电脑”按钮。同时呼吁 GNU 的支持者们抵制 Apple,警告虽然 Macintosh 看起来是不错的计算机,但 Apple 一旦赢得了诉讼就会给市场带来垄断,这会极大地提高计算机的售价。

Apple 最终输掉了这场诉讼,但是直到1994年之后,GNU 才撤销对 Apple 的抵制。这期间,GNU 一直不断指责 Apple。在上世纪90年代早期甚至之后,GNU 开始发展 GNU 软件项目,可以在其他个人电脑平台包括 MS-DOS 计算机上使用。GNU 宣称,除非 Apple 停止在计算机领域垄断的野心,让用户界面可以模仿 Macintosh 的一些东西,否则“我们不会提供任何对 Apple 机器的支持。”(因此讽刺的是 Apple 在90年代后期开发的类 UNIX 系统 OS X 有一大堆软件来自GNU。但是那是另外的故事了。)

Torvalds 与 Jobs

除去他对大多数发行版比较自由放任的态度,Linux内核的创造者 Liuns Torvalds 相较于 Stallman 和 GNU 过去对Apple 的态度和善得多。在他 2001 年出版的书”Just For Fun: The Story of an Accidental Revolutionary“中,Torvalds 描述到与 Steve Jobs 的一次会面,大约是 1997 年收到后者的邀请去讨论 Mac OS X,当时 Apple 正在开发中,但还没有公开发布。

“基本上,Jobs 一开始就试图告诉我在桌面上的玩家就两个,Microsoft 和 Apple,而且他认为我能为 Linux 做的最好的事,就是从了 Apple,努力让开源用户去支持 Mac OS X” Torvalds 写道。

这次会谈显然让 Torvalds 很不爽。争吵的一点集中在 Torvalds 对 Mach 技术上的藐视,对于 Apple 正在用于构建新的 OS X 操作系统的内核,Torvalds 称其“一堆废物。它包含了所有你能做到的设计错误,并且甚至打算只弥补一小部分。”

但是更令人不快的是,显然是 Jobs 在开发 OS X 时入侵开源的方式(OS X 的核心里上有很多开源程序):“他有点贬低了结构的瑕疵:谁在乎基础操作系统这个真正的 low-core 东西是不是开源,如果你有 Mac 层在最上面,这不是开源?”

一切的一切,Torvalds 总结到,Jobs “并没有太多争论。他仅仅很简单地说着,胸有成竹地认为我会对与 Apple 合作感兴趣”。“他一无所知,不能去想像还会有人并不关心 Mac 市场份额的增长。我认为他真的感到惊讶了,当我表现出对 Mac 的市场有多大,或者 Microsoft 市场有多大的毫不关心时。”

当然,Torvalds 并没有对所有 Linux 用户说起过。他对于 OS X 和 Apple 的看法从 2001 年开始就渐渐软化了。但实际上,早在2000年,Linux 社区的领导角色表现出对 Apple 及其高层的傲慢的深深的鄙视,可以看出一些重要的东西,关于 Apple 世界和开源/自由软件世界的矛盾是多么的根深蒂固。

从以上两则历史上的花边新闻中,可以看到关于 Apple 产品价值的重大争议,即是否该公司致力于提升其创造的软硬件的质量,或者仅仅是借市场的小聪明获利,让Apple产品卖出更多的钱而不是创造等同其价值的功能。但是不管怎样,我会暂时置身讨论之外。


via: http://thevarguy.com/open-source-application-software-companies/051815/linux-better-os-x-gnu-open-source-and-apple-

作者:Christopher Tozzi 译者:wi-cuckoo 校对:wxy

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

我们用了5篇系列文章,来让人们意识到那些可以帮助他们获得理想职业的顶级技能。在这个充满竞争的社会里,你不能仅仅依赖一项仅能,你需要在多个职业技能上都有所涉猎。我们并不能权衡这些技能,但是我们可以参考这些几乎不变的惯例和统计数据。

下面的文章和紧跟其后的内容,是针对全球各大IT公司上一季度对员工技能要求的详细调查报告。统计数据真实的反映了需求和市场的变化。我们会尽力让这份报告保持时效性,特别是有明显变化的时候。这五篇系列文章是:

1. Windows

微软研发的windows操作系统不仅在PC市场上占据龙头地位,而且从职位视角来看也是最抢手的操作系统技能,不管你是赞成还是反对。有资料显示上一季度需求增长达到0.1%.

最新版本 : Windows 8.1

2. Red Hat Enterprise Linux

Red Hat Enterprise Linux 是一个商业的Linux发行版本,它由红帽公司研发。它是世界上运用最广的Linux发行版本之一,特别是在生产环境和协同工作方面。上一季度其整体需求上涨17%,位列第二。

最新版本 : RedHat Enterprise Linux 7.1

3. Solaris

排在第三的是 Solaris UNIX操作系统,最初由Sun Microsystems公司研发,现由Oracle公司负责继续研发。在上一季度起需求率上涨14%.

最新版本:Oracle Solaris 10 1/13

4. AIX

排在第四的是AIX,这是一款由IBM研发的专用 Unix 操作系统。在上一季度需求率上涨11%。

最新版本 : AIX 7

5. Android

排在第5的是谷歌公司研发的安卓系统,它是一款使用非常广泛的开源操作系统,专门为手机、平板电脑、可穿戴设备设计的。在上一季度需求率上涨4%。

最新版本 : Android 5.1 aka Lollipop

6. CentOS

排在第6的是 CentOS,它是从 RedHat Enterprise Linux 衍生出的一个发行版本。在上一季度需求率上涨接近22%。

最新版本 : CentOS 7

7. Ubuntu

排在第7的是Ubuntu,这是一款由Canonicals公司研发设计的Linux系统,旨在服务于个人。上一季度需求率上涨11%。

最新版本 :

  • Ubuntu 14.10 (已有九个月的安全和维护更新).
  • Ubuntu 14.04.2 LTS

8. Suse

排在第8的是由Novell研发的 Suse,这款发行版本的Linux操作系统因为YaST 配置工具而闻名。其上一季度需求率上涨8%。

最新版本 : 13.2

9. Debian

排在第9的是非常有名的 Linux 操作系统Debian,它是上百种Linux 发行版之母,非常接近GNU理念。其上一季度需求率上涨9%。

最新版本: Debian 7.8

10. HP-UX

排在第10的是Hewlett-Packard公司研发的专用 Linux 操作系统HP-UX,上一季度需求率上涨5%。

最新版本 : 11i v3 Update 13

| 1 | Windows | 0.1% + |
| 2 | RedHat | 17% + |
| 3 | Solaris | 14% + |
| 4 | AIX | 11% + |
| 5 | Android | 4% + |
| 6 | CentOS | 22% + |
| 7 | Ubuntu | 11% + |
| 8 | Suse | 8% + |
| 9 | Debian | 9% - |
| 10 | HP-UX | 5% - |

以上便是全部信息,我会尽快推出下一篇系列文章,敬请关注Tecmint。不要忘了留下您宝贵的评论。如果您喜欢我们的文章并且与我们分享您的见解,这对我们的工作是一种鼓励。


via: http://www.tecmint.com/top-distributions-in-demand-to-get-your-dream-job/

作者:Avishek Kumar 译者:sevenot 校对:wxy

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

无论是体积还是价值,数据都在不断增长。快速而可靠地备份和恢复数据正变得越来越重要。社会已经适应了技术的广泛使用,并懂得了如何依靠电脑和移动设备,但很少有人能够面对丢失重要数据的现实。在遭受数据损失的公司中,30% 的公司将在一年内损失一半市值,70% 的公司将在五年内停止交易。这更加凸显了数据的价值。

随着数据在体积上的增长,提高存储利用率尤为重要。从计算机的角度说,数据去重是一种特别的数据压缩技术,因为它可以消除重复数据的拷贝,所以这个技术可以提高存储利用率。

数据并不仅仅只有其创造者感兴趣。政府、竞争者、犯罪分子、偷窥者可能都热衷于获取你的数据。他们或许想偷取你的数据,从你那里进行敲诈,或看你正在做什么。因此,对于保护你的数据,加密是非常必要的。

所以,解决方法是我们需要一个可以去重的加密备份软件。

对于所有的用户而言,做文件备份是一件非常必要的事,至今为止许多用户还没有采取足够的措施来保护他们的数据。一台电脑不论是工作在一个合作的环境中,还是供私人使用,机器的硬盘可能在没有任何警告的情况下挂掉。另外,有些数据丢失可能是人为的错误所引发的。如果没有做经常性的备份,数据也可能不可避免地丢失,即使请了专业的数据恢复公司来帮忙。

这篇文章将对 6 个去重加密备份工具进行简要的介绍。

Attic

Attic 是一个可用于去重、加密,验证完整性的压缩备份程序,它是用 Python 写的。Attic 的主要目标是提供一个高效且安全的方式来备份数据。Attic 使用的数据去重技术使得它适用于每日备份,因为只需存储改变的数据。

其特点有:

  • 易用
  • 可高效利用存储空间,通过检查冗余的数据,对可变块大小的去重可以减少存储所用的空间
  • 可选的数据加密,使用 256 位的 AES 加密算法。数据的完整性和可靠性使用 HMAC-SHA256 来校验
  • 使用 SDSH 来进行离线备份
  • 备份可作为文件系统来挂载

网站: attic-backup.org

Borg

Borg 是 Attic 的一个分支。它是一个安全的开源备份程序,被设计用来高效地存储那些新的或修改过的数据。

Borg 的主要目标是提供一个高效、安全的方式来存储数据。Borg 使用的数据去重技术使得它适用于每日备份,因为只需存储改变的数据。认证加密使得它适用于存储在不完全可信的位置。

Borg 由 Python 写成。Borg 于 2015 年 5 月被创造出来,是为了解决让新的代码或重大的改变带入 Attic 的困难。

其特点包括:

  • 易用
  • 可高效利用存储空间,通过检查冗余的数据,对可变块大小的去重被用来减少存储所用的空间
  • 可选的数据加密,使用 256 位的 AES 加密算法。数据的完整性和可靠性使用 HMAC-SHA256 来校验
  • 使用 SDSH 来进行离线备份
  • 备份可作为文件系统来挂载

Borg 与 Attic 不兼容。

网站: borgbackup.github.io/borgbackup

Obnam

Obnam (OBligatory NAMe) 是一个易用、安全的基于 Python 的备份程序。备份可被存储在本地硬盘或通过 SSH SFTP 协议存储到网上。若使用了备份服务器,它并不需要任何特殊的软件,只需要使用 SSH 即可。

Obnam 通过将数据分成数据块,并单独存储它们来达到去重的目的,每次通过增量备份来生成备份,每次备份的生成就像是一次新的快照,但事实上是真正的增量备份。Obnam 由 Lars Wirzenius 开发。

其特点有:

  • 易用
  • 快照备份
  • 数据去重,跨文件,然后生成备份
  • 可使用 GnuPG 来加密备份
  • 向一个单独的仓库中备份多个客户端的数据
  • 备份检查点 (创建一个保存点,以每 100MB 或其他容量)
  • 包含多个选项来调整性能,包括调整 lru-size 或 upload-queue-size
  • 支持 MD5 校验算法来识别重复的数据块
  • 通过 SFTP 将备份存储到一个服务器上
  • 同时支持 push(即在客户端上运行) 和 pull(即在服务器上运行)

网站: obnam.org

Duplicity

Duplicity 以 tar 文件格式增量备份文件和目录,并使用 GnuPG 来进行加密,同时将它们上传到远程(或本地)的文件服务器上。它可以使用 ssh/scp、本地文件获取、rsync、 ftp 和 Amazon S3 等来传递数据。

因为 duplicity 使用了 librsync, 增量存档可以高效地利用存储空间,且只记录自从上次备份依赖改变的那部分文件。由于该软件使用 GnuPG 来加密或对这些归档文件进行进行签名,这使得它们免于服务器的监视或修改。

当前 duplicity 支持备份删除的文件,全部的 unix 权限,目录,符号链接, fifo 等。

duplicity 软件包还包含有 rdiffdir 工具。 Rdiffdir 是 librsync 的 rdiff 针对目录的扩展。它可以用来生成对目录的签名和差异,对普通文件也有效。

其特点有:

  • 使用简单
  • 对归档进行加密和签名(使用 GnuPG)
  • 高效使用带宽和存储空间,使用 rsync 的算法
  • 标准的文件格式
  • 可选择多种远程协议

    • 本地存储
    • scp/ssh
    • ftp
    • rsync
    • HSI
    • WebDAV
    • Amazon S3

网站: duplicity.nongnu.org

ZBackup

ZBackup 是一个通用的全局去重备份工具。

其特点包括:

  • 对存储数据并行进行 LZMA 或 LZO 压缩,在一个仓库中,你还可以混合使用 LZMA 和 LZO
  • 内置对存储数据的 AES 加密
  • 能够删除旧的备份数据
  • 可以使用 64 位的滚动哈希算法,使得文件冲突的数量几乎为零
  • 仓库中存储的文件是不可修改的,已备份的文件不会被修改。
  • 用 C++ 写成,只需少量的库文件依赖
  • 在生成环境中可以安全使用
  • 可以在不同仓库中进行数据交换而不必再进行压缩
  • 使用 64 位改进型 Rabin-Karp 滚动哈希算法

网站: zbackup.org

bup

bup 是一个用 Python 写的备份程序,其名称是 "backup" 的缩写。基于 git packfile 文件格式, bup 提供了一个高效的方式来备份一个系统,提供快速的增量备份和全局去重(在文件中或文件里,甚至包括虚拟机镜像)。

bup 在 LGPL 版本 2 协议下发行。

其特点包括:

  • 全局去重 (在文件之间或文件内部,甚至包括虚拟机镜像)
  • 使用一个滚动的校验和算法(类似于 rsync) 来将大文件分为多个数据块
  • 使用来自 git 的 packfile 文件格式
  • 直接写入 packfile 文件,以此提供快速的增量备份
  • 可以使用 "par2" 冗余来恢复冲突的备份
  • 可以作为一个 FUSE 文件系统来挂载你的 bup 仓库

网站: bup.github.io


via: http://www.linuxlinks.com/article/20150628060000607/BackupTools.html

译者:FSSlc 校对:wxy

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

Vim是Linux上一个轻量级的通用文本编辑器。虽然它开始时的学习曲线对于一般的Linux用户来说可能很困难,但比起它的好处,这些付出完全是值得的。vim 可以通过完全可定制的插件来增加越来越多的功能。但是,由于它的功能配置比较难,你需要花一些时间去了解它的插件系统,然后才能够有效地去个性化定置Vim。幸运的是,我们已经有一些工具能够使我们在使用Vim插件时更加轻松。而我日常所使用的就是Vundle。

什么是Vundle

Vundle意即Vim Bundle,是一个vim插件管理器。Vundle能让你很简单地实现插件的安装、升级、搜索或者清除。它还能管理你的运行环境并且在标签方面提供帮助。在本教程中我们将展示如何安装和使用Vundle。

安装Vundle

首先,如果你的Linux系统上没有Git的话,先安装Git

接着,创建一个目录,Vim的插件将会被下载并且安装在这个目录上。默认情况下,这个目录为~/.vim/bundle。

$ mkdir -p ~/.vim/bundle 

现在,使用如下指令安装Vundle。注意Vundle本身也是一个vim插件。因此我们同样把vundle安装到之前创建的目录~/.vim/bundle下。

$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim 

配置Vundle

现在配置你的.vimrc文件如下:

set nocompatible              " 必需。 
filetype off                  " 必须。

" 在这里设置你的运行时环境的路径。
set rtp+=~/.vim/bundle/Vundle.vim

" 初始化vundle
call vundle#begin()

" 这一行应该永远放在开头。
Plugin 'gmarik/Vundle.vim'

" 这个示范来自https://github.com/gmarik/Vundle.vim README
Plugin 'tpope/vim-fugitive'

" 取自http://vim-scripts.org/vim/scripts.html的插件
Plugin 'L9'

" 该Git插件没有放在GitHub上。
Plugin 'git://git.wincent.com/command-t.git'

"本地计算机上的Git仓库路径 (例如,当你在开发你自己的插件时)
Plugin 'file:///home/gmarik/path/to/plugin'

" vim脚本sparkup存放在这个名叫vim的仓库下的一个子目录中。
" 将这个路径正确地设置为runtimepath。
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}

" 避免与L9发生名字上的冲突
Plugin 'user/L9', {'name': 'newL9'}

"所有的插件都应该在这一行之前。
call vundle#end()            " 必需。

容我简单解释一下上面的设置:默认情况下,Vundle将从github.com或者vim-scripts.org下载和安装vim插件。你也可以改变这个默认行为。

要从github安装插件:

Plugin 'user/plugin'

要从 http://vim-scripts.org/vim/scripts.html 处安装:

Plugin 'plugin_name'

要从另外一个git仓库中安装:

Plugin 'git://git.another_repo.com/plugin'

从本地文件中安装:

Plugin 'file:///home/user/path/to/plugin'

你同样可以定制其它东西,例如你的插件的运行时路径,当你自己在编写一个插件时,或者你只是想从其它目录——而不是~/.vim——中加载插件时,这样做就非常有用。

Plugin 'rstacruz/sparkup', {'rtp': 'another_vim_path/'}

如果你有同名的插件,你可以重命名你的插件,这样它们就不会发生冲突了。

Plugin 'user/plugin', {'name': 'newPlugin'}

使用Vum命令

一旦你用vundle设置好你的插件,你就可以通过几个vundle命令来安装、升级、搜索插件,或者清除没有用的插件。

安装一个新的插件

PluginInstall命令将会安装所有列在你的.vimrc文件中的插件。你也可以通过传递一个插件名给它,来安装某个的特定插件。

:PluginInstall
:PluginInstall <插件名>

清除没有用的插件

如果你有任何没有用到的插件,你可以通过PluginClean命令来删除它。

:PluginClean

查找一个插件

如果你想从提供的插件清单中安装一个插件,搜索功能会很有用。

:PluginSearch <文本>

在搜索的时候,你可以在交互式分割窗口中安装、清除、重新搜索或者重新加载插件清单。安装后的插件不会自动加载生效,要使其加载生效,可以将它们添加进你的.vimrc文件中。

总结

Vim是一个妙不可言的工具。它不单单是一个能够使你的工作更加顺畅高效的默认文本编辑器,同时它还能够摇身一变,成为现存的几乎任何一门编程语言的IDE。

注意,有一些网站能帮你找到适合的vim插件。猛击 http://www.vim-scripts.org, Github或者 http://www.vimawesome.com 获取新的脚本或插件。同时记得使用为你的插件提供的帮助。

和你最爱的编辑器一起嗨起来吧!


via: http://xmodulo.com/manage-vim-plugins.html

作者:Christopher Valerio 译者:XLCYun(袖里藏云) 校对:wxy

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

简介

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件/文件夹。它不像其它的同步工具,如BitTorrent SyncDropbox那样,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是完全开源的,安全且私密的。你所有的珍贵数据都会被存储在你的系统中,这样你就能对你的文件和文件夹拥有全面的控制权,没有任何的文件或文件夹会被存储在第三方系统中。此外,你有权决定这些数据该存于何处,是否要分享到第三方,或这些数据在互联网上的传输方式。

所有的信息通讯都使用TLS进行加密,这样你的数据便能十分安全地逃离窥探。Syncthing有一个强大的响应式的网页管理界面(WebGUI,下同),它能够帮助用户简便地添加、删除和管理那些通过网络进行同步的文件夹。通过使用Syncthing,你可以在多个系统上一次同步多个文件夹。在安装和使用上,Syncthing是一个可移植的、简单而强大的工具。即然文件或文件夹是从一部计算机中直接传输到另一计算机中的,那么你就无需考虑向云服务供应商支付金钱来获取额外的云空间。你所需要的仅仅是非常稳定的LAN/WAN连接以及在你的系统中有足够的硬盘空间。它支持所有的现代操作系统,包括GNU/Linux, Windows, Mac OS X, 当然还有Android。

安装

基于本文的目的,我们将使用两个系统,一个是Ubuntu 14.04 LTS, 一个是Ubuntu 14.10 server。为了简单辨别这两个系统,我们将分别称其为系统1系统2

系统1细节:

  • 操作系统: Ubuntu 14.04 LTS server;
  • 主机名: server1.unixmen.local;
  • IP地址: 192.168.1.150.
  • 系统用户: sk (你可以使用你自己的系统用户)
  • 同步文件夹: /home/Sync/ (Syncthing会默认创建)

系统2细节:

  • 操作系统: Ubuntu 14.10 server;
  • 主机名: server.unixmen.local;
  • IP地址: 192.168.1.151.
  • 系统用户: sk (你可以使用你自己的系统用户)
  • 同步文件夹: /home/Sync/ (Syncthing会默认创建)

在系统1和系统2上为Syncthing创建用户

在两个系统上运行下面的命令来为Syncthing创建用户以及两系统间的同步文件夹。

sudo useradd sk
sudo passwd sk

为系统1和系统2安装Syncthing

在系统1和系统2上遵循以下步骤进行操作。

官方下载页上下载最新版本。我使用的是64位版本,因此下载64位版的软件包。

wget https://github.com/syncthing/syncthing/releases/download/v0.10.20/syncthing-linux-amd64-v0.10.20.tar.gz

解压缩下载的文件:

tar xzvf syncthing-linux-amd64-v0.10.20.tar.gz

切换到解压缩出来的文件夹:

cd syncthing-linux-amd64-v0.10.20/

复制可执行文件"syncthing"到$PATH

sudo cp syncthing /usr/local/bin/

现在,执行下列命令来首次运行Syncthing:

syncthing

当你执行上述命令后,syncthing会生成一个配置以及一些配置键值,并且在你的浏览器上打开一个管理界面。

输入示例:

[monitor] 15:40:27 INFO: Starting syncthing
 15:40:27 INFO: Generating RSA key and certificate for syncthing...
 [BQXVO] 15:40:34 INFO: syncthing v0.10.20 (go1.4 linux-386 default) unknown-user@syncthing-builder 2015-01-13 16:27:47 UTC
 [BQXVO] 15:40:34 INFO: My ID: BQXVO3D-VEBIDRE-MVMMGJI-ECD2PC3-T5LT3JB-OK4Z45E-MPIDWHI-IRW3NAZ
 [BQXVO] 15:40:34 INFO: No config file; starting with empty defaults
 [BQXVO] 15:40:34 INFO: Edit /home/sk/.config/syncthing/config.xml to taste or use the GUI
 [BQXVO] 15:40:34 INFO: Starting web GUI on http://127.0.0.1:8080/
 [BQXVO] 15:40:34 INFO: Loading HTTPS certificate: open /home/sk/.config/syncthing/https-cert.pem: no such file or directory
 [BQXVO] 15:40:34 INFO: Creating new HTTPS certificate
 [BQXVO] 15:40:34 INFO: Generating RSA key and certificate for server1...
 [BQXVO] 15:41:01 INFO: Starting UPnP discovery...
 [BQXVO] 15:41:07 INFO: Starting local discovery announcements
 [BQXVO] 15:41:07 INFO: Starting global discovery announcements
 [BQXVO] 15:41:07 OK: Ready to synchronize default (read-write)
 [BQXVO] 15:41:07 INFO: Device BQXVO3D-VEBIDRE-MVMMGJI-ECD2PC3-T5LT3JB-OK4Z45E-MPIDWHI-IRW3NAZ is "server1" at [dynamic]
 [BQXVO] 15:41:07 INFO: Completed initial scan (rw) of folder default

Syncthing已经被成功地初始化了,网页管理接口也可以通过浏览器访问URL: http://localhost:8080。如上面输入所看到的,Syncthing在你的home目录中的Sync目录下自动为你创建了一个名为default**的文件夹。

默认情况下,Syncthing的网页管理界面只能在本地端口(localhost)中进行访问,要从远程进行访问,你需要在两个系统中进行以下操作:

首先,按下CTRL+C键来终止Syncthing初始化进程。现在你回到了终端界面。

编辑config.xml文件,

sudo nano ~/.config/syncthing/config.xml

找到下面的指令:

[...]
<gui enabled="true" tls="false">
 <address>127.0.0.1:8080</address>
 <apikey>-Su9v0lW80JWybGjK9vNK00YDraxXHGP</apikey>
</gui>
[...]

在区域中,把127.0.0.1:8080改为0.0.0.0:8080。结果,你的config.xml看起来会是这样的:

<gui enabled="true" tls="false">
 <address>0.0.0.0:8080</address>
 <apikey>-Su9v0lW80JWybGjK9vNK00YDraxXHGP</apikey>
</gui>

保存并关闭文件。

在两个系统上再次执行下述命令:

syncthing

访问网页管理界面

现在,在你的浏览器上打开http://ip-address:8080/。你会看到下面的界面:

网页管理界面分为两个窗格,在左窗格中,你应该可以看到同步的文件夹列表。如前所述,文件夹default在你初始化Syncthing时被自动创建。如果你想同步更多文件夹,点击Add Folder按钮。

在右窗格中,你可以看到已连接的设备数。现在这里只有一个,就是你现在正在操作的计算机。

网页管理界面上设置Syncthing

为了提高安全性,让我们启用TLS,并且设置访问网页管理界面的管理员用户和密码。要做到这点,点击右上角的齿轮按钮,然后选择Settings

输入管理员的帐户名/密码。我设置的是admin/Ubuntu。你应该使用一些更复杂的密码。

点击Save按钮,现在,你会被要求重启Syncthing使更改生效。点击Restart。

刷新你的网页浏览器。你可以看到一个像下面一样的SSL警告。点击显示我了解风险(I understand the Risks)的按钮。接着,点击“添加例外(Add Exception)“按钮把当前页面添加进浏览器的信任列表中。

输入前面几步设置的管理员用户和密码。我设置的是admin/ubuntu

现在,我们提高了网页管理界面的安全性。别忘了两个系统都要执行上面同样的步骤。

连接到其它服务器

要在各个系统之间同步文件,你必须各自告诉它们其它服务器的信息。这是通过交换设备IDs(device IDs)来实现的。你可以通过选择“齿轮菜单(gear menu)”(在右上角)中的”Show ID(显示ID)“来找到它。

例如,下面是我系统1的ID.

复制这个ID,然后到另外一个系统(系统2)的网页管理界面,在右边窗格点击Add Device按钮。

接着会出现下面的界面。在Device区域粘贴系统1 ID **。输入设备名称(可选)。在地址区域,你可以输入其它系统( LCTT 译注:即粘贴的ID所属的系统,此应为系统1)的IP地址,或者使用默认值。默认值为dynamic。最后,选择要同步的文件夹。在我们的例子中,同步文件夹为default**。

一旦完成了,点击save按钮。你会被要求重启Syncthing。点击Restart按钮重启使更改生效。

现在,我们到系统1的网页管理界面,你会看到来自系统2的连接和同步请求。点击Add按钮。现在,系统2会要求系统1分享和同步名为default的文件夹。

接着重启系统1的Syncthing服务使更改生效。

等待大概60秒,接着你会看到两个系统之间已成功连接并同步。

你可以在网页管理界面中的Add Device区域核实该情况。

添加系统2后,系统1网页管理界面中的控制窗口如下:

添加系统1后,系统2网页管理界面中的控制窗口如下:

现在,在任一个系统中的“default”文件夹中放进任意文件或文件夹。你应该可以看到这些文件/文件夹被自动同步到其它系统。

本文完!祝同步愉快!

噢耶!!!


via: http://www.unixmen.com/syncthing-private-secure-tool-sync-filesfolders-computers/

作者:SK 译者:XLCYun 校对:wxy

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