关于近期发生的2017年10月和12月以及2018年01月和02月的部分文章图片失效事件的说明

近日,有读者来信告诉我,我有一篇文章里面的图片都无法显示了(在此,再次感谢这位热心的读者朋友 🙂 希望大家发现我网站里有什么错误和问题都向我指出来,我一定及时改正 🙂),随后我检查了那篇文章,发现 2017 年 10 月和 12 月以及 2018 年 01 月和 02 月的部分文章图片失效,共涉及 13 篇文章中的共计 160 张图片。
这些图片之所以失效,是因为我当时是把这些图片存储在了一家云服务提供商的对象存储容器中但是却没有在该容器上绑定我自己的域名,而是使用的服务商提供的他们自己的域名作为图片的链接地址插入到了博客文章中(我当时没有意识到绑定自己的域名的重要性,就这么直接用了),但是后来,这家云服务商更改了存储容器中用到的域名导致图片的链接地址发生了变化,于是,我网站中使用了原来的链接地址插入的图片就全都无法显示了。
虽然链接地址变了,但是图片都还在,因此,我把所有受影响的图片都转移到了另一个已经绑定了我自己的域名的存储容器中并更新了受到影响的文章中的图片的链接地址。

继续阅读“关于近期发生的2017年10月和12月以及2018年01月和02月的部分文章图片失效事件的说明”

GitHub 部分仓库遭遇黑客攻击 (2019年5月)

2019年5月3日[1],GitHub 上多个仓库的代码和提交记录被黑客删除并被替换成一个名为 “warning” 的文件,文件中的内容为:

To recover your lost code and avoid leaking it: Send us 0.1 Bitcoin (BTC) to our Bitcoin address 1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA and contact us by Email at admin@gitsbackup.com with your Git login and a Proof of Payment. If you are unsure if we have your data, contact us and we will send you a proof. Your code is downloaded and backed up on our servers. If we dont receive your payment in the next 10 Days, we will make your code public or use them otherwise

GitHub.com

中文参考译文如下:

为了恢复你丢失的代码并且不想这些代码被泄露:向我们的比特币地址 “1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA” 发送 0.1 个比特币,之后把你的 Git 仓库登陆凭证和付款证明发送到 “admin@gitsbackup.com” 这个电子邮箱。如果你不确定我们是否有你的数据,你可以联系我们,我们会给你发送一个证明。你的代码已经被下载并备份在我们的服务器上。如果我们在接下来的 10 天内没有收到你的付款,我们会公开你的代码并把它们用在其他地方。

在 GitHub 中搜索 “admin@gitsbackup.com” 获得的搜索结果[2], 如图 1

图 1

除了 GitHub 之外,GitLab 和 Bitbucket 上的部分仓库也遭遇了可以认为与此一致的攻击。

通过对”gitsbackup.com”这个域名的 whois 查询可以获知,该域名创建于 2019 年 5 月 2 日,注册商是 “NameCheap, Inc.”, 如图 2:

图 2

虽然黑客说可以向 “admin@gitsbackup.com” 这个邮箱地址发邮件,但是我通过 DIG 命令查找发现,无法获知 “gitsbackup.com” 这个域名的 MX 记录和 A 记录:

[root@***]# dig gitsbackup.com MX

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> gitsbackup.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21987
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;gitsbackup.com.                        IN      MX

;; AUTHORITY SECTION:
com.                    899     IN      SOA     a.gtld-servers.net. nstld.verisign-grs.com. 1557146567 1800 900 604800 86400

;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon May  6 08:40:18 2019
;; MSG SIZE  rcvd: 105

[root@***]# dig gitsbackup.com A

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> gitsbackup.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 18787
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;gitsbackup.com.                        IN      A

;; AUTHORITY SECTION:
com.                    63      IN      SOA     a.gtld-servers.net. nstld.verisign-grs.com. 1557145722 1800 900 604800 86400

;; Query time: 25 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon May  6 08:40:24 2019
;; MSG SIZE  rcvd: 105

[root@***]#

截至到 (UTC+08:00) 时区 2019 年 5 月 6 日 20 时 58 分,在 “www.blockchain.com” 这个网站上查询 “1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA” 这个比特币钱包的交易记录发现,应该还没有人向该钱包地址支付 0.1 个比特币,如图 3:
查看地址:https://www.blockchain.com/btc/address/1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA

图 3

注:
[1]该时间为 GitHub 上记录的黑客 push “warning” 文件的时间, 如图 4:

图 4

[2]该搜索结果不代表被黑的仓库总数。

汉语拼音 – 韦氏拼音对照表

