2020年2月

在 2020 年用开源实现更高生产力的二十种方式的第十七篇文章中,了解在编辑器中处理待办列表以及获取社交信息。

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

用 Vim 做(几乎)所有事情,第 2 部分

昨天的文章中,你开始用 Vim 检查邮件和日历。今天,你可以做的更多。首先,你会在 Vim 编辑器中跟踪任务,然后获取社交信息。

使用 todo.txt-vim 在 Vim 中跟踪待办任务

 title=

使用 Vim 编辑一个文本待办事件是一件自然的事,而 todo.txt-vim 包使其更加简单。首先安装 todo.txt-vim 包:

git clone https://github.com/freitass/todo.txt-vim ~/.vim/bundle/todo.txt-vim
vim ~/path/to/your/todo.txt

todo.txt-vim 自动识别以 todo.txtdone.txt 结尾的文件作为 todo.txt 文件。它添加特定于 todo.txt 格式的键绑定。你可以使用 \x 标记“已完成”的内容,使用 \d 将其设置为当前日期,然后使用 \a\b\c 更改优先级。你可以提升(\k)或降低(\j)优先级,并根据项目(\s+)、上下文(\s@)或日期(\sd)排序(\s)。完成后,你可以和平常一样关闭和保存文件。

todo.txt-vim 包是我几天前写的 todo.sh 程序的一个很好的补充,使用 todo edit 加载项,它可以增强的你待办事项列表跟踪。

使用 vim-reddit 读取 Reddit

 title=

Vim 还有一个不错的用于 Reddit 的加载项,叫 vim-reddit。它不如 Tuir 好,但是用于快速查看最新的文章,它还是不错的。首先安装捆绑包:

git clone https://github.com/DougBeney/vim-reddit.git ~/.vim/bundle/vim-reddit
vim

现在输入 :Reddit 将加载 Reddit 首页。你可以使用 :Reddit name 加载特定子板。打开文章列表后,使用箭头键导航或使用鼠标滚动。按 o 将在 Vim 中打开文章(除非它多媒体文章,它会打开浏览器),然后按 c 打开评论。如果要直接转到页面,请按 O 而不是 o。只需按 u 就能返回。当你 Reddit 看完后,输入 :bd 就行。vim-reddit 唯一的缺点是无法登录或发布新文章和评论。话又说回来,有时这是一件好事。

使用 twitvim 在 Vim 中发推

 title=

最后,我们有 twitvim,这是一个于阅读和发布 Twitter 的 Vim 软件包。它需要更多设置。首先从 GitHub 安装 twitvim:

git clone https://github.com/twitvim/twitvim.git ~/.vim/bundle/twitvim

现在你需要编辑 .vimrc 文件并设置一些选项。它帮助插件知道使用哪些库与 Twitter 交互。运行 vim --version 并查看哪些语言的前面有 + 就代表你的 Vim 支持它。

 title=

因为我的是 +perl -python +python3,所以我知道我可以启用 Perl 和 Python 3 但不是 Python 2 (python)。

" TwitVim Settings
let twitvim_enable_perl = 1
" let twitvim_enable_python = 1
let twitvim_enable_python3 = 1

现在,你可以通过运行 :SetLoginTwitter 启动浏览器窗口,它会打开一个浏览器窗口要求你授权 VimTwit 访问你的帐户。在 Vim 中输入提供的 PIN 后就可以了。

Twitvim 的命令不像其他包中一样简单。要加载好友和关注者的时间线,请输入 :FriendsTwitter。要列出提及你的和回复,请使用 :MentionsTwitter。发布新推文是 :PosttoTwitter <Your message>。你可以滚动列表并输入 \r 回复特定推文,你可以用 \d 直接给某人发消息。

就是这些了。你现在可以在 Vim 中做(几乎)所有事了!


via: https://opensource.com/article/20/1/vim-task-list-reddit-twitter

作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy

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

近些年来,云计算蓬勃发展,上云成为现在软件开发落地的首选。但随着企业业务的不断增长和扩大,传统云计算的劣势也暴露出来:单体硬件性能不够,只能堆集群;租户隔离不够彻底,时有新闻爆出问题。因此,物理机服务器又再一次的被提上了台面。

