2022年10月

Brave 是一款出色的类似于 Chrome,但可 替代 Chrome 的网络浏览器

Firefox 和 Brave 是我喜欢在 Linux 系统上使用的两种浏览器。两者都有不同的优势。

Firefox 比 Brave 做得更好的一件事就是画中画(PIP)模式,它适用于 YouTube、Netflix 和大多数流媒体网站。

Brave 也有画中画模式,但它是如此隐藏,以至于你觉得它根本没有 PIP 支持。

内置画中画适用于某些网站(如 YouTube),但可能不适用于其他网站(如 Prime Video)。不用担心!你可以为此使用专用扩展。

让我在本教程中展示这两种方法。

方法 1:在视频上双击右键

技巧是依次单击两次右键,你应该会看到画中画模式选项。

让我通过一个例子来说明这一点。在 Brave 中播放 YouTube 视频。现在右键单击视频。

第一次右键单击后将光标从上下文菜单稍微移开

再次右键单击。它应该在视频上,但不在上一个上下文菜单上,而在视频的其他地方。

现在你应该看到另一个带有画中画选项的上下文菜单。

你应该在第二次右键单击中看到画中画选项

选择画中画,视频将从窗口中弹出。你可以将其移动到浏览器中的任何位置。

Brave 浏览器画中画模式

当你使用其他应用时,你还可以让它在屏幕上的任何位置播放。

Brave 在画中画模式中播放影片

在最近的 Brave 版本中,你可以根据自己的喜好调整弹出窗口的大小。

我不明白为什么 Brave 把它隐藏成这样。为什么不突出它?

无论如何,这适用于 YouTube 等网站,但可能不适用于 Prime 视频。如果你愿意,你可以安装一个扩展。

方法 2:使用画中画扩展

谷歌提供了一个官方插件,可让你在谷歌 Chrome 中获得画中画功能。由于 Brave 基于 Chromium,你可以在 Brave 中使用相同的扩展。

画中画扩展

进入扩展页面并点击 “ 添加到 Brave Add to Brave ” 按钮。

为 Brave 添加画中画扩展

当你单击它时,它会提示添加扩展的选项。

添加扩展

添加扩展后,你应该会在浏览器的右上角看到它。

使用画中画扩展

播放视频时,单击该扩展图标,视频应该会弹出。

你能在 Brave 中启用 PIP 模式吗?

画中画模式已成为休闲流媒体消费的必备功能。我觉得奇怪的是,Brave 和其他浏览器没有足够重视它。 Firefox 处理得很好。

我希望这个快速的小技巧可以帮助你在 Brave 浏览器中获得 PIP 体验。你更喜欢这两种方法中的哪一种?右键单击还是扩展?


via: https://itsfoss.com/picture-in-picture-brave/

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

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

开源朗读者:淮晋阳

Linux 是一个流行词,你到处都能听到与 Linux 相关的内容。人们在技术论坛上讨论它、Linux 是课程中的一部分;你最喜欢的 YouTube 技术主播在兴奋地展示构建他们的 Linux 内核;你在 Twitter 上关注的 10 倍效率开发者 10x developers 都是 Linux 粉丝。

基本上,Linux 无处不在,每个人都在谈论它,因此你可能会不自主地陷入到对错失了 “学习 Linux” 的不安中。

所以,你想知道 Linux 的优势是什么,以及它是否值得去学习。

在这篇文章中,我总结了很多 Linux 的优势和劣势。

如果你在选择 Linux 还是你喜欢的操作系统上犹豫不决,我们愿意为你提供一些帮助。

在开始之前,我们要指出的是,“Linux” 本身并不是一个操作系统,它的操作系统被称为 Linux 发行版,而且 Linux 的发行版有数百种。为简单起见,我将其称为 Linux 操作系统,而不是某个特定的 Linux 发行版。可以参考 这篇文章,来更好地理解这些东西。

使用 Linux 的优势

如果你想使用 Linux 替代现在的操作系统,那么只有当你了解 Linux 的优势,才会有意义。

如果 Linux 在你想要它做的事情上表现出色,你将永远都不会后悔你的决定。

不用购买许可证

open source proprietary illustration

你需要拥有苹果公司的设备,才能使用 macOS 作为日常使用;你需要拥有 Windows 许可证,才能使用微软的 Windows。