韦氏拼音全名为 ”威妥玛式拼音法 (Wade-Giles romanization)” 又称 “威妥玛 – 翟理斯式拼音”.

韦氏拼音由英国人威妥玛 (Thomas Francis Wade) 等人于 1867 年开始编制. 韦氏拼音没有汉语拼音中用于表示声调的符号, 更加符合英文的表达习惯, 此外, 在韦氏拼音中使用送气符号 (‘) 来表示送气的声母. 中国大陆自 1958 年起开始推广汉语拼音, 但是韦氏拼音在西方学术界以及一些和中国有关的英文单词, 人名, 地名, 商标名等中仍有使用.

(以下 ”汉语拼音 – 韦氏拼音对照表” 中的数据整理自网络, 仅供参考.)

继续阅读“汉语拼音 – 韦氏拼音对照表”

“Health” and “Wealth”

Health is wealth.

1

Health: n.健康

Wealth: n.财富

e.g.1

His wife Cheryl said she had no worries about his health.

他的妻子谢里尔说她并不担心他的健康.

e.g.2

Economic reform has brought relative wealth to peasant farmers.

经济改革给农民带来了相对的财富.

2

Healthy adj.健康的; 大量的; 有益于健康的

Wealthy adj.富有的

e.g.1

You can’t do anything without a healthy body.

没有健康的身体你什么也没有.

e.g.2

The birth of a live healthy body is a truly blessed event.

一个健康活泼的婴儿的出生真是一件可喜的事.

e.g.3

It had once been the home of a wealthy nobleman.

这里曾经是一个富有贵族的官邸.

e.g.4

Soon, members of the Royal family and other wealthy people took up motoring as a sport.

很快, 皇室成员们和其他富有的人们都把驾驶汽车当作了一种乐趣.

e.g.5

They live in a wealthy suburb of Chicago

他们住在芝加哥郊区的一处富人区.

e.g.6

A wealthy nation.

一个富饶的国度.

3

Healthier adj.健康的, 有益于健康的(healthy 的比较级)

Wealthier adj.富有的(wealthy 的比较级)

e.g.1

Workplace canteens are offering healthier foods than ever before.

单位餐厅以前从没有提供过像现在这样健康的饭菜.

e.g.2

They’ve got to force people to get healthier.

他们必须强迫人们变得更加健康.

e.g.3

Japan is wealthier and more powerful than ever before.

日本比以往任何时候都更加富有和强大.

4

Healthiest adj.健康的, 有益于健康的(healthy 的最高级)

Wealthiest adj.富有的(wealthy 的最高级)

e.g.1

On paper, I am the healthiest man alive, yet I feel permanently unwell.

理论上讲, 我是或者的最健康的人, 但是我总感觉不舒服.

e.g.2

The very wealthiest men and women are suffering too.

最富有的人也在受苦.

5

Healthily adv.健康地

e.g.1

I was eating normally and healthily and doing the right exercise.

我的饮食很正常和健康, 并且我也会做一些恰当的运动.

e.g.2

I had never seen bombing on such a scale, and I was healthily apprehensive.

我从没见过如此大规模的轰炸, 所以我的恐惧是理所当然的.

解决 CentOS 7 报错: /var/run/yum.pid 已被锁定

报错描述

今天在使 yum 命令安装软件的时候遇到了如下报错:

/var/run/yum.pid 已被锁定,PID 为 3355 的另一个程序正在运行。
Another app is currently holding the yum lock; waiting for it to exit...
  另一个应用程序是:PackageKit
    内存:155 M RSS (717 MB VSZ)
    已启动: Sun Apr 28 15:01:12 2019 - 04:40之前
    状态  :运行中,进程ID:3355

报错截图如下:

图 1
图 1

解决方案

运行下面的命令, 强制结束 yum 进程即可:

rm -f /var/run/yum.pid

另外, 如果担心强制删除系统文件会引发难以预测的错误, 也可以尝试稍等一会(经过实测发现, 稍微等待一段时间后上述报错可能会自行消失)或者选择重启系统.

解决 CentOS 7 报错: “Repository base is listed more than once in the configuration”和”没有可用软件包 XXX”的问题

报错描述

我的 CentOS 7 的更新源使用的是直接从 163 镜像站上下载的更新源文件.

今天在使用 yum makecache 命令从更新服务器上把软件包的信息下载到本地缓存起来时遇到了如下报错:

Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration

报错截图如下:

图 1
图 1

而且在我使用 yum install htop 命令安装 htop 的时候, 还提示:

没有可用软件包 htop。
错误:无须任何处理