创立于 2012 年的 UCloud,从 2013 年伊始就面向市场同时提供了基于虚拟化服务器的公有云产品和基于裸金属服务器的物理云产品。不过,和绝大多数人想象中的不同,物理云服务器并非直接帮你上架一个服务器就行的,其背后也有不少复杂的技术难点需要 UCloud 及合作伙伴们去攻关。这其中最为艰难的,可能就是虚拟网络相关特性的研发。

物理云产品和公有云产品最大的不同就在于客户可以独占并完全控制整台物理服务器,UCloud 作为服务商并不会在服务器上运行任何虚拟化的软件。这使得想要让物理云产品和公有云产品的网络互通、让物理云产品享受到公有云产品所享有的网络优势变得十分困难。特别是一些有状态的特性比如安全组等实现起来更加困难。

UCloud 踩过的那些坑

从 2013 年开始,UCloud 开始使用 Open vSwitch 来构建基于 Openflow 技术的公有云 SDN 虚拟网络。也因此,同年, UCloud 提供物理云产品的时候,选用了支持 OpenFlow 的 SDN 交换机,以实现物理云产品和公有云 VPC 网络的互通。

2014 年,随着 UCloud 业务的扩大和快速发展,已有的交换机所提供的 OpenFlow 流表有限的条目已经无法支撑实际物理云产品业务的需求。

2015 年,已经在 DPDK 技术上做了两年研究储备的 UCloud 领先在产品环境推出了采用 DPDK 技术的服务器集群,从而替代硬件 SDN 交换机,满足业务层面的需求。

但随着以太网技术的发展,人工智能、大数据等应用的落地,网络技术的发展得到了爆发般的发展,25G、100G 的网络迅速得到普及, DPDK 网关集群的转发性能和成本问题逐渐成为业务发展的瓶颈。

时间来到了 2019 年, UCloud 开始使用智能网卡(Smart NIC)来替代原有的 DPDK 网关集群。UCloud 采用的智能网卡方案采用了 16 核 ARM CPU 运行 OVS 作为 SlowPath,采用 Linux TC Flower 卸载技术将网卡芯片作为 FastPath,通过 SRIOV 技术和用户系统集成,很好地解决了性能问题,但与此同时,其所带来的高昂采购成本造成了成本的提升。此外,由于所采用的智能网卡的转发面尚不可编程,也使得任何新的特性都需要网卡芯片厂商修改固件来实现。甚至一些比较复杂的特性也不能实现。比较典型的例子就是为了让智能网卡支撑 UCloud 使用的 Overlay 封装格式,就花费了半年时间才在和网卡芯片厂商反复沟通协调下完成,而类似带宽控制、硬件卸载的特性却难以实现。

痛定思痛的深度思考

六年的艰辛探索,让 UCloud 调研试验了几乎市面上所有的各种网络网关方案。而这些年来踩的坑,也让 UCloud 看到了这一代网关产品的问题和不足。作为战斗在云计算网络技术一线的团队,UCloud 基于实践经验,总结出了下一代物理云网关应该满足的一些需求:

  1. 全功能:能够提供和公有云一样的网络特性,比如有状态服务安全组等。
  2. 高性能:能够满足从 25G 网络到 100G 网络的需求。
  3. 低成本:比 DPDK 网关和智能网卡网关有更低的拥有成本。
  4. 可定制:能够满足定制需求,可以基于此进行进一步的演进。

基于 Jericho2 芯片的下一代物理云网关 —— BCM88690

在使用现有的智能网卡解决方案的同时, UCloud 也在积极的在技术市场上寻找合适的下一代物理云网关,以替换现有的产品解决方案。

首先进入 UCloud 视线的是某公司的一款高性能交换机。它和智能网卡一样可以运行 Linux 和 Open vSwitch,更加难得的是,其通过 Switchdev 支持 OVS TC Flower 卸载,并使用交换机芯片作为 OVS 的 FastPath。遗憾的是交换芯片对 TC Flower 卸载的支持仍然不好,造成很多功能无法卸载。并且交换芯片不支持用户编程,UCloud 无法修改交换芯片的管线来满足自己实际的业务需求。

而在这时,博通正在研发 Jericho2 可编程交换芯片相关的产品,于是 UCloud 与博通一拍即合,与博通合作利用 Jericho2 可编程交换芯片研究开发物理云网关,并基于研究的成果,开发出了能够完美满足 UCloud 需求的物理云网关。