因此,你需要对这些东西进行一定的投资。但是,对于 Linux 呢?它是完全免费的!

与 Windows 和 macOS 相比,不仅仅是操作系统上的不同,Linux 上还有许多免费的软件包。

你无需支付许可证费用,就可以使用所有主流的 Linux 发行版。当然,你可以选择捐赠来支持该项目,但这完全取决于你自己的意愿。

此外,Linux 是完全开源的,这意味着所有人都能检查源代码的透明度。

能以最小的系统资源运行

linux mint 21 resource usage

通常,用户考虑尝试另一个操作系统,是因为他们对现有系统的性能感到沮丧。

这也是我的个人经历。我受朋友的委托,使用 Linux 来更新他们的旧笔记本电脑或经常滞后的系统。

而且,Linux 发行版能够在普通的硬件配置上运行,你不需要拥有最新最好的硬件。此外,还有专门的 轻量级 Linux 发行版 可以在较旧的硬件上运行而不会出现问题。

因此,如果你立即使用 Linux,你有更多的机会恢复你的旧系统,或在短时间内获得一个快速的计算机。

更少地受到恶意软件的威胁

malware illustration

没有操作系统可以免受恶意文件或脚本的侵害。如果你从未知来源下载并运行某些内容,则无法保证其安全性。

然而,对于 Linux,情况会更好一些。诚然,研究人员已经发现了针对 Linux 物联网设备的攻击者。但是,对于桌面 Linux,还无须担心。

恶意攻击者攻击的目标是更受家庭欢迎的平台,而 Linux 在桌面领域并没有很大的市场份额来吸引到这种关注。在某种程度上,这可能是一件好事。

你要做的就是坚持使用官方软件包,并在执行任何操作之前阅读指导说明。

另外,在 Linux 上,你也不用安装防病毒程序,来保护本机免受恶意软件的威胁。

可个性化定制

Pop!_OS 22.04 LTS

有了开源的代码,你就可以根据需要自由定制你的 Linux 体验。

当然,你需要具备一些专业知识,才能充分地定制你的 Linux。但是与 macOS 和 Windows 相比,即使你没有任何经验,也可以在 Linux 操作系统中获得更多自定义功能。

Customized Linux experience | Reddit user: u/ZB652

如果你想要个性化你的体验,并愿意付出额外的努力,那么 Linux 就非常适合你。例如,你可以参考 KDE 定制指南停靠区选项 以获得基本的自定义方法。

适用于所有人

使用 macOS 或 Windows,你只能在微软或苹果最终确定的设计/偏好选择中,做出你的选择。

但是,对于 Linux,你能发现专注于各种事情的不同的 Linux 发行版。

例如,你可以选择能始终获取最新功能的 Linux 发行版,或者你也可以选择只为你提供安全/维护更新的 Linux 发行版。

你可以使用有开箱即用、外观好看的 Linux 发行版,或提供最大程度的自定义选项的 Linux 发行版。Linux 发行版的选择是多种多样的。

我建议你从 能提供最佳用户体验的选项 开始。

完整的开发环境

如果你是软件开发人员或学习编程的学生,Linux 绝对是有优势的。许多构建工具都能在 Linux 上使用,并能够集成到 Linux 中。使用容器(Docker),你可以轻松创建专门的测试环境。

微软知道这个价值,因此它创建了 WSL,让开发人员可以在 Windows 内访问 Linux 环境。尽管如此,WSL 并没有接近真正的 Linux 体验,在 Windows 上使用 Docker 也同样如此。

但是这并不适用于网页设计,因为极为好用的 Adobe 工具并不能在 Linux 上使用。但是,如果你的工作不需要 Adobe,Linux 会是一个不错的选择。

Linux 是一项必须学习的技能!

使用 Linux 有一个学习曲线,刚开始时掌握的速度最快,之后则逐渐变得平缓,但是它给你提供了对各种事物的洞察力。

你可以通过探索和自由定制 Linux,或者仅仅是通过使用它,来了解操作系统中的事物是如何工作的。

不是每个人都知道如何使用 Linux。

因此,通过学习 Linux 来获得和扩展你对软件和计算机的知识会是一项很棒的技能。

Linux 是一个必要的工作技能

job illustration

正如我之前提及的,学习 Linux 是一个很好的技能,这不仅仅能增长你的知识,它在职业方面也很有用。