但是, 正常情况下 CentOS 7 的源里面应该是有 htop 这个软件包的, 可以直接使用 yum install htop 成功安装(我之前安装过).

上述问题的相关截图如下:

图 2

解决方案

分析上面的报错, 主要还是软件源文件出了问题, 于是我们先进入软件源配置文件所在的目录下:

cd /etc/yum.repos.d/

ls 查看一下, 回显如下:

[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo    CentOS-CR.repo         CentOS-Media.repo
CentOS-Base.repo         CentOS-Debuginfo.repo  CentOS-Sources.repo
CentOS-Base.repo.backup  CentOS-fasttrack.repo  CentOS-Vault.repo
[root@localhost yum.repos.d]#

从对报错内容的分析来看, 应该是软件源有重复(“listed more than once”), 所以这里我们尝试删除一些上面的软件源配置文件.
在删除之前, 先对 /etc/yum.repos.d/ 目录下的文件做一个整体的备份, 以便于尝试失败后的还原, 操作过程如下:
/etc/yum.repos.d/ 目录下的文件整体压缩成一个 .zip 文件:

zip centos7-repo.zip /etc/yum.repos.d/*

然后执行删除操作:

rm -rf CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo

之后把 CentOS7-Base-163.repo 中的内容复制进 CentOS-Base.repo:

cp -p CentOS7-Base-163.repo CentOS-Base.repo

最后删除 CentOS7-Base-163.repo:

rm -rf CentOS7-Base-163.repo

之后运行如下命令重建缓存, 没有再出现”Repository base is listed more than once in the configuration”的报错:

yum clean all
yum makecache

但是, 在我尝试使用 yum 命令安装软件时, 仍然遇到了”没有可用软件包 XXX”的报错, 如下:

[root@localhost yum.repos.d]# yum install htop
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
没有可用软件包 htop。
错误:无须任何处理

“没有可用软件包”说明在 YUM 源中没有对应的软件包(163 的源本身应该是没有问题的, 这是一个大家都常使用的 Linux 方面的国内软件源).
其实, 在 CentOS 和 RHEL 等操作系统中, 常使用的软件源不仅有 YUM, 还有 EPEL. EPEL 英文全称为:”Extra Packages for Enterprise Linux”. 直译为中文就是”用于企业 Linux 的额外软件包”. EPEL 是 Fedora 的一个项目, 有关该项目的官方说明可以在下面的链接中找到:

EPEL – Fedora Project Wiki

这里我摘录一段 Fedora 对 EPEL 项目的说明:

企业版 Linux 附加软件包(以下简称 EPEL)是一个 Fedora 特别兴趣小组,用以创建、维护以及管理针对企业版 Linux 的一个高质量附加软件包集,面向的对象包括但不限于 红帽企业版 Linux (RHEL)、 CentOS、Scientific Linux (SL)、Oracle Linux (OL) 。

EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。

https://fedoraproject.org/wiki/EPEL/zh-cn

在 CentOS 7 中安装 EPEL 源的命令如下:

yum install -y epel-release

安装完成后, 在 /etc/yum.repos.d 目录下会多出来下面两个文件, 这两个文件就是 EPEL 源的配置文件:

  • epel.repo
  • epel-testing.repo

查看 epel.repo 文件中的内容可以发现其中软件源的地址指向的是 https://mirrors.fedoraproject.org/, epel-testing.repo 这个文件中的软件源的地址也是指向的是 https://mirrors.fedoraproject.org/. 为了加快软件安装速度, 我们可以将其更改为国内的 EPEL 源, 操作步骤如下:

进入 /etc/yum.repos.d 目录, 下载阿里云 EPEL 源:

wget http://mirrors.aliyun.com/repo/epel-7.repo

备份 Fedora 官方提供的 EPEL 源配置文件:

cp -p epel.repo epel.repo.bak
cp -p epel-testing.repo epel-testing.repo.bak

删除 epel-testing.repo:

rm -rf epel-testing.repo

epel-7.repo 中的内容覆盖写入到原来的 epel.repo 文件中:

cp -p epel-7.repo epel.repo

删除 epel-7.repo 文件:

rm -rf epel-7.repo

重新生成缓存:

yum clean all
yum makecache

之后可以正常安装软件.

总结

遇到”Repository base is listed more than once in the configuration”的问题要考虑系统中是否存在重复的软件源, 遇到”没有可用软件包 XXX”的问题首先要确认要安装的软件包名称是否写对了, 例如安装 pip 的命令不是 yum install pip, 而是 yum install python-pip, 在此之后如果问题仍然存在就需要考虑当前系统中是否正确配置了 YUM 和 EPEL 两个软件源.