arch 安装后的一些配置

个人根据官方 wiki 文档安装 arch 成功后,对软件环境的一些配置的总结,我用的一般都是 kde,对其他版本可能不完全适用

一. 中文汉化

# 火狐汉化和 man-page 汉化

sudo pacman -S --noconfirm man-pages-zh_cn

二. 常用软件安装

#AUR 助手 yay

Arch 一般使用 pacman,不过我已经变成 yay 的形状了。

sudo pacman -S yay

#安装常用软件

yay -Sy --noconfirm smplayer smplayer-skins smplayer-themes uget aria2 filezilla bleachbit visual-studio-code-bin netease-cloud-music neofetch
yay -S google-chrome chromium
yay -S aur/motrix
yay -S wps-office ttf-wps-fonts  wps-office-mui-zh-cn
  • smplayer 视频播放器 其实 vlc 也可以,不过这个也不错;
  • google-chrome 谷歌浏览器;
  • chromium 谷歌浏览器开源版,最近一般都用两个浏览器,这个也挺好使的;
  • motrix 个人现在最常用的下载器,之前默认仓库的有问题,看 wiki 说的是用 aur 的;
  • uget 媲美迅雷的下载工具,一并下载了 aria2,可以配置 aria2 插件一并食用;
  • filezilla 强大的 FTP 工具;
  • bleachbit 快速释放磁盘空间并不知疲倦地守卫你的隐私。释放缓存,删除 cookie,清除互联网浏览历史,清理临时文件,删除日志,以及更多功能...
  • aria2 下载工具,配合 uget 还不错
  • neofetch 查看系统信息的工具,命令行输入neofetch就可以,装逼用
  • visual-studio-code-bin 宇宙第一编辑器,个人现在最常用的前端工具和文档阅读器;
  • netease-cloud-music 网易云音乐;
  • wps-office wps,基本也是必装的了,不过,arch 版的除了软件本体,还要安装字体,中文还要安装对应的语言包

三. 配置主目录英文

arch 安装之后主目录一般只有一个桌面,其他下载、图片之类的目录可以用工具生成

sudo pacman -S xdg-user-dirs-gtk
export LANG=en_US
#可能会有个窗口提示语言更改,更新名称即可
xdg-user-dirs-gtk-update
#然后重启电脑如果提示语言更改,保留旧的名称即可
export LANG=zh_CN.UTF-8

四. 配置 zsh 以及 powerLine 主题安装

#安装 zsh

sudo pacman -S zsh

#查看命令

##查看已有的 shell

cat /etc/shells

##查看当前 shell

echo $SHELL

##使用 zsh 替换 bash(重新打开终端生效)

chsh -s /bin/zsh

##还原 bash(需要重启)

chsh -s /bin/bash

##查看 zsh 版本

zsh --version

#安装 oh-my-zsh

yay -S oh-my-zsh-git

安装之后进入/usr/share/oh-my-zsh 目录下,把里面的 zshrc 拷贝到~/.zshrc

## zsh 插件配置

因为插件越多启动越慢,所以根据需求安装合适的就好
先贴一下我用的插件,大部分贴上去就行,只有部分需要简单配置一下

plugins=(git
          archlinux
          history
          mvn
          python
          git
          extract
          autojump
          wd
          zsh-autosuggestions
          zsh-syntax-highlighting
          vscode
        )

下面是需要特殊配置一下的插件,如果走的是 aur 安装的 zsh,那么下面的 git clone 时,需要用 sudo 权限

zsh-highlighting

作用 平常用的 ls、cd 等命令输入正确会绿色高亮显示,输入错误会显示其他的颜色。

安装 git 下载到指定目录

sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
zsh-autosuggestions

作用 效率神器

输入命令时,会给出建议之前常用的命令 按键盘 → 补全

如果感觉 → 补全不方便,还可以自定义补全的快捷键,比如 逗号补全

bindkey ',' autosuggest-accept

在 .zshrc 文件添加这句话即可。

安装 git 下载到指定目录

sudo git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
autojump

作用 目录间快速跳转,不用再一直 cd 了

使用 使用 autojump 的缩写 j

cd 命令进入 ~/user/github/halo 文件夹,下一次再想进入 halo 文件夹的时候,直接 j halo 即可
或者只输入 halo 的一部分 hal 都行

删除无效路径

j --purge 无效路径

安装 再次感谢 arch 强的的软件源

yay -S autojump

安装完成之后会在客户端打印一句话

 [[ -s /home/kanade/.autojump/etc/profile.d/autojump.sh ]] && source ~/.autojump/etc/profile.d/autojump.sh

把这句话加入到 zshrc 文件即可

#安装 powerline 及字体

sudo pacman -S powerline powerline-fonts

powerline 主题配置 可以直接默认,也可以选一些自带的,都很不错,
不过现在,我选择我认为最花里胡哨的 Powerlevel9k
这个需要一些简单的配置:具体可以参见 -》 Powerlevel9k:zsh 下最棒的 Powerline 主题

五. 开发环境搭建

生产力软件

yay -S --noconfirm dbeaver maven redis nginx
yay -S intellij-idea-ultimate-edition intellij-idea-ultimate-edition-jre
yay jdk
  • dbeaver 通用数据库客户端,支持多个平台及多种数据库,社区版是免费的
  • jdk8, 现在 yay 下载不了 jdk8,需要自己准备好对应的版本,在放到 yay 的下载目录中 我的是在~/.cache/yay/jdk8/下面
    • 打包完成后切换命令
      • 查看 jdk 都有哪些: archlinux-java status
      • 设置需要用的版本: sudo archlinux-java set java-8-jdk
      • 其他设置命令就自己百度吧
  • maven 安装好之后一般是在 /opt/maven 中,本地仓库和阿里云源自己配置
  • redis 挺好用的一个非关系型数据库,配置文件在/etc/redis.conf,不对的话,可以在systemd目录下查看 ==》/usr/lib/systemd/system/redis.service
  • idea 这个没啥好说的,java 程序猿基本必备开发工具,这里必须这样安装,arch下不这样会有一些奇怪的bug
  • nginx 一个高性能的 HTTP 和反向代理 web 服务器,我的 blog 就是使用 nginx 代理的

安装 mariadb

一般公司采用的是 mysql,不过现在 arch 主推的是 mariadb,个人觉得也还行,我 blog 也使用的 mariadb

安装 mariadb

yay -S mariadb

安装之后会有一个初始化提示,直接使用 sudo 权限运行即可

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
# 初始化完成之后启动mariadb
sudo systemctl start mariadb

初始化完成之后执行配置命令,同样直接使用 sudo 权限运行,这里除了配置密码,基本一路回车即可

mysql_secure_installation
# 完成之后重启mariadb
systemctl restart mariadb

允许局域网访问

mariadb 默认是没有远程连接权限的,所以配置一下

# 登录mariadb
mysql -u root -p
# 切换数据库
mysql>use mysql;
# root 是允许访问的用户名
mysql>select 'host' from user where user='root';
# 接下来配置允许访问的用户,采用授权的方式给用户权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
# 显示 Query OK 即配置成功
# 说明:root 是登陆数据库的用户,123456 是登陆数据库的密码,
# '%'就是意味着任何来源任何主机反正就是权限很大的样子。
# 最后配置好权限之后刷新使之生效
mysql>flush privileges;
# 显示 Query OK 即配置成功 最后重启mariadb
systemctl restart mariadb

mariadb 配置大小写敏感

linux 下 mariadb 默认还是大小写敏感的,这个可能会导致项目查询报错(我就是 spring 集成 quartz 定时任务框架启动报错才发现的这个问题)

# 首先还是登录数据库
mysql -u root -p;
# 查询大小写敏感相关配置
show variables like '%lower_case_table_names%';
# 查询结果说明
# 1-->大小写不敏感
# 0-->大小写敏感
# 2-->表名存储为给定的大小写但是比较的时候是小写的
# 之后进入 /etc/my.cnf.d
# 编辑server.cnf, 一般my.cnf 是 includedir /etc/my.cnf.d 目录下的配置的
# 找到[mysqlld]标签,在下边添加
lower_case_table_names=1
# 保存,退出,重启 mariadb 即完成配置
systemctl restart mariadb

安转 mysql8

#安装

yay -S mysql

#初始化

一般来说这里输入安装成功后提示的初始化命令就行:

sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql

但是,在实际使用中,我发现好像是 linux 下的 mysql 默认是区分大小写的,在实际中就会导致项目报错,很蛋疼,经过网上各种搜索后,基本就是清一色的修改 lower_case_table_names,然后信誓旦旦的去修改了,然后,就发现 mysql 炸了。

据说,这是 mysql8.0 要求我们不能在 initialize 之后再更改 lower_case_table_names 的值,也就是说,再通过更改 my.cnf 文件是不管用的。

所以在初始化时,就要设置 lower-case-table-names

sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql --lower-case-table-names=1

#启动 mysql 服务

sudo systemctl start mysqld

#修改 root 密码

mysql -u root -p
ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
##其中 123456 为新的 root 密码

修改用户登录密码加密规则

这里如果是老版的 Navicat,连接 mysql 可能会报错,原因是 mysql8.0.4 后的密码加密方式发生了改变。
原来的加密方式是 mysql_native_password,现在的是 caching_sha2_password,
而 navicat 可能还是用的老一套加密方式,因此变一下加密方式:

# 进入命令行,登录mysql (root用户)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';  #用原来的加密方式更新用户的密码
FLUSH PRIVILEGES; #刷新权限
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 (这行我没有写,不过貌似也可以)

设置远程登录

默认 mysql 的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启 mysql 的远程访问权限。
主流的有两种方法,改表法和授权法。
相对而言,改表法比较容易一点,个人也是比较倾向于使用这种方法,因此,这里只贴出改表法

# 修改 mysql 库的 user 表,将 host 项,从 localhost 改为%。%这里表示的是允许任意 host 访问,如果只允许某一个 ip 访问,则可改为相应的 ip,比如可以将 localhost 改为 192.168.1.233,这表示只允许局域网的 192.168.1.233 这个 ip 远程访问 mysql。
# 切换数据库
mysql> use mysql;
# 修改user表
mysql> update user set host = '%' where user = 'root';
# 查询检查是否修改成功
mysql> select host, user from user;
# 刷新权限
mysql> flush privileges;
# 之后就可以切出去,尝试远程登录了

参考文章

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

一介死肥宅程序员,希望世界和平