通过学习 Linux 的基础知识,你可以成为 Linux 系统管理员或安全专家,并且能胜任很多其他的工作。

因此,学习 Linux 开辟了一系列机会!

保护隐私

如果你没有微软账号,那么你就不能使用 Windows。当你启动 Windows 时,你会发现它会在很多的服务和应用中记录你的数据。

privacy windows

虽然你可以找到此类设置并禁用它们,但很明显,Windows 的默认配置不会考虑你的隐私。

而在 Linux 中,并非如此。虽然某些应用程序/发行版会有一个可选功能,让你可以与他们分享有用的东西,但这并不是什么大问题。Linux 上的大多数东西都是经过定制的,默认情况下可以为你提供最大的隐私,从而无需配置任何东西。

但是,苹果和微软会采用巧妙的策略从你的计算机收集匿名的使用数据。偶尔,他们会记录你在他们的应用商店的活动,以及当你通过你的账户登录时的信息。

自定义项目和自托管

你是一个喜欢捣鼓小发明的人吗?如果你喜欢制作电子或软件项目,Linux 会是你的发明天堂。

你可以在 诸如树莓派这样的单板机 上使用 Linux,开发出一些很酷的东西,例如复古游戏机、家庭自动化系统等等。

你也能在你自己的服务器上部署开源的软件,并维护他们。这称为自托管,它有以下的优点:

  • 减少托管费用
  • 掌控你的数据
  • 对于你的每个需求,定制应用/服务

你能直接使用 Linux 或者使用基于 Linux 的工具,来做这所有的事情。

使用 Linux 的劣势

Linux 并不是一个没有缺点的选择。任何事都具有两面性,Linux 也有一些不好的地方,包括:

不容易快速上手

too much learn illustration

学习的目的通常不在于掌握一项新技能,更重要的是尽可能快地适应。

如果用户使用某一个东西,却无法完成任务,那么它并不适合他们。对于每个操作系统也是如此。例如,使用 Windows/macOS 的用户可能不会很快适应 Linux。

你可以阅读我们的比较文章以了解 macOS 和 Linux 之间的区别

我同意一些人会比其他人学习速度更快。但是,总体而言,当你踏入 Linux 世界时,你需要付出一点努力,去学习那些不明显的东西。

多样性

虽然我们建议使用 为初学者量身定制的最佳 Linux 发行版,但一开始就选择你喜欢的版本,可能会让人不知所措。

你可能会想尝试其中多个版本,以查看最适合你的 Linux 发行版,但是这既耗时又令人十分困惑。

最好选择其中一种 Linux 发行版。但是,如果你仍然感到困惑,你可以仍旧使用 Windows/macOS。

在桌面领域的市场份额相对较低

linux desktop market share

Linux 不是流行的桌面操作系统。

这不应该是用户关心的问题。但是,如果没有大的市场占有率,就不能指望应用程序开发人员为 Linux 开发/维护工具。

当然,现在 Linux 有很多重要且流行的工具,比以往任何时候都多。但是,这仍然是一个因素,意味着并非所有好的工具/服务都可以在 Linux 上运行。

请参阅我们定期更新的关于 Linux 的市场份额 的文章,了解相关内容。

缺少专有软件

正如我上面提到的,并不是开发者都对将他们的工具/应用程序引入 Linux 感兴趣。

因此,你可能在 Linux 上找不到适用于 Windows/macOS 的所有优质专有产品。诚然,你可以使用兼容层在 Linux 上运行 Windows/macOS 程序。

但这并不总是有效。例如,你没有支持 Linux 的官方微软 365 和像 Wallpaper Engine 这样的工具。

不是游戏优先的操作系统

gaming illustration

如果你想在电脑上玩游戏,Windows 仍然是支持最新硬件和技术的最佳选择。

谈到 Linux,有很多 “如果和但是” 需要一个明确的答案。

请注意,你可以在 Linux 上玩很多现代游戏,但在各种不同的硬件上可能不会有一致的体验。正如我们的一位读者在评论中建议的那样,你可以使用 Steam Play 在 Linux 上尝试许多 Windows 独占的游戏,而不会出现潜在的障碍。

Steam Deck 正在鼓励更多的游戏开发者使他们的游戏在 Linux 上运行得更好。而且,这在不久的将来只会得到改善。因此,如果你能花点功夫在 Linux 上尝试你最喜欢的游戏,可能不会让人失望。