在技术层面上,UCloud 通过在 Jericho2 可编程交互芯片上定制了管线来作为 TC Flower 的 FastPath,并在交换机控制面运行 Linux + OVS 作为 SlowPath ,并通过 TC Flower Offload 将两者集成在一起,从而实现硬件的加速。

当报文进入交换芯片,首包未命中时通过可编程交换机的虚拟网卡进入交换机的 Linux 内核,通过 OVS 的 Datapath 触发 ovs-vswitchd 下发新的 Openflow 流表。UCloud 通过对 OVS 做了尽量少的改动,将原先通过 Netlink 发送到内核去的 TC Flower 卸载消息通过 UNIX 套接字发送到运行在用户态的 Jericho2 Agent,它再将消息转化为对应的可编程交换机的消息下发给交换芯片。后续报文将直接命中交换机管线中的流表,由交换芯片转发。

Jericho2 提供了业界独一无二的可编程架构,除了管线节点可编程外,还可以进行管线延展,在增加了处理流程的同时而没有损失任何转发性能。其基于 C++ 的编程工具链,成熟且直观,使 UCloud 可以轻松的基于现有芯片添加功能、在线升级,并轻松的根据实际需求进行定制和实施。得益于 Jericho2 灵活的可编程能力,UCloud 和博通合作在交换芯片上实现了 OVS 的 TC Flower 卸载转发面,可以实现和智能网卡同样的 OVS 卸载功能,但达到了 4.8T 的转发性能,相当于 48 块 100G 智能网卡。并且还保留了进一步扩展定制的能力,以实现 UCloud 使用的 Overlay 封装格式 GRETAP 为例,可以完全自行开发、灵活修改,一周的工作就能完成。

另外 Jericho2 真正的模块化表项结构,所有表项共享同一块物理缓存,极大增加了片上资源的使用效率。管线上所有处理节点可以并行访问,根据不同的应用场景进行逻辑表项的灵活划分,使得同样的硬件可以应用在完全不同的使用场景。丰富的表项资源使得新一代的网关能够完全满足用户现有甚至未来可见数年的规格需求。

最终, UCloud 实现了一个完全和公有云特性兼容,转发能力高达 4.8T ,并且可以自由定制,成本也非常有竞争力的物理云网关。这满足了对于下一代物理云网关所定义的四大需求:全功能、高性能、低成本、可定制。

总结

UCloud 作为国内公有云市场的大玩家,更是如今国内的公有云第一股,在国内风起云涌、巨头林立的大环境下,稳稳的占据了属于自己的市场, 实属不易。而 UCloud 能做到这一点,得益于其始终坚持“客户为先”的价值观,及时响应客户需求,快速解决客户问题,不断推出超出客户预期的创新产品和服务。也正是这样对于客户为先的价值观,让 UCloud 不仅能做好服务,更能打造出卓越的产品。

MPD(Music Playing Daemon),顾名思义,是一个音乐(Music)播放(Playing)守护进程(Daemon)。它可以播放音乐,并且作为一个守护进程,任何软件都可以与之交互并播放声音,包括一些 CLI 客户端。

其中一个被称为 ncmpcpp,它是对之前 ncmpc 工具的改进。名字的变化与编写它们的语言没有太大关系:都是 C++,而之所以被称为 ncmpcpp,因为它是 “NCurses Music Playing Client Plus Plus”。 缘故

安装 MPD 和 ncmpcpp

ncmpmpcc 的客户端可以从官方 Fedora 库中通过 dnf 命令直接安装。

$ sudo dnf install ncmpcpp

另一方面,MPD 必须从 RPMFusion free 库安装,你可以通过运行:

$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

然后你可以运行下面的命令安装它:

$ sudo dnf install mpd

配置并启用 MPD

设置 MPD 最简单的方法是以普通用户的身份运行它。默认情况是以专用 mpd 用户的身份运行它,但这会导致各种权限问题。

在运行它之前,我们需要创建一个本地配置文件,允许我们作为普通用户运行。

首先在 ~/.config 里创建一个名叫 mpd 的目录:

$ mkdir ~/.config/mpd

将配置文件拷贝到此目录下:

$ cp /etc/mpd.conf ~/.config/mpd

然后用 vimnanogedit 之类的软件编辑它:

$ nano ~/.config/mpd/mpd.conf

我建议你通读所有内容,检查是否有任何需要做的事情,但对于大多数设置你都可以删除,只需保留以下内容:

db_file "~/.config/mpd/mpd.db"
log_file "syslog"

现在你可以运行它了:

$ mpd

没有报错,这将在后台启动 MPD 守护进程。

使用 ncmpcpp

只需运行:

$ ncmpcpp

你将在终端中看到一个由 ncurses 所支持的图形用户界面。

按下 4 键,然后就可以看到本地的音乐目录,用方向键进行选择并按下回车进行播放。

多播放几个歌曲就会创建一个播放列表,让你可以使用 > 键(不是右箭头, 是右尖括号)移动到下一首,并使用 < 返回上一首。+ 键可以调节音量。Q 键可以让你退出 ncmpcpp 但不停止播放音乐。你可以按下 P 来控制暂停和播放。

你可以按下 1 键来查看当前播放列表(这是默认的视图)。从这个视图中,你可以按 i 查看有关当前歌曲的信息(标签)。按 6 可更改当前歌曲的标签。

\ 按钮将在视图顶部添加(或删除)信息面板。在左上角,你可以看到如下的内容:

[------]

按下 rzyRx 将会分别切换到 repeatrandomsingleconsumecrossfade 等播放模式,并将这个小指示器中的 字符替换为选定模式。

按下 F1 键将会显示一些帮助文档,包含一系列的键绑定列表,因此无需在此处列出完整列表。所以继续吧!做一个极客,在你的终端上播放音乐!


via: https://fedoramagazine.org/playing-music-on-your-fedora-terminal-with-mpd-and-ncmpcpp/

作者:Carmine Zaccagnino 选题:lujun9972 译者:chai-yuan 校对:wxy

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

在 2020 年用开源实现更高生产力的二十种方式的第十六篇文章中,直接通过文本编辑器管理你的电子邮件和日历。

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

用 Vim 做(几乎)所有事情,第一部分

我经常使用两个文本编辑器 —— VimEmacs。为什么两者都用呢?它们有不同的使用场景,在本系列的后续几篇文章中,我将讨论其中的一些用例。

好吧,为什么要在 Vim 中执行所有操作?因为如果有一个应用程序是我可以访问的每台计算机上都有的,那就是 Vim。如果你像我一样,可能已经在 Vim 中打发了很多时光。那么,为什么不将其用于所有事情呢?

但是,在此之前,你需要做一些事情。首先是确保你的 Vim 具有 Ruby 支持。你可以使用 vim --version | grep ruby。如果结果不是 +ruby,则需要解决这个问题。这可能有点麻烦,你应该查看发行版的文档以获取正确的软件包。在 MacOS 上,用的是官方的 MacVim(不是 Brew 发行的),在大多数 Linux 发行版中,用的是 vim-nox 或 vim-gtk,而不是 vim-gtk3。

我使用 Pathogen 自动加载插件和捆绑软件。如果你使用 Vundle 或其他 Vim 软件包管理器,则需要调整以下命令才能使用它。

在 Vim 中管理你的邮件

使 Vim 在你的生产力计划中发挥更大作用的一个很好的起点是使用它通过 Notmuch 发送和接收电子邮件,和使用 abook 访问你的联系人列表。你需要为此安装一些东西。下面的所有示例代码都运行在 Ubuntu 上,因此如果你使用其他发行版,则需要对此进行调整。通过以下步骤进行设置:

sudo apt install notmuch-vim ruby-mail
curl -o ~/.vim/plugin/abook --create-dirs https://raw.githubusercontent.com/dcbaker/vim-abook/master/plugin/abook.vim

到目前为止,一切都很顺利。现在启动 Vim 并执行 :NotMuch。由于是用较旧版本的邮件库 notmuch-vim 编写的,可能会出现一些警告,但总的来说,Vim 现在将成为功能齐全的 Notmuch 邮件客户端。

 title=

如果要搜索特定标签,请输入 \t,输入标签名称,然后按回车。这将拉出一个带有该标签的所有消息的列表。\s 组合键会弹出 Search: 提示符,可以对 Notmuch 数据库进行全面搜索。使用箭头键浏览消息列表,按回车键显示所选项目,然后输入 \q 退出当前视图。

