标签 技巧 下的文章

如果你想使你计算机上的某些信息免于被窥视的话,可以看看这篇文字。保护信息的一种方法就是加密你的home目录,但是一旦你登录系统后,你的home目录下的信息将暴露于外。过去,我已经写过关于怎样在你的系统上使用Cryptkeeper来创建加密的文件夹。Cryptkeeper是一个图形前端,后端是 encfs。encfs允许你创建一个加密的文件夹,然后通过FUSE来挂载作为用户文件系统。在这篇教程里,我会教你怎么在Linux系统上的命令行下面使用encfs工具来创建和管理一个加密的文件夹。

安装encfs

如果你使用的是Ubuntu或者它的衍生版本中的一种如Linux Mint的话,在软件源库当中应该能找到encfs。这种情况,可以用下面的命令来安装

sudo apt-get install encfs 

用encfs创建加密文件夹

一旦在系统中安装好了encfs后,你就能在你的home目录下创建一个加密的文件夹。在这个示例当中,我将会创建一个叫做tuxtweaks的加密文件夹,这通过终端窗口就可以完成。当创建一个新的文件夹的时候,你需要指定全路径名,当然也可以使用如下所示的标准快捷方式。

encfs ~/.tuxtweaks ~/tuxtweaks 

这会创建两个文件夹。第一个.tuxtweaks,它包含被加密的信息;第二个tuxtweaks,当你想要访问信息的时候,解密的版本信息将会挂载到下面。如果这些文件夹都不存在,系统将会提示询问是否创建它们。在提示下面键入‘y’以允许创建文件夹,然后你应该能看到如下所示的一些信息:

Creating new encrypted volume. Please choose from one of the following options: enter "x" for expert configuration mode, enter "p" for pre-configured paranoia mode, anything else, or an empty line will select standard mode. 

如果你想要最高级别的加密文件夹的话,在提示符下输入p选项。否则只需敲击[Enter]键,就会以标准选项来创建新的加密文件夹。

之后,你将会看到新加密卷的参数列表及一些警告信息,随之提示符会让输入一个密码。确保不要忘记使用的密码,因为没有密码找回机制。在输入密码并以第二次输入校验通过后,新的文件夹会被创建成功,并自动挂载进文件系统,可以开始使用了。

使用加密文件夹

一旦新加密文件夹被挂载上,它就跟你系统上的其它文件夹一样的使用,但如果你把它设置为paranoia模式的话,使用它的硬链接会出现不可用的异常。我想,这对大多数用户来说并不是问题。让我们继续吧,在新文件夹里创建一个简单的文本文件,然后用它来做测试。

echo "GNU/Linux is my favorite computer operating system." >~/tuxtweaks/test.txt 

在终端下或在文件系统管理器下,你都能看到在tuxtweaks目录里已经有一个叫做test.txt的新文件。打开此文件可看到这里一个完全可读的文本文件。现在切换到~/.tuxtweaks目录下,这是你文件夹的加密版本,可以看到这里的文件名不一样了,如里你查看此文件的内容话,会发现是乱糟糟的。

卸载encfs创建的加密文件夹

一旦你完成文件访问或者数据创建等操作,最好把加密文件夹卸载,以便里面的信息安全的隐藏掉。encfs自身不带有卸载的命令,一旦用它创建了用户文件系统,就可以利用FUSE来处理卸载任务。下面我们会使用fusermount命令来卸载我们的加密文件夹。

fusermount -u ~/tuxtweaks 

切换到home目录下,会看到tuxtweaks目录仍然存在,但进入文件夹,你会发现里面是空的。(译注:因为tuxtweaks目录只是一个挂载点,真实的数据是以加密的方式存储在.tuxtweaks目录下的,)

挂载用encfs创建的加密文件夹

下一次你想要访问加密数据的话,你需要重新加载并解密它,仅仅只需要使用跟我们在第一步创建此文件夹相同的命令就可以。

encfs ~/.tuxtweaks ~/tuxtweaks 

用途

我发现使用encfs加密文件夹来安全地存储财务信息非常便捷,比如纳税申报表以及用于存储日志列表凭据。这样我只需要记住我加密文件夹的密码,然后就可以进入访问记录有其他登录ID和密码的名单文件。

你会使用encfs来做什么呢?在评论中给我们分享吧。


via: http://tuxtweaks.com/2013/10/encrypted-folders-linux-encfs/

译者:runningwater 校对:wxy

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

Ubuntu 13.10已经发布,不过它的内核可不是最新的。当然坚持Ubuntu 13.10当前内核不是一件坏事。事实上。不特别建议升级超出你的Linux发行版的官方仓库测试过的特定版本。

但另一方面,如果你不害怕一再折腾Ubuntu,那么你可以试试升级到最新Ubuntu支持的Linux内核。你会发觉最新的内核总是有改善的、修补了漏洞和添加特性的.

所以,如果你的电脑有些运行不正常,那么更新Linux内核可能就能修复。但记住,当你升级时你也有可能导致系统崩溃。

如果你不再惧怕,和我一起永往直前吧,让我们开始升级Ubuntu Linux 内核到 3.11.6!!

首先,在你开始升级之前,请先备份你的数据,以防升级时出错无法恢复。小心行得万年船!!!

更多关于这个内核版本信息,阅读更改日志

当你一切准备就绪,运行下列命令来升级你的机器并删除包括比当前更旧的内核在内的旧软件包。

sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove

然后,进到/tmp目录。

cd /tmp

接着,复制粘贴下列命令,按回车下载32位的Linux内核

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.6-saucy/linux-headers-3.11.6-031106-generic_3.11.6-031106.201310181453_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.6-saucy/linux-headers-3.11.6-031106_3.11.6-031106.201310181453_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.6-saucy/linux-image-3.11.6-031106-generic_3.11.6-031106.201310181453_i386.deb

对于64位Linux内核版本,则复制粘贴下行。

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.6-saucy/linux-headers-3.11.6-031106-generic_3.11.6-031106.201310181453_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.6-saucy/linux-headers-3.11.6-031106_3.11.6-031106.201310181453_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.6-saucy/linux-image-3.11.6-031106-generic_3.11.6-031106.201310181453_amd64.deb

下载适合你的版本,运行下列命令,开始安装:

sudo dpkg -i *.deb

最后,运行下列命令升级Grub。

sudo update-grub2

就这样!重启你的电脑,完成升级!!

玩的开心!


via: http://www.liberiangeek.net/2013/10/upgrade-linux-kernel-3-11-6-ubuntu/

译者:Luoxcat 校对:wxy

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

本文为你提供了一个简单的小技巧,告诉你如何用你自己图片来替换登陆窗口的背景。Ubuntu的登陆窗口挺不错的,可能比大多数发行版的都要好,但是如果你想要使用一张你自己的图片,比如一张可以让你回忆起某个特定的地方或事情的图片,你就可以按照下面的步骤来更换上它。

有许多方法可以做到这一点,这篇博文介绍的只是其中一种。下面介绍的方法可以使用dconf-editor和lightdm用户身份来完成这样的效果。简单来说就是,切换到root用户,给予lightdm用户访问x-server的权限。然后使用lightdm用户身份,运行dconf-editor,然后做出修改。

在设置完自定义图片并且重启后,每次启动电脑时你就应该能看到你设置的图片。若设置的图片是一张你非常喜欢的并且能给你带给你很多回忆的图片,那么你每次启动电脑登陆到Ubuntu时一定非常开心。

这个手册假设你已经在你的电脑上安装了dconf-editor。若没有,你可以运行以下命令来安装dconf-editor

sudo apt-get install dconf-editor 

下一步,选择你要作为登陆背景的图片。然后,记下图片的位置以及图片的名字,运行以下命令切换到root用户。

sudo –i 

下一步,运行以下命令给予lightdm用户访问X-server的权限。Lightdm是一个管理登陆窗口背景的服务程序,因此假如你要更换登陆窗口的背景图片,你就要修改lightdm用户。

xhost +SI:localuser:lightdm 

下一步,运行以下命令切换到lightdm用户

su lightdm -s /bin/bash 

然后,运行以下命令开启dconf-editor

dconf-editor 

当工具打开后,浏览到 com->canonical->unity-greeter。然后改变背景值为自定义的图盘。你可能需要勾掉draw-grid。

重启电脑,尽情享受~


via: http://www.liberiangeek.net/2013/09/daily-ubuntu-tipschange-logon-screen-background/

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

译者:Linux-pdz 校对:Caroline

OK,我们还继续配置内核。还有更多功能等待着去配置。

下一个问题(Enable ELF core dumps (ELF\_CORE))询问的是内核是否可以生成内核转储文件。这会使内核变大4KB。所以我选择了"no"。

注意:内核转储文件(内存或者系统的转储)是程序崩溃前已记录的状态。内核转储是用来调试问题的。这个转储文件的格式是ELF(Executable and Linkable Format )。

下面可以启用PC扬声器(Enable PC-Speaker support (PCSPKR\_PLATFORM))。大多数计算机用户拥有并使用扬声器,所以这个启用它。

虽然下面的特性会增加内核的大小(Enable full-sized data structures for core (BASE\_FULL))(启用完全大小的内核数据结构),但性能也随之增加。所以我选择"yes"。

为了使内核可以运行基于glibc的程序,必须启用FUTEX(Enable futex support (FUTEX))。这个特性启用了快速用户空间互斥锁(Fast Userspace muTEXes)。

注意:glibc(GNU C Library)是由GNU实现的标准C库。

注意:FUTEX (fast userspace mutex)是用来防止两个线程访问同一个不能被多个线程使用的共享资源。

下一个问题(Enable eventpoll support (EPOLL))可以通过回答"no"来禁用epoll系统调用。然而,为了含有epoll系统调用,我选择了"yes"。epoll是一种I/O事件通知系统。

为了收到来自文件描述符的信号,我们启用signalfd系统调用(Enable signalfd() system call (SIGNALFD)。

如果启用这个特性(Enable timerfd() system call (TIMERFD)),它允许程序使用定时器事件获取文件描述符。

我们现在的配置必须启用eventfd系统调用(Enable eventfd() system call (EVENTFD))。它默认启用访问共享内存文件系统(Use full shmem filesystem (SHMEM)。共享内存文件系统是一种虚拟内存文件系统。

下一个问题是"Enable AIO support (AIO)"。这个特性启用了线程化程序使用的POSIX异步I/O。

注意:异步I/O用来处理输入/输出,它允许线程在传输完成前就完成处理。

如果你正在给一个嵌入式系统配置一个内核,那么问题“Embedded system (EMBEDDED)”可以选择"yes"。否则就像我一样选择"no"。

注意:嵌入式系统是运行在一个更大的电子系统的实时计算机。

现在,我们可以配置内核性能事件和计时器了。配置工具没有给开发者选择,直接启用了事件和计数器(Kernel performance events and counters (PERF\_EVENTS))(内核性能事件和计数器)。这是一个重要特性。

接下来,我们可以禁用另外一个调试特性(ebug: use vmalloc to back perf mmap() buffers (DEBUG\_PERF\_USE\_VMALLOC))。

如果启用了VM事件计数器,那么事件计数就会显示在/proc/vmstat(Enable VM event counters for /proc/vmstat (VM\_EVENT\_COUNTERS))。如果禁用了事件计数就不会显示,/proc/vmstat只会显示内存页计数。

为了更好地支持PCI芯片,(Enable PCI quirk workarounds (PCI\_QUIRKS))回答yes。这会启用对PCI芯片的怪异行为和bug的临时解决方案。

下面一个调试特性可以像我一样禁用掉(Enable SLUB debugging support (SLUB\_DEBUG))。这个特性会耗费很多空间并且会禁用用于调试内核的SLB sysfs。如果这个特性被禁用,那么/sys/slab就不会存在并且系统上也不再支持缓冲验证。

堆随机化是一个让利用堆漏洞更加困难的特性(Disable heap randomization (COMPAT\_BRK))。然而我们不应该去启用它,因为任何基于libc5的软件都无法工作在这个系统上!只有我们有特别的理由这么做或者如果你不会使用基于libc5的软件时才去启用它。我禁用了这个特性。当编译一个通用的内核时,开发这会希望禁用这个特性。

接下来必须选择一个SLAB分配器。SLAB分配器是一个没有碎片且有效率地将内核对象放置在内存中的内存管理系统。默认选择是"2"。

Choose SLAB allocator

  1. SLAB (SLAB)
  1. SLUB (Unqueued Allocator) (SLUB)
  1. SLOB (Simple Allocator) (SLOB)

choice[1-3?]: 2

为了支持扩展性能支持,(Profiling support (PROFILING))回答"yes"。

下一个问题让开发者选择是否启用OProfile系统。它可以禁用、启用或者添加为一个模块在需要时载入。我选择禁用这个特性。

Kprobes允许用户捕捉几乎任意的内核地址去启动一个回调函数。这是一个可以像我一样禁用的调试工具(Kprobes (KPROBES))。

这个优化特性可以启用(Optimize very unlikely/likely branches (JUMP\_LABEL))(优化非常近似/不近似的分支)。这使分支预判更加简单并可以减小开销。

配置工具启用了一个实验性特性"透明用户空间探针"(Transparent user-space probes (EXPERIMENTAL) (UPROBES))。不过不要担心,系统可以很好工作,并不是所有的实验性特性是不稳定或者坏的。

接下来,我们会被询问基于gcov的内核分析(Enable gcov-based kernel profiling (GCOV\_KERNEL))。这可以被禁用。

为了允许内核加载模块,需要启用可加载模块支持(Enable loadable module support (MODULES))。

内核一般只能加载有版本号的模块。如果想允许内核加载没有版本号的模块,就启用这个特性(Forced module loading (MODULE\_FORCE\_LOAD))(强制模块载入)。这么做是一个很糟糕的注意,所以我已经禁用了它,除非你有特定的需求需要这个特性。

如果启用了这个特性(Module unloading (MODULE\_UNLOAD)),Linux内核也能卸载模块,最好启用。如果内核判断你要卸载的模块不应该被卸载,那么用户则无法卸载模块。启用强制卸载也行,但是不建议(Forced module unloading (MODULE\_FORCE\_UNLOAD)。

为了使用不是为你的内核开发的或者并不适用你的版本号的模块,可以启用版本支持(Module versioning support (MODVERSIONS))。最好不要混用不同版本号的模块,所以我禁用了这个特性。

模块在它们的modinfo(模块信息)里有一个字段名为"srcverion"。这个字段允许开发者知道使用什么源码版本来编译模块。启用这个选项可以在编译模块的时候加入这个字段。这个并不必要,所以我禁用了它(Source checksum for all modules (MODULE\_SRCVERSION\_ALL))。如果启用了先前的选项,开发者可以将校验和加入到模块中(Source checksum for all modules (MODULE\_SRCVERSION\_ALL))。

为了启用模块签名验证(Module signature verification (MODULE\_SIG)),这个选项回答"yes"。因为这个并不必要,我选择了"no",否则内核在加载模块前会检查并验证签名。

为了启用块级支持(Enable the block layer (BLOCK)),像我一样选择"yes"。禁用这个将会使块设备无法使用并且无法启用某些文件系统。

下面,SG支持已经默认启用(Block layer SG support v4 (BLK\_DEV\_BSG))(块级SG支持V4版),并且辅助库也启用了(Block layer SG support v4 helper lib (BLK\_DEV\_BSGLIB))。

下面回答的问题是关于对块设备的数据完整性支持(Block layer data integrity support (BLK\_DEV\_INTEGRITY))。这个特性允许拥有更好的数据完整性来提供设备数据保护特性。许多设备不支持这个特性,所以我禁用了它。

如果启用了块级bio带宽限制(Block layer bio throttling support (BLK\_DEV\_THROTTLING))那就可以限制设备的IO速率。

为了启用外部分区方案的支持,这个问题就回答"yes"(Advanced partition selection (PARTITION\_ADVANCED))。我禁用了这个特性。

为了启用CSCAN(译注:循环扫描)和FIFO过期请求,那就启用最后期限IO调度器(Deadline I/O scheduler (IOSCHED\_DEADLINE))。

CFQ IO调度器在处理器之间平均地分配带宽。因此启用这个特性feature (CFQ I/O scheduler (IOSCHED\_CFQ))是个好主意。

下面,开发者可以启用或禁用CFQ组支持(CFQ Group Scheduling support (CFQ\_GROUP\_IOSCHED))。接下来,开发者可以选择默认的IO调度器,最好选择DEFAULT\_DEADLINE。

对于小于32位寻址的设备,下面的特性会分配16MB的寻址空间(DMA memory allocation support (ZONE\_DMA))。如果你不使用这些设备,那么这个是可以禁用的,所以我禁用了它。

对于有多个CPU的系统,最好启用SMP(Symmetric multi-processing support (SMP))。对于只有单个处理器的设备,内核会在禁用这个特性后执行得更快。我启用了这个特性。

对于支持x2apic的CPU,启用x2apic支持support (Support x2apic (X86\_X2APIC))。如果你的系统缺乏这个特性就像我一样禁用它。

接下来我们可以启用对那些缺乏合适的ACPI支持的旧式SMP系统的MPS表(Enable MPS table (X86\_MPPARSE))。一些拥有ACPI、DSDT、MADT支持的更新的系统不需要这个特性。我禁用了它。

下面的问题允许我们启用扩展x86平台的支持(Support for extended (non-PC) x86 platforms (X86\_EXTENDED\_PLATFORM))。只有在你需要一个通用内核或者内核运行在某个特定的需要扩展支持的处理器上时才启用它。我禁用了这个特性。

为了支持Intel低功耗子系统,就启用这个特性(Intel Low Power Subsystem Support (X86\_INTEL\_LPSS))。

单一深度WCHAN输出(Single-depth WCHAN output (SCHED\_OMIT\_FRAME\_POINTER))是用来计算电量(/proc//wchan),然而这会导致更多的功耗。

下面,我们启用虚拟客户系统支持(Paravirtualized guest support (PARAVIRT\_GUEST))。这允许一个Guest操作系统与主操作系统一起运行。我会禁用这个特性。

Memtest是一个在系统启动时检测内存的软件。Memtest可以配置为每次或者有时开机运行。Memtest并不必要,所以我禁用了它。

这里我们可以选择一个内核应该支持的处理器家族。我选择了5 – Generic-x86-64。这是一个64位的系统,x86是32系统。

下面我们能选择也支持x86(32位)处理器 (Supported processor vendors (PROCESSOR\_SELECT))。

为了发现机器异常,我们可以启用DMI扫描(Enable DMI scanning (DMI)),这可以检测异常。

要启用DMA访问系统上32位内存的3GB以上的内存,下一个问题(GART IOMMU support (GART\_IOMMU))我们回答"yes"。


via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-3.4369/

译者:geekpi 校对:wxy

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

有些时候你可能想要记录一个终端会话,也许是为了保存一个复杂的命令行操作为将来使用的参考,或者是为了知识分享。你可能也希望记录的文件尺寸尽可能的小一点,并且希望当播放记录文件时可以做一个快速回放。在这个文章中我们将讨论两个命令行工具( ttyrecttyplay )来让你记录、保存和播放终端会话。

ttyrec & ttyplay

看名字就知道ttyrec命令是用来记录终端会话的,ttyplay是用来播放ttyrec记录的会话的。

这里是这些工具的man截图:

> ttyrec

> ttyplay

测试环境

  • 系统 – Ubuntu 13.04
  • Shell – Bash 4.2.45
  • 应用 – ttyrec 1.0.8-5 & ttyplay 1.0.8-5

简明教程

下面告诉你怎么用这些命令来记录和播放一个终端会话。

步骤-1

开始记录一个终端会话,只需要运行下面的命令:

$ ttyrec [文件名] 

参数 [文件名] (上面显示的命令)是一个选项,可以指定你想要的任何名字。这个记录文件将会用这个名字保存下来。如果你没有指定一个文件名,ttyrec就会用 ttyrecord 作为缺省文件名。

步骤-2

当你想要记录的时候你就可以运行这个命令,就开始记录会话了。ttyrec命令甚至可以记录命令行类似vi,nano,emacs,lynx等这些命令行工具的会话。

步骤-3

到你想要结束终端会话的时候,只需要运行 exit 命令,这个会话记录就会结束。记录文件将会保存在当前文件夹下。

你可以运行下面的命令播放这个文件:

$ ttyplay [文件名] 

参数 [文件名] 就是记录文件名,就是上面通过 ttyrec 命令给定参数的那个名字。如果没有指定文件名,那么缺省文件名就是 ttyrecord

当你运行ttyplay,回放会话记录就会开始。这里给出一些当你回放会话的时候你可以用的快捷键。

  • ‘+’或‘f’键可以加速到两倍正常播放速度。
  • ‘-’或‘s’键可以减慢到一般正常播放速度。
  • ‘0’可以暂停。
  • ‘1’可以回到正常播放速度。

这有一些其它ttyrec和ttyplay命令支持的选项:

> ttyrec

ttyplay

还有另一个小工具 ttytime 可以用来显示用ttyrec工具会话记录的时间。很容易使用并且只需要记录文件名作为命令行参数。

举一个例子:

$ ttytime record_file
 29 record_file 

这样你就可以看到ttytime命令显示会话记录文件record\_file的时间。

这有一个ttyrec和ttyplay命令的很有用的视频:

下载/安装/配置

这有一些关于这些工具的重要的链接:

你可以使用任何命令行下载管理器比如apt-get或者yum来下载ttyrec,ttyplay和ttytime。Ubuntu用户也可以通过Ubuntu软件中心下载安装这些工具。

优点

  • 轻量级并且易用
  • 可以记录多种流行的命令行工具比如vi,nano,lynx等
  • 没有学习曲线。

缺点

  • 不能在IRIX6.4下工作(译注:这还算事吗?)
  • 依赖终端尺寸
  • 大多数Linux发行版没有预装。

结论

如果你正在找一些Linux轻量级命令行工具用来记录播放终端会话,那么ttyrec和ttyplay是理想的工具。我真的喜欢使用它们带来的轻松。试一下这些工具,你不会失望的。

你使用过ttyrec,ttyplay或者其它的终端记录/播放 工具?分享你的经历给我们吧。


via: http://mylinuxbook.com/ttyrec-ttyplay-record-and-play-terminal-sessions-in-linux/

译者:flsf 校对:wxy

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

qBittorrent是一个由志愿者开发的自由开源的跨平台BT客户端软件,利用libtorrent-rasterbar库,由C++/Qt写成,是现在流行的BT客户端软件µtorrent的一个替代选择。最新的版本qBittorrent 3.1.0 已经在2013年10月份放出。

qBittorrent轻巧快速,支持unicode编码,而且提供一个完美整合的搜索引擎。它也支持UPnP端口转发和NAT-PMP、加密(兼容Vuze)、FAST扩展和PeX支持(兼容utorrent)。

qBittorrent v3.1.0 的特性

  • 精心雕琢的类µTorrent界面(译注:至少我觉得LOGO就很精致)
  • 完美整合的搜索引擎,并可扩展
  • 在众多著名BT网站中进行并发搜索
  • 对搜索请求进行预分类(例如,书籍,音乐,电影)
  • 支持各种Bittorrent扩展
  • 可通过web页面进行远程操作
  • Web界面很接近桌面客户端,采用AJAX操作
  • 可对trackers、peers 和 torrents进行高级控制
  • 连接排队和优选
  • Torrent内容筛选和优先级设置
  • 支持UPnP / NAT-PMP端口转发
  • 支持大约25中语言(支持Unicode)
  • 种子创建工具
  • 支持RSS过滤下载(例如正则表达式)
  • IP过滤(兼容eMule和PeerGuardian)
  • 兼容IPv6
  • 顺序下载(也可以叫做按数字顺序下载)
  • 支持各种平台: Linux,Mac OS X, Windows, OS/2, FreeBSD

安装qBittorrent

$ sudo add-apt-repository ppa:hydr0g3n/qbittorrent-stable 
$ sudo apt-get update && sudo apt-get install qbittorrent 

你也可以下载qbittorrent的源代码,然后编译后安装。


via: http://www.unixmen.com/install-qbittorrent-3-1-0-ubuntu-via-ppa/

译者:Linux-pdz 校对:wxy

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