话虽如此,在 Linux 上玩游戏并不方便。如果你有兴趣,可以参考我们的 Linux 游戏指南 以了解更多信息。

缺少专业的技术支持

我知道不是每个人都需要技术支持。但是,一些技术支持选项能够在他们的笔记本电脑或计算机上远程指导用户/修复问题。

使用 Linux,你可以向社区寻求帮助,但它可能不像某些专业技术支持服务那样好用。

你仍然需要自己完成大部分努力,并自己尝试一些东西,并不是每个人都喜欢这样做的。

总结

我主要是 Linux 用户,但我在玩游戏时使用 Windows。虽然我偏好 Linux,但我尽力在这篇文章中对 Linux 保持中立态度,并给你足够的指导,以便你可以决定 Linux 是否适合你。

如果你打算使用 Linux,并且从未使用过它,请迈出你的第一步吧,可以参考 在虚拟机中使用 Linux 的第一步。如果你有 Windows 11,你也可以使用 WSL2。

我非常乐意收到你的评价和建议。


via: https://itsfoss.com/advantages-linux/

作者:Ankush Das 选题:lkxed 译者:chai001125 校对:wxy

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

微软与 Meta 合作,将 Teams、Office、Windows 和 Xbox 带到 VR

在今天的 Meta Connect 会议上,微软 CEO 萨提亚·纳德拉表示,该公司正在与 Meta 合作,将其最大的服务,Teams、Office、Windows,甚至 Xbox 云游戏,带到 Meta 的 Quest VR 头盔上。人们将能够直接从 Meta 的 Horizon 工作间加入 Teams 会议,也可以在 Quest VR 头盔里面使用 Windows 365,获得 Windows 的完整体验,包括所有个性化的应用程序、内容和设置。此外,微软还通过 PWA 技术将 Office 应用的 2D 版本带到 Quest VR 头盔。甚至,Xbox 云游戏也将进入 Quest VR 头盔,虽然不会像 Xbox 原生 VR 体验那样令人沉浸,但你将能够拿起 Xbox 控制器,在头盔内的巨大屏幕上玩这些游戏。

消息来源:The Verge
老王点评:微软的这一合作,对 Meta 的元宇宙愿景来说可谓一剂强心针。

美国能源科学网络 ESnet6 带宽升至 46Tbps

成立于 1986 年的美国能源科学网络 ESnet,旨在帮助美国能源部的科学家们打通旗下各个实验室,使之能够快速共享大量原始数据。它由横跨全美的 2.4 万公里的专用光缆组成。随着该网络完成 ESnet6 更新,美国最快的互联网带宽也飙升到了 46 Tbps。2021 年的时候,通过 ESnet 网络传输的数据量,就已经达到了惊人的 1.1 EB。不过,在实验性网络中的最高传输速度的记录是日本创造的 1 Pbps,即 1000 Tbps。

消息来源:伯克利实验室
老王点评:这要是传个小电影得多快啊~

新西兰计划对农场动物打嗝、撒尿征税

据央视新闻,新西兰政府 11 日提议对农场动物打嗝、撒尿排放的温室气体征税,以应对气候变化。新西兰政府表示,该项税收是世界首创,将从 2025 年开始征收,税价未定。新西兰约一半的温室气体排放来自农场,包括牛打嗝产生的甲烷和尿液中所含的一氧化二氮。此前,新西兰政府 2003 年提出征收农场动物的“放屁税”计划,遭到农场主反对,最终告吹。

消息来源:每经报
老王点评:不是没有道理,但是为什么我觉得这么搞笑。

更新 Linux 系统并没有那么复杂,不是吗?毕竟,要更新 Ubuntu 之类的发行版,你只需要使用 apt updateapt upgrade 就行。

如果所有的包都是通过一个包管理器安装的,就会是这样。

但现在情况不再如此。你有经典的 apt/dnf/pacman,还有 Snap、Flatpak、Appimages。不止于此,你还可以使用 PIP(用于 Python)和 Cargo(用于 Rust)安装应用。

使用 Node? NPM 包需要单独更新。Oh My Zsh?需要单独更新。Vim 中的插件、Atom 等也可能不被 apt/dnf/pacman 覆盖。

你现在看到问题了吗?这就是名为 Topgrade 的新工具旨在解决的问题。

Topgrade:处理各种更新的单一程序

Topgrade 是一个 CLI 程序,它会检测你使用的工具,然后运行适当的命令来更新它们。

Topgrade disable system

除了通常的 Linux 包管理器,它还可以检测和更新 Brew、Cargo、PIP、Pihole、Vim 和 Emacs 插件、R 软件包等。你可以在 维基页面 上查看支持的包列表。

Topgrade 的主要特点:
  • 能够更新来自不同的包管理器的软件包,包括固件
  • 你可以如何控制更新包。
  • 高度可定制。
  • 甚至能够在更新包之前进行概览。

所以不要浪费任何时间,让我们跳到安装。

使用 Cargo 在 Linux 中安装 Topgrade

安装过程非常简单,因为我将使用 Cargo 包管理器。

我们已经有了 详细指南,其中包含设置 Cargo 包管理器的多种方法。所以我将在我的示例中使用 Ubuntu 来快速完成。

因此,让我们以最少方式安装依赖项以及 Cargo:

sudo apt install cargo libssl-dev pkg-config

安装 Cargo 后,使用给定的命令安装 Topgrade:

cargo install topgrade

它会抛出一个警告:

cargo error

你只需添加 cargo 路径即可运行二进制文件。这可以通过给定的命令来完成,你需要使用你的用户名替换 sagar

echo 'export PATH=$PATH:/home/sagar/.cargo/bin' >> /home/sagar/.bashrc

现在,重启系统,Topgrade 就可以使用了。但是等等,我们需要安装另一个包来更新 Cargo 以获取最新的包。

cargo install cargo-update

这样我们完成了安装。

使用 Topgrade

使用 Topgrade 非常简单。使用一个命令,就是这样:

topgrade

但这不会给你除了系统包之外的任何控制,但正如我所提到的,你可以将不想更新的仓库列入黑名单。

从 Topgrade 中排除包管理器和仓库

假设我想排除 Snap 和从默认包管理器下载的包,所以我的命令是:

topgrade --disable snap system

Topgrade disable snap system

要进行永久更改,你必须在其配置文件中进行一些更改,这些更改可以通过给定的命令访问:

topgrade --edit-config

对于此示例,我排除了 Snap 和默认系统仓库:

configuring Topgrade

试运行 Topgrade

评估将要更新的过时软件包总是一个好主意,我从 Topgrade 的整个目录中找到了这个最有用的选项。

你只需使用带有 -n 选项的 topgrade 命令,它就会生成过期软件包的摘要。

topgrade -n

summery of Topgrade

检查需要更新的软件包的一种简洁方法。

总结

在使用 Topgrade 几周后,它成为了我的 Linux 武器库中不可或缺的一部分。 像大多数其他 Linux 用户一样,我只是通过我的默认包管理器更新包。 Python 和 Rust 包被完全忽略了。 感谢 Topgrade,我的系统现在完全更新了。

我知道这不是每个人都想使用的工具。那你呢?愿意试一试吗?


via: https://itsfoss.com/topgrade/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

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

通过参与两个令人兴奋的新项目来庆祝开放组织社区的六周年。

2021 年 6 月 2 日, 开放组织 Open Organization 社区庆祝其成立六周年。这是六年来(上百篇的)文章、(一系列的)书籍、(具有启发性的)对话、(我们所 喜欢的)教学和学习。我们非常自豪地成为一个充满活力的开放专家和领导者的社区,致力于将 开放原则 带到大大小小的组织。事实上,许多 开放组织大使 Open Organization Ambassadors 以帮助他人变得更加开放为职业,我们的社区仍然致力于帮助各行业的领导者以开放的心态和行为融入他们的社区和环境中。

去年 是开放组织项目的一个 成长发展 时期。今年,我们将在这一势头的基础上继续努力。今天,我们很自豪地介绍两项新的倡议——当然,也邀请你的参加。

开启,调整,开放

首先,我们很高兴地宣布:我们社区的工作有了一个全新的场所。OpenOrgTV。这不仅仅是一个新的平台。它也是另一种媒介的实验:视频。

在我们的频道上,我们将举办各种对话 —— 从深层次的书评到社区圆桌会议。首先,请查看“ 开放领导力对话 Open Leadership Conversations ”系列,其中包括对某些富有洞察力的领导者的采访,提供他们对根据开放原则进行领导的意义的观点。或者观看我们的 Q&A 式写作节目 “ 问大使 Ask the Ambassadors ”,由社区专家回答你关于组织文化和设计的问题。也想参与这个节目吗?在我们的 新的专门的论坛 中向社区成员提交你的问题。

整个月,我们都会介绍 开放组织大使 Open Organization Ambassadors ,让你终于可以看到他们的面孔,并听到你多年来阅读的故事、案例研究和采访背后的声音。

定义开放领导力

自从我们几年前发布它以来, 开放组织定义 Open Organization Definition 已成为更好地理解开放组织文化和设计本质的组织指导框架(并且我们已经做了很多工作来 教导其他人)。随着时间的推移,我们甚至开发了 一个成熟度模型 来操作该定义,因此组织可以评估自己的开放程度并制定具体计划以变得 更加 开放。

现在,我们认为是时候将这项工作更进一步了。

但是,开放组织社区不仅仅是平台、工具或项目的任何组合。它是所有人都热情地一起工作,以帮助传播开放原则和实践。

受我们自己经验、红帽Mozilla 等开放组织已有的框架、多年研究和采访该领域的开放领袖的启发,以及我们对更好地理解开放领导力如何 真正 发挥作用的渴望,我们很高兴公布一份全新文件的早期草案: 开放领导力定义 Open Leadership Definition

本文档概述了建立开放型组织,并使其成为思想开放的人能够成长和茁壮成长的地方的各类领导者所特有的心态和行为。它建立在 开放领导力定义 Open Leadership Definition 的基础上,解释了开放型领导者如何体现和倡导开放型组织的特征,如透明度、包容性、适应性、协作性和社区性。

而且我们渴望与世界分享。

从今天开始(在接下来的两周内),我们将收集你对我们文件草案的见解和意见。我们渴望听到你的想法,并将接受你的意见的 整体 或片段。你可以对文件的个别部分或整个文件提出意见。请查看下面的链接。我们期待着听到你的意见。

 title=

Laura Hiliger 提供的开放领导力定义词云 (CC BY-SA)

开放领导力定义

在我们的共享文件夹中 阅读全文

联系我们

当然,你仍然可以在所有常见的地方找到我们的社区,如:

但开放组织社区不仅仅是平台、工具或项目的任何组合。 是 ,所有人都热情地一起工作以帮助传播开放的原则和实践。正是这些人使我们的社区如此伟大。

六年来一直如此,并将永远保持下去。

从数字上看

Jen Kelchner 提供的信息图


via: https://opensource.com/open-organization/21/6/celebrate-sixth-anniversary

作者:Laura Hilliger 选题:lujun9972 译者:MareDevi 校对:wxy

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

PostgreSQL 是最灵活的数据库之一,并且它是开源的。

数据库是以一种有组织且灵活的方式存储信息的工具。电子表格在本质上就是一个数据库,但是图形化应用程序这一限制使得大多数的电子表格应用程序对程序员毫无用处。随着 边缘计算 和物联网设备成为重要的平台,开发者们需要更有效且轻量级的方法,来存储、处理、查询大量的数据。我最爱的一种组合是使用 Lua 连接 PostgreSQL 数据库。无论你使用什么编程语言,PostgreSQL 一定是数据库的绝佳选择,但是在使用 PostgreSQL 之前,首先你需要知道一些基本的东西。

安装 PostgreSQL

在 Linux 上安装 PostgreSQL,要使用你的软件库。在 Fedora,CentOS,Megeia 等类似的 Linux 版本上使用命令:

$ sudo dnf install postgresql postgresql-server

在 Debian, Linux Mint, Elementary 等类似的 Linux 版本上使用命令:

$ sudo apt install postgresql postgresql-contrib

在 macOs 和 Windows 上,可以从官网 postgresql.org 下载安装包。

配置 PostgreSQL

大多数发行版安装 PostgreSQL 数据库时没有启动它,但是为你提供了一个脚本或 systemd 服务,能够可靠地启动 PostgreSQL。但是,在启动 PostgreSQL 之前,必须创建一个数据库集群。

Fedora

在 Fedora,CentOS 等类似的版本上,PostgreSQL 安装包中提供了一个 PostgreSQL 配置脚本。运行这个脚本,可以进行简单地配置:

$ sudo /usr/bin/postgresql-setup --initdb
[sudo] password:
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Debian

在基于 Debian 的发行版上,在安装 Postgres 的过程中,配置会通过 apt 自动完成。

其他版本

最后,如果你是在其他版本上运行的,那么你可以直接使用 PostgreSQL 提供的一些工具。initdb 命令会创建一个数据库集群,但是这个命令必须在 postgres 用户下运行,你可以使用 sudo 来暂时地成为 postgres 用户:

$ sudo -u postgres \
    "initdb -D /var/lib/pgsql/data \
    --locale en_US.UTF-8 --auth md5 --pwprompt"

运行 PostgreSQL

现在,数据库集群已经存在了,使用 initdb 的输出中提供给你的命令或者使用 systemd 启动 PostgreSQL 服务器:

$ sudo systemctl start postgresql

创建一个数据库用户

使用 createuser 命令来创建一个数据库用户。postgres 用户是 Postgres 安装的超级用户。

$ sudo -u postgres createuser --interactive --password bogus
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
Password:

创建一个数据库

使用 createdb 命令来创建一个新的数据库。在这个例子中,我创建了数据库 exampledb,并把该数据库的拥有者分配给用户 bogus

$ createdb exampledb --owner bogus

与 PostgreSQL 交互

你可以使用 psql 命令来与 PostgreSQL 中的数据库进行交互。这个命令提供了一个交互界面,所以你可以用它来查看和更新你的数据库。你需要指定要使用的用户和数据库,来连接到一个数据库。

$ psql --user bogus exampledb
psql (XX.Y)
Type "help" for help.

exampledb=>

创建一个表

数据库包含很多表。这些表可以可视化为表格,有很多行(在数据库中称为 记录)和很多列。行和列的交集称为 字段

结构化查询语言(SQL)是以它提供的内容而命名的,它能提供可预测且一致的语法,来查询数据库内容,从而收到有用的结果。

目前,你的数据库是空的,没有任何的表。你可以用 CREATE 语句来创建一个表。结合使用 IF NOT EXISTS 是很有用的,它可以避免破坏现有的表。

在你创建一个表之前,想想看你希望这个表包含哪一种数据(在 SQL 术语中称为“数据类型”)。在这个例子中,我创建了一个表,包含两列,有唯一标识符的一列和最多九个字符的可变长的一列。

exampledb=> CREATE TABLE IF NOT EXISTS my_sample_table(
exampledb(> id SERIAL,
exampledb(> wordlist VARCHAR(9) NOT NULL
);

关键字 SERIAL 并不是一个数据类型。SERIALPostgreSQL 中的一个特殊的标记,它可以创建一个自动递增的整数字段。关键字 VARCHAR 是一个数据类型,表示限制内字符数的可变字符。在此例中,我指定了最多 9 个字符。PostgreSQL 中有很多数据类型,因此请参阅项目文档以获取选项列表。

插入数据

你可以使用 INSERT 语句来给你的新表插入一些样本数据:

exampledb=> INSERT INTO my_sample_table (wordlist) VALUES ('Alice');
INSERT 0 1

如果你尝试在 wordlist 域中输入超过 9 个字符,则数据输入将会失败:

exampledb=> INSERT INTO my_sample_table (WORDLIST) VALUES ('Alexandria');
ERROR:  VALUE too long FOR TYPE CHARACTER VARYING(9)

改变表或者列

当你需要改变一个域的定义时,你可以使用 ALTER 这一 SQL 关键字。例如,如果你想改变 wordlist 域中最多只能有 9 个字符的限制,你可以重新设置这个数据类型。

exampledb=> ALTER TABLE my_sample_table
ALTER COLUMN wordlist SET DATA TYPE VARCHAR(10);
ALTER TABLE
exampledb=> INSERT INTO my_sample_table (WORDLIST) VALUES ('Alexandria');
INSERT 0 1

查询表中的内容

SQL 是一种查询语言,因此你可以通过查询来查看数据库的内容。查询可以是很简单的,也可以涉及连接多个不同表之间的复杂关系。要查看表中的所有内容,请使用 SELECT 关键字和 ** 是通配符):

exampledb=> SELECT * FROM my_sample_table;
 id |  wordlist
----+------------
  1 | Alice
  2 | Bob
  3 | Alexandria
(3 ROWS)

更多数据

PostgreSQL 可以处理很多数据,但是对于任何数据库来说,关键之处在于你是如何设计你的数据库的,以及数据存储下来之后你是怎么查询数据的。在 OECD.org 上可以找到一个相对较大的公共数据集,你可以使用它来尝试一些先进的数据库技术。

首先,将数据下载为逗号分隔值格式(CSV)的文件,并将文件另存为 Downloads 文件夹中的 land-cover.csv

在文本编辑器或电子表格应用程序中浏览数据,来了解有哪些列,以及每列包含哪些类型的数据。仔细查看数据,并留意错误情况。例如,COU 列指的是国家代码,例如 AUS 表示澳大利亚和 GRC 表示希腊,在奇怪的 BRIICS 之前,这一列的值通常是 3 个字符。

在你理解了这些数据项后,你就可以准备一个 PostgreSQL 数据库了。

$ createdb landcoverdb --owner bogus
$ psql --user bogus landcoverdb
landcoverdb=> create table land_cover(
country_code varchar(6),
country_name varchar(76),
small_subnational_region_code varchar(5),
small_subnational_region_name varchar(14),
large_subnational_region_code varchar(17),
large_subnational_region_name varchar(44),
measure_code varchar(13),
measure_name varchar(29),
land_cover_class_code varchar(17),
land_cover_class_name varchar(19),
year_code integer,
year_value integer,
unit_code varchar(3),
unit_name varchar(17),
power_code integer,
power_name varchar(9),
reference_period_code varchar(1),
reference_period_name varchar(1),
value float(8),
flag_codes varchar(1),
flag_names varchar(1));

引入数据

Postgres 可以使用特殊的元命令 \copy 来直接引入 CSV 数据:

landcoverdb=> \copy land_cover from '~/land-cover.csv' with csv header delimiter ','
COPY 22113

插入了 22113 条记录。这是一个很好的开始!

查询数据

SELECT 语句可以查询这 22113 条记录的所有列,此外 PostgreSQL 将输出通过管道传输到屏幕上,因此你可以轻松地滚动鼠标来查看输出的结果。更进一步,你可以使用高级 SQL 语句,来获得一些有用的视图。

landcoverdb=> SELECT
    lcm.country_name,
    lcm.year_value,
    SUM(lcm.value) sum_value
FROM land_cover lcm
JOIN (
    SELECT
        country_name,
        large_subnational_region_name,
        small_subnational_region_name,
        MAX(year_value) max_year_value
    FROM land_cover
    GROUP BY country_name,
        large_subnational_region_name,
        small_subnational_region_name
) AS lcmyv
ON
    lcm.country_name = lcmyv.country_name AND
    lcm.large_subnational_region_name = lcmyv.large_subnational_region_name AND
    lcm.small_subnational_region_name = lcmyv.small_subnational_region_name AND
    lcm.year_value = lcmyv.max_year_value
GROUP BY lcm.country_name,
    lcm.large_subnational_region_name,
    lcm.small_subnational_region_name,
    lcm.year_value
ORDER BY country_name,
    year_value;

下面是样例的一些输出:

---------------+------------+------------
 Afghanistan    |       2019 |  743.48425
 Albania        |       2019 |  128.82532
 Algeria        |       2019 |  2417.3281
 American Samoa |       2019 |   100.2007
 Andorra        |       2019 |  100.45613
 Angola         |       2019 |  1354.2192
 Anguilla       |       2019 | 100.078514
 Antarctica     |       2019 |  12561.907
[...]

SQL 是一种很丰富的语言,超出了本文的讨论范围。通读 SQL 的内容,看看你是否可以对上面的查询语句进行修改,以提供不同的数据集。

拓展数据库

PostgreSQL 是伟大的开源数据库之一。有了它,你可以为结构化数据设计存储库,然后使用 SQL 以不同的方式查询它,以便能够获得有关该数据的新视角。PostgreSQL 也能与许多语言集成,包括 Python、Lua、Groovy、Java 等,因此无论你使用什么工具集,你都可以充分利用好这个出色的数据库。


via: https://opensource.com/article/22/9/drop-your-database-for-postgresql

作者:Seth Kenlon 选题:lkxed 译者:chai001125 校对:wxy

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