要撰写邮件,请使用 \c 按键。你将看到一条空白消息。这是 abook.vim 插件发挥作用的位置。按下 Esc 并输入 :AbookQuery <SomeName>,其中 <SomeName> 是你要查找的名称或电子邮件地址的一部分。你将在 abook 数据库中找到与你的搜索匹配的条目列表。通过键入你想要的地址的编号,将其添加到电子邮件的地址行中。完成电子邮件的键入和编辑,按 Esc 退出编辑模式,然后输入 ,s 发送。

如果要在 :NotMuch 启动时更改默认文件夹视图,则可以将变量 g:notmuch_folders 添加到你的 .vimrc 文件中:

let g:notmuch_folders = [
      \ [ 'new', 'tag:inbox and tag:unread' ],
      \ [ 'inbox', 'tag:inbox' ],
      \ [ 'unread', 'tag:unread' ],
      \ [ 'News', 'tag:@sanenews' ],
      \ [ 'Later', 'tag:@sanelater' ],
      \ [ 'Patreon', 'tag:@patreon' ],
      \ [ 'LivestockConservancy', 'tag:livestock-conservancy' ],
    \ ]

Notmuch 插件的文档中涵盖了更多设置,包括设置标签键和使用其它的邮件程序。

在 Vim 中查询日历

遗憾的是,似乎没有使用 vCalendar 或 iCalendar 格式的 Vim 日历程序。有个 Calendar.vim,做得很好。设置 Vim 通过以下方式访问你的日历:

cd ~/.vim/bundle
git clone git@github.com:itchyny/calendar.vim.git

现在,你可以通过输入 :Calendar 在 Vim 中查看日历。你可以使用 <> 键在年、月、周、日和时钟视图之间切换。如果要从一个特定的视图开始,请使用 -view= 标志告诉它你希望看到哪个视图。你也可以在任何视图中定位日期。例如,如果我想查看 2020 年 7 月 4 日这一周的情况,请输入 :Calendar -view week 7 4 2020。它的帮助信息非常好,可以使用 ? 键参看。

Calendar.vim 还支持 Google Calendar(我需要),但是在 2019 年 12 月,Google 禁用了它的访问权限。作者已在 GitHub 上的这个提案中发布了一种变通方法。

这样你就在 Vim 中有了这些:你的邮件、地址簿和日历。但是这些还没有完成; 下一篇你将在 Vim 上做更多的事情!

Vim 为作家提供了很多好处,无论他们是否具有技术意识。

需要保持时间表正确吗?了解如何使用这些免费的开源软件来做到这一点。


via: https://opensource.com/article/20/1/vim-email-calendar

作者:Kevin Sonney 选题:lujun9972 译者:wxy 校对:wxy

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

如果你刚刚安装了 Ubuntu 或其他 Ubuntu 特色版本 如 Kubuntu、Lubuntu 等,你会注意到系统无法播放某些音频或视频文件。

对于视频文件,你可以在 Ubuntu 上安装 VLCVLCLinux 上的最佳视频播放器之一,它几乎可以播放任何视频文件格式。但你仍然会遇到无法播放音频和 flash 的麻烦。

好消息是 Ubuntu 提供了一个软件包来安装所有基本的媒体编解码器:ubuntu-restricted-extras。

什么是 Ubuntu Restricted Extras?

ubuntu-restricted-extras 是一个包含各种基本软件,如 Flash 插件、unrargstreamer、mp4、Ubuntu 中的 Chromium 浏览器的编解码器等的软件包。

由于这些软件不是开源软件,并且其中一些涉及软件专利,因此 Ubuntu 默认情况下不会安装它们。你必须使用 multiverse 仓库,它是 Ubuntu 专门为用户提供非开源软件而创建的仓库。

请阅读本文以了解有关各种 Ubuntu 仓库的更多信息

如何安装 Ubuntu Restricted Extras?

令我惊讶的是,我发现软件中心未列出 Ubuntu Restricted Extras。不管怎样,你都可以使用命令行安装该软件包,这非常简单。

在菜单中搜索或使用终端键盘快捷键 Ctrl+Alt+T 打开终端。

由于 ubuntu-restrcited-extras 软件包在 multiverse 仓库中,因此你应验证系统上已启用 multiverse 仓库:

sudo add-apt-repository multiverse

然后你可以使用以下命令安装:

sudo apt install ubuntu-restricted-extras

输入回车后,你会被要求输入密码,当你输入密码时,屏幕不会有显示。这是正常的。输入你的密码并回车。

它将显示大量要安装的包。按回车确认选择。

你会看到 EULA(最终用户许可协议),如下所示:

Press Tab key to select OK and press Enter key

浏览此页面可能会很麻烦,但是请放心。只需按 Tab 键,它将高亮选项。当高亮在正确的选项上,按下回车确认你的选择。

Press Tab key to highlight Yes and press Enter key

安装完成后,由于新安装的媒体编解码器,你应该可以播放 MP3 和其他媒体格式了。

在 Kubuntu、Lubuntu、Xubuntu 上安装受限制的额外软件包

请记住,Kubuntu、Lubuntu 和 Xubuntu 都有此软件包,并有各自不同的名称。它们本应使用相同的名字,但不幸的是并不是。

在 Kubuntu 上,使用以下命令:

sudo apt install kubuntu-restricted-extras

在 Lubuntu 上,使用:

sudo apt install lubuntu-restricted-extras

在 Xubuntu 上,你应该使用:

sudo apt install xubuntu-restricted-extras

我一直建议将 ubuntu-restricted-extras 作为安装 Ubuntu 后要做的基本事情之一。只需一个命令即可在 Ubuntu 中安装多个编解码器。

希望你喜欢 Ubuntu 初学者系列中这一技巧。以后,我将分享更多此类技巧。


via: https://itsfoss.com/install-media-codecs-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

上手开源的对等 Web 索引器 YaCy。

很久以前,互联网很小,小到几个人就可以索引它们,这些人收集了所有网站的名称和链接,并按主题将它们分别列在页面或印刷书籍中。随着万维网网络的发展,形成了“网站环”形式,具有类似的内容、主题或敏感性的站点捆绑在一起,形成了通往每个成员的循环路径。环中任何站点的访问者都可以单击按钮以转到环中的下一个或上一个站点,以发现与其兴趣相关的新站点。

又过了一段时间,互联网似乎变得臃肿不堪了。每个人都在网络上,有很多冗余信息和垃圾邮件,多到让你无法找到任何东西。Yahoo 和 AOL、CompuServe 以及类似的服务各自采用了不同的方法来解决这个问题,但是直到谷歌出现后,现代的搜索模型才得以普及。按谷歌的做法,互联网应该通过搜索引擎进行索引、排序和排名。

为什么选择开源替代品?

像谷歌和 DuckDuckGo 这样的搜索引擎显然是卓有成效的。你可能是通过搜索引擎访问的本站。尽管对于因主机没有选择遵循优化搜索引擎的最佳实践从而导致会内容陷入困境这件事仍存在争论,但用于管理丰富的文化、知识和轻率的信息(即互联网)的现代解决方案是冷冰冰的索引。

但是也许出于隐私方面的考虑,或者你希望为使互联网更加独立而做出贡献,你或许不愿意使用谷歌或 DuckDuckGo。如果你对此感兴趣,那么可以考虑参加 YaCy,这是一个对等互联网索引器和搜索引擎。

安装 YaCy

要安装并尝试 YaCy,请首先确保已安装 Java。如果你使用的是 Linux,则可以按照我的《如何在 Linux 上安装 Java》中的说明进行操作。如果你使用 Windows 或 MacOS,请从 AdoptOpenJDK.net 获取安装程序。

安装 Java 后,请根据你的平台下载安装程序

如果你使用的是 Linux,请解压缩 tarball 并将其移至 /opt 目录:

$ sudo tar --extract --file  yacy_*z --directory /opt

根据下载的安装程序的说明启动 YaCy。

在 Linux 上,启动在后台运行的 YaCy:

$ /opt/startYACY.sh &

在 Web 浏览器中,导航到 localhost:8090 并进行搜索。

 title=

将 YaCy 添加到你的地址栏

如果你使用的是 Firefox Web 浏览器,则只需单击几下,即可在 Awesome Bar(Mozilla 给 URL 栏起的名称)中将 YaCy 设置为默认搜索引擎。

首先,如果尚未显示,在 Firefox 工具栏中使专用搜索栏显示出来(你不必使搜索栏保持一直可见;只需要激活它足够长的时间即可添加自定义搜索引擎)。Firefox 右上角的“汉堡”菜单中的“自定义”菜单中提供了搜索栏。在 Firefox 工具栏上的搜索栏可见后,导航至 localhost:8090,然后单击刚添加的 Firefox 搜索栏中的放大镜图标。单击选项将 YaCy 添加到你的 Firefox 的搜索引擎中。

 title=

完成此操作后,你可以在 Firefox 首选项中将其标记为默认值,或者仅在 Firefox 搜索栏中执行的搜索中选择性地使用它。如果将其设置为默认搜索引擎,则可能不需要专用搜索栏,因为 Awesome Bar 也使用默认引擎,因此可以将其从工具栏中删除。

对等搜索引擎如何工作

YaCy 是一个开源的分布式搜索引擎。它是用 Java 编写的,因此可以在任何平台上运行,并且可以执行 Web 爬网、索引和搜索。这是一个对等(P2P)网络,因此每个运行 YaCy 的用户都将努力地不断跟踪互联网的变化情况。当然,没有单个用户能拥有整个互联网的完整索引,因为这将需要一个数据中心来容纳,但是该索引分布在所有 YaCy 用户中且是冗余的。它与 BitTorrent 非常相似(因为它使用分布式哈希表 DHT 来引用索引条目),只不过你所共享的数据是单词和 URL 关联的矩阵。通过混合哈希表返回的结果,没人能说出谁搜索了哪些单词,因此所有搜索在功能上都是匿名的。这是用于无偏见、无广告、未跟踪和匿名搜索的有效系统,你只需要使用它就加入了它。

搜索引擎和算法

索引互联网的行为是指将网页分成单个单词,然后将页面的 URL 与每个单词相关联。在搜索引擎中搜索一个或多个单词将获取与该查询关联的所有 URL。YaCy 客户端在运行时也是如此。

客户端要做的另一件事是为你的浏览器提供搜索界面。你可以将 Web 浏览器指向 localhost:8090 来搜索 YaCy,而不是在要搜索时导航到谷歌。你甚至可以将其添加到浏览器的搜索栏中(取决于浏览器的可扩展性),因此可以从 URL 栏中进行搜索。

YaCy 的防火墙设置

首次开始使用 YaCy 时,它可能运行在“初级”模式下。这意味着你的客户端爬网的站点仅对你可用,因为其他 YaCy 客户端无法访问你的索引条目。要加入对等环境,必须在路由器的防火墙(或者你正在运行的软件防火墙)中打开端口 8090,这称为“高级”模式。

如果你使用的是 Linux,则可以在《使用防火墙让你的 Linux 更加强大》中找到有关计算机防火墙的更多信息。在其他平台上,请参考操作系统的文档。

互联网服务提供商(ISP)提供的路由器上几乎总是启用了防火墙,并且有太多种类的防火墙无法准确说明。大多数路由器都提供了在防火墙上“打洞”的选项,因为许多流行的联网游戏都需要双向流量。

如果你知道如何登录路由器(通常为 192.168.0.1 或 10.1.0.1,但可能因制造商的设置而异),则登录并查找配置面板来控制“防火墙”或“端口转发”或“应用”。

找到路由器防火墙的首选项后,将端口 8090 添加到白名单。例如:

 title=

如果路由器正在进行端口转发,则必须使用相同的端口将传入的流量转发到计算机的 IP 地址。例如:

 title=

如果由于某种原因无法调整防火墙设置,那也没事。YaCy 将继续以初级模式运行并作为对等搜索网络的客户端运行。

你的互联网

使用 YaCy 搜索引擎可以做的不仅仅是被动搜索。你可以强制抓取不太显眼的网站,可以请求对网站进行网络抓取,可以选择使用 YaCy 进行本地搜索等等。你可以更好地控制你的互联网的所呈现的一切。高级用户越多,索引的网站就越多。索引的网站越多,所有用户的体验就越好。加入吧!


via: https://opensource.com/article/20/2/open-source-search-engine

作者:Seth Kenlon 选题:lujun9972 译者:wxy 校对:wxy

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