Clay 的技术空间

用进废退 | 艺不压身

前言

在加速百度搜索引擎收录站点方面,百度站长目前提供自动提交链接和手动提交链接两种方式,其中自动提交又分为主动推送、自动推送和 sitemap 三种形式。按百度的说法,主动推送的效果最好,百度站长平台后台提供了 CurlPHPRuby 的推送示例代码,但唯独没有提供 Python 示例代码。本文会给出现成的 Python 版本主动推送代码,系统环境依赖 Linux,软件环境依赖 Python3Curl

Python3 代码

以下代码会读取特定域名下的 sitemap 站点地图文件,然后通过 Curl 命令将站点地图文件中合法 (结尾为 .html)的 URL 批量提交给百度站长平台,请自行替换代码中的 domaintokensite_map_url 变量值。

阅读全文 »

前言

CentOS 7 将在 2024 年 6 月 30 日停止支持。

发布时间

CentOS 8 在 2019.9.25 正式发布,提供了两个版本,分别是 CentOS 和 CentOS Streams,Linux 内核版本为 4.18。其中 CentOS Stream 是一个滚动发布的 Linux 发行版,它介于 Fedora Linux 的上游开发和 RHEL 的下游开发之间而存在。可以把 CentOS Streams 当成是用来体验最新红帽系 Linux 特性的一个版本,而无需等太久。CentOS 8 不支持 在 CentOS 7 的基础上进行大版本升级,因此 CentOS 8 只支持全新安装。截止 2020 年 12 月 9 日,CentOS 官方团队正式宣布 2021 年后将停止更新 CentOS 8,转而将更多的精力放在 CentOS Stream 上,也就是说以后不会再有 CentOS 9、CentOS 10,但 CentOS 7 的长期技术支持时间将不会改变,依旧会延续到 2024 年。

软件仓库

引入了两个新的软件仓库,分别是 BaseOS 和 AppStream,其中 BaseOS 包含所有底层 OS 包,AppStream 包含与应用程序相关的包、开发工具、数据库和其他包。换句话说,BaseOS 仓库拥有组成操作系统核心的传统 RPM 包。一旦你更新了系统,它会自动下载并安装这些包的任何新版本。然而有时候你可能不想批量升级软件,因为它可能会在你希望保持稳定的环境中导致兼容性问题(例如在测试代码时)。AppStream 是对传统 rpm 格式的全新扩展,为一个组件同时提供多个主要版本,这就是为什么新的 CentOS 8 新增了 AppStream 仓库。

软件更新

使用 YUM 包管理器 4.0.4 版本,该版本现在使用 DNF (Dandified YUM) 技术作为后端。DNF 是新一代的 YUM,且 CentOS 8 允许同时使用这 dnf 和 yum 两种工具来管理包。与 DNF 技术集成后,提高了性能,具有定义良好的 API,并支持模块化内容、云应用程序流、容器工作负载和 CI/CD。

阅读全文 »

系统环境

1
2
Fedora release 30 (Thirty)
Linux Fedora30 3.10.0-1062.1.1.el7.x86_64 #1 SMP Fri Sep 13 22:55:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Flatpak 安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装flatpak
# yum install flatpak flatpak-builder

# 添加flathub仓库
# flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# 添加GNOME稳定版的仓库(已失效)
# wget https://sdk.gnome.org/keys/gnome-sdk.gpg
# flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
# flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/

# 添加GNOME每日构建版的仓库(最新)
# flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
阅读全文 »

Flatpak 介绍

Flatpak(前世为 xdg-app)是一种用于构建、分发、安装和运行应用程序的技术,类似的应用程序容器技术还有大名鼎鼎的 SnapAppImage。它主要针对的是 Linux 桌面,通过在沙箱中隔离应用程序来提高 Linux 桌面的安全性,允许应用程序安装在任何 Linux 发行版上,而且支持用户在同一个系统中安装同一应用程序的多个版本。如果需要更多的 Flatpak 应用,可以从 Flathub 应用商店直接获取。

Flatpak 安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装flatpak
# yum install flatpak flatpak-builder

# 添加flathub仓库
# flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# 添加GNOME稳定版的仓库(已失效)
# wget https://sdk.gnome.org/keys/gnome-sdk.gpg
# flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
# flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/

# 添加GNOME每日构建版的仓库(最新)
# flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
阅读全文 »

Zsh 介绍

Shell 是在开发人员与服务器间建立一个桥梁,它对外提供一系列命令,让我们得以控制服务器。常用的 Bash 就是 Shell 的一种,也是 Linux 下默认 Shell 程序。Zsh 属于 Shell 中的一种,但比 Bash 好用,而且完全兼容 Bash,拥有及其丰富的插件、强大的命令自动补全能力、以及自定义功能,可以大大提供使用 Linux 的效率。

Zsh 安装

1
2
3
4
5
6
7
8
# 安装依赖
# yum install git curl wget

# 查看是否存在zsh
# cat /etc/shells

# 如果zsh不存在,则安装zsh
# yum install zsh

本地 Shell 切换到 Zsh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 以下操作,不同的Linux用户需要单独安装或者配置(YUM操作除外)

# 查看当前shell
# echo $SHELL

# 切换shell到zsh
# chsh -s /bin/zsh

# 重启系统
# reboot

# 查看当前shell是否切换成功
# echo $SHELL

# 默认的zsh配置文件(自动生成):~/.zshrc

# 提示:切换到zsh后,以前在bash shell里添加的环境变量(~/.bashrc)可能会失效,此时需要在zsh的配置文件(~/.zshrc)中重新添加相关环境变量
阅读全文 »

前言

本教程只适用于 Centos7 安装搜狗输入法(v2.2.0.0108),支持的桌面环境是 GNOME。注:文章末尾附有搜狗输入法最终的运行效果图

系统环境

1
2
CentOS Linux release 7.6.1810 (Core)
Linux centos7.6 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

安装 Fcitx 输入法框架

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 关闭ibus输入法,绝对不能使用“yum remove ibus”命令卸载ibus, 否则会将桌面环境一同卸载掉
# mv /usr/bin/ibus-daemon /usr/bin/ibus-daemon.bak

# 安装fcitx
# yum install libQtWebKit* fcitx fcitx-libs fcitx-qt4 fcitx-qt5 fcitx-configtool fcitx-table fcitx-table-chinese

# 如果上面的fcitx-qt5因依赖关系无法安装,则可以安装qt5-qtbase来替代
# yum install qt5-qtbase

# 配置环境变量(主要是为了解决GTK/Qt程序无法切换输入法)
# vim /etc/profile
export XIM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

# 重启系统使环境变量生效,并关闭ibus
# reboot

# 查看fcitx的安装状态(使用普通用户身份运行),重点查看红色部分(错误)的日志信息
$ fcitx-diagnose
阅读全文 »

跨域

SpringBoot + Security 跨域

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
* Web 安全配置
*/
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable().authorizeRequests().antMatchers("/**").permitAll();
}

/**
* 允许跨域
*
* @return
*/
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.setAllowCredentials(true);
source.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(source);
}

}
阅读全文 »

前言

本文主要介绍 Centos7 如何安装微信客户端、网易云音乐、百度网盘、TeamViewer、Rhythmbox 等桌面软件。

添加 YUM 源

添加 epel,nux-dextop,rpmfusion 源,可参考本站教程:Centos7 管理 YUM 源

electronic-wechat 微信客户端

electronic-wechat 是一款基于 Web 版微信开发的第三方微信客户端,自带消息防撇回功能。由于 Web 版的微信会限制新注册的微信账号登录,因此 electronic-wechat 同样不支持微信新账号登录。该项目由于各种原因已经停止维护,但并不影响正常使用,实测使用非常稳定。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 进入安装目录
# cd /usr/local

# 下载已编译的安装包
$ wget https://github.com/kooritea/electronic-wechat/releases/download/v2.3.1/electronic-wechat-linux-x64-2.3.1.zip

# 解压文件
# unzip electronic-wechat-linux-x64-2.3.1.zip

# 删除文件
# rm -rf electronic-wechat-linux-x64-2.3.1.zip

# 文件授权
# chown -R peter:peter electronic-wechat-linux-x64

# 使用普通用户身份运行应用(可以使用快捷键ctrl + c退出程序)
$ ./electronic-wechat-linux-x64/electronic-wechat

# 创建应用菜单栏的快捷方式
# vim /usr/share/applications/electronic-wechat.desktop
[Desktop Entry]
Name=Electronic Wechat
Comment=Unofficial WeChat client built with React, MobX and Electron.
Exec=/usr/local/electronic-wechat-linux-x64/electronic-wechat %U
Icon=/usr/local/electronic-wechat-linux-x64/assets/icon.png
Terminal=false
Type=Application
Categories=Network;Chat;

# 导航到:应用程序 --> 互联网 --> Electronic Wechat,直接点击快捷方式启动应用,效果图如下
阅读全文 »

前言

本文主要介绍两款适用于 Centos7 的桌面壁纸应用,分别是 Komorebi 和 Wonderwall,其中 Komoreb 支持使用视频、网页作为桌面动态壁纸。

系统环境

1
2
CentOS Linux release 7.6.1810 (Core)
Linux centos7.6 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Komorebi 站点

Komorebi 介绍

Komorebi 是一款 Linux 动态壁纸应用,可以实现类似 Stream Wallpaper Engine 的效果,支持使用图片、视频、网页作为桌面壁纸。Komorebi 官方默认只支持 Debian/Ubuntu 系的 Linux 发行版,如果需要在 Centos7 上安装,则需要编译分支 Komorebi-Centos 的代码,手动安装编译构建生成的 RPM 包。

阅读全文 »

系统环境

1
2
CentOS Linux release 7.6.1810 (Core)
Linux centos7.6 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

安装依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 安装epel源
# yum install epel-release

# 安装字体
# yum install liberation-mono-fonts

# 安装gnome菜单
# yum install gnome-menus

# 安装gnome个性化定制工具
# yum install gnome-tweak-tool

# 安装桌面管理器
# yum install gnome-shell

# 通过按下 Alt + F2 快捷键,然后输入 r 重启界面,导航到应用程序 --> 附件,可以看到多了一个优化工具
阅读全文 »