Skip to content

deepin linux 使用与运维日记(长期更新)

软件推荐

注:大型或知名软件就不在这里推荐了

桌面级

  1. albert 效率工具,快速检索
  2. genymotion 模拟器,安卓开发必备
  3. goldendict 开源词典,支持多种格式
  4. redict 第三方有道词典,官方版存在内存泄露
  5. uget 下载管理工具,最好配合 aria2 使用
  6. Persepolis Download Manager(PDM) aria2 的前端 GUI
  7. Vokoscreen 录屏软件
  8. Shotcut 视频剪辑软件
  9. LosslessCut 视频剪辑软件(无损,非编码)
  10. HandBrake 视频压制/转码 GUI
  11. Ghex 二进制文件编辑器
  12. Debreate deb 打包辅助工具
  13. meld 文件(夹)对比工具
  14. remmina 远程连接图形化管理工具,支持多种协议
  15. XnView 图片管理工具,适合需要管理大量图片的用户,支持多种格式,如 PSD 直接预览
  16. Typora 基于 MD 格式的写作软件
  17. dbKoda mongodb 的管理/开发工具,且具备数据可视化分析的功能。
  18. ISO Master IOS 镜像创建和编辑软件
  19. Gucharmap 类似 Windows 下的字符映射表
  20. yEd Graph Editor 流程图绘制工具
  21. you-get Python3 写的工具,可以下载主流视频网站的视频
  22. To Do 简洁的待办事项软件
  23. GtkHash 是一个用来计算消息摘要和 checksum 的工具,当前支持的哈希函数包括:MD5、SHA1、SHA256、SHA512、RIPEMD、TIGER、WHIRLPOOL。
  24. timeshift 时光机,类似 macOS 的时间机器,Windows 的系统还原

服务器

  1. htop 类似 top 的命令界面工具,比 top 更好用。
  2. verdaccio 让你部署私有 NPM 服务更容易。
  3. gitblit 让你部署私有 Git 服务更容易。

Goldendict 在线词典配置

目前根据我测试的结果可用的主要有这么几个:海词,有道,金山词霸,译典通,汉典,以下是这些词典的地址:

bash
http://dict.cn/%GDWORD%
http://dict.youdao.com/search?q=%GDWORD%&ue=utf8
http://www.iciba.com/%GDWORD%/
http://www.dreye.com.cn/ews/%GDWORD%--01--.html
http://www.zdic.net/sousuo/?q=%GDWORD%
http://dict.cn/%GDWORD%
http://dict.youdao.com/search?q=%GDWORD%&ue=utf8
http://www.iciba.com/%GDWORD%/
http://www.dreye.com.cn/ews/%GDWORD%--01--.html
http://www.zdic.net/sousuo/?q=%GDWORD%

升级 firefox 的 flash 插件

chrome 用户可以无视这个。

官网下载的文件名为 flash_player_npapi_linux.x86_64.tar.gz

将解压出来的 .so 文件复制到 ~/.mozilla/plugins 中。

重新启动小狐狸。

firefox 的媒体解析插件安装不上

正常情况下 FF 会自动安装媒体插件,这种情况一般是网络原因,我遇到过,翻墙之后顺利安装。

如何手动建立一个 desktop 启动

以火狐为例:

/home/wolfx/.local/share/applications 新建 .desktop 文件

貌似不支持 gif 形式的 Icon

bash
[Desktop Entry]
Type=Application
Version=1.0
Name=firefox
Comment=可爱的小狐狸
Path=/opt/firefox
Exec=/opt/firefox/firefox %U
Icon=firefox
Terminal=false
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;
[Desktop Entry]
Type=Application
Version=1.0
Name=firefox
Comment=可爱的小狐狸
Path=/opt/firefox
Exec=/opt/firefox/firefox %U
Icon=firefox
Terminal=false
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;

PS:关于这个我自己用 QT 写了个 GUI 管理工具。

让 uget 成为 firefox 默认下载器

首先安装 uget-integrator

https://github.com/ugetdm/uget-integrator

bash
wget https://raw.githubusercontent.com/ugetdm/uget-integrator/master/install/linux/install_uget_integrator.sh
chmod +x install_uget_integrator.sh
./install_uget_integrator.sh
wget https://raw.githubusercontent.com/ugetdm/uget-integrator/master/install/linux/install_uget_integrator.sh
chmod +x install_uget_integrator.sh
./install_uget_integrator.sh

批量无损压缩图片

bash
sudo apt install jpegoptim
sudo apt install optipng
sudo apt install jpegoptim
sudo apt install optipng
bash
## 压缩JPG
find . -name '*.jpg' | xargs jpegoptim --strip-all
## 压缩PNG
find -type f -name "*.png" -exec optipng {} \;
## 压缩JPG
find . -name '*.jpg' | xargs jpegoptim --strip-all
## 压缩PNG
find -type f -name "*.png" -exec optipng {} \;

然后安装浏览器插件,狐火拓展搜索 uget-integrator 安装,重启浏览器即可。

java -jar 运行软件中文乱码

这是由于内置的 open jre 没有内置中文字体导致的。解决方式有两种,第一种是拷贝字体到 jre,我们这里用第二种:

编辑 ~/.profile 加入

bash
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

环境变量

编辑 ~/.profile 加入你需要配置的路径

bash
export PATH=$PATH:/home/wolfx/.local/bin
export PATH=$PATH:/home/wolfx/.local/bin

自由切换 Java 版本

sudo update-alternatives --config java

java-ver.png

安装 Oracle Java

  1. 下载 Oracle JDK 压缩包(.tar.gz)。
  2. 解压到 /opt
  3. sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 1000sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_66/bin/javac 1000

update-alternatives 是专门维护系统命令链接符的工具

查看当前支持的分辨率

xrandr

bash
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
eDP-1-1 connected (normal left inverted right x axis y axis)
   1366x768      59.98 +
   1360x768      59.80    59.96
   1280x720      60.00    59.99    59.86    59.74
   1024x768      60.04    60.00
   960x720       60.00
   928x696       60.05
   896x672       60.01
   1024x576      59.95    59.96    59.90    59.82
   960x600       59.93    60.00
   960x540       59.96    59.99    59.63    59.82
   800x600       60.00    60.32    56.25
   840x525       60.01    59.88
   864x486       59.92    59.57
   800x512       60.17
   700x525       59.98
   800x450       59.95    59.82
   640x512       60.02
   720x450       59.89
   700x450       59.96    59.88
   640x480       60.00    59.94
   720x405       59.51    58.99
   684x384       59.88    59.85
   680x384       59.80    59.96
   640x400       59.88    59.98
   576x432       60.06
   640x360       59.86    59.83    59.84    59.32
   512x384       60.00
   512x288       60.00    59.92
   480x270       59.63    59.82
   400x300       60.32    56.34
   432x243       59.92    59.57
   320x240       60.05
   360x202       59.51    59.13
   320x180       59.84    59.32
VGA-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95
   1600x900      60.00
   1280x1024     75.02    60.02
   1440x900      59.89
   1280x800      59.81
   1152x864      75.00
   1280x720      60.00
   1024x768      75.03    70.07    60.00
   832x624       74.55
   800x600       72.19    75.00    60.32    56.25
   640x480       75.00    72.81    66.67    59.94
   720x400       70.08
HDMI-1-1 disconnected (normal left inverted right x axis y axis)
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
eDP-1-1 connected (normal left inverted right x axis y axis)
   1366x768      59.98 +
   1360x768      59.80    59.96
   1280x720      60.00    59.99    59.86    59.74
   1024x768      60.04    60.00
   960x720       60.00
   928x696       60.05
   896x672       60.01
   1024x576      59.95    59.96    59.90    59.82
   960x600       59.93    60.00
   960x540       59.96    59.99    59.63    59.82
   800x600       60.00    60.32    56.25
   840x525       60.01    59.88
   864x486       59.92    59.57
   800x512       60.17
   700x525       59.98
   800x450       59.95    59.82
   640x512       60.02
   720x450       59.89
   700x450       59.96    59.88
   640x480       60.00    59.94
   720x405       59.51    58.99
   684x384       59.88    59.85
   680x384       59.80    59.96
   640x400       59.88    59.98
   576x432       60.06
   640x360       59.86    59.83    59.84    59.32
   512x384       60.00
   512x288       60.00    59.92
   480x270       59.63    59.82
   400x300       60.32    56.34
   432x243       59.92    59.57
   320x240       60.05
   360x202       59.51    59.13
   320x180       59.84    59.32
VGA-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95
   1600x900      60.00
   1280x1024     75.02    60.02
   1440x900      59.89
   1280x800      59.81
   1152x864      75.00
   1280x720      60.00
   1024x768      75.03    70.07    60.00
   832x624       74.55
   800x600       72.19    75.00    60.32    56.25
   640x480       75.00    72.81    66.67    59.94
   720x400       70.08
HDMI-1-1 disconnected (normal left inverted right x axis y axis)

Deepin 降级保护措施

另外单独安装的包可以使用 apt-mark 设定为保留:

bash
sudo apt-mark hold cocomusic google-chrome-stable
sudo apt-mark hold cocomusic google-chrome-stable

添加右键菜单

~/.config/deepin/dde-file-manager/menuextensions 路径下创建 xxx.json 文件,内容如下。

json
[
  {
    "MenuType": "EmptyArea",
    "Icon": "",
    "Text[zh_CN]": "刷新",
    "Exec": "deepin-refresh"
  }
]
[
  {
    "MenuType": "EmptyArea",
    "Icon": "",
    "Text[zh_CN]": "刷新",
    "Exec": "deepin-refresh"
  }
]

dpkg:处理软件包 xxx (--configure)时出错

解决办法如下:

1.将 info 文件夹更名

bash
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old

2.再新建一个新的 info 文件夹

bash
sudo mkdir /var/lib/dpkg/info
sudo mkdir /var/lib/dpkg/info

3.更新

bash
sudo apt-get update
sudo apt-get -f install
sudo apt-get update
sudo apt-get -f install

4.还原 info

bash
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info

内存优化(swappiness)

swappiness 的值的大小对如何使用 swap 分区是有着很大的联系的。swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap 空间,swappiness=100 的时候表示积极的使用 swap 分区,并且把内存上的数据及时的搬运到 swap 空间里面。deepin 的默认设置为 10 ,一般 linux 默认值为 60,查看方式具体如下:

bash
cat /proc/sys/vm/swappiness
cat /proc/sys/vm/swappiness

临时调整的方法如下

bash
sysctl vm.swappiness=10
sysctl vm.swappiness=10

要想永久调整的话需要在 /etc/sysctl.conf 修改,在文件末尾加上:

bash
vm.swappiness=10
vm.swappiness=10

linux 挂载的外部磁盘无执行权限的问题

在一次系统更新后,我挂载的 HDD 硬盘上所有文件的执行权限全部没了,这里的执行权限不是指x权限,即使用 chmod 777 也无法执行。

查阅资料后发现跟linux的挂载机制有关,看了一下etc/mtab发现挂载的 HDD 有noexec参数,于是解决方案有了,就是写个自动挂载脚本,去掉noexec参数。

关于写挂载脚本,可以参数下面这篇文章:

Linux 命令-自动挂载文件/etc/fstab 功能详解[转]

手动修改 /etc/fstab

bash
## /dev/sda1
UUID=221e1c8a-fb65-4528-8ff1-0897d3e9111d /media/wolfx/HDD ext4 rw,nosuid,nodev,exec,relatime,data=ordered 0 0
## /dev/sda1
UUID=221e1c8a-fb65-4528-8ff1-0897d3e9111d /media/wolfx/HDD ext4 rw,nosuid,nodev,exec,relatime,data=ordered 0 0

这里的 UUID 需要获取,比如获取 sda1 的 UUID: dumpe2fs -h /dev/sda1

重启后问题解决。

mysql 允许远程访问

安装

bash
sudo apt install mysql-server
sudo apt install mysql-server

设置密码

sql
UPDATE user SET password=PASSWORD("new password") WHERE user='root';
UPDATE user SET password=PASSWORD("new password") WHERE user='root';

允许远程

sql
UPDATE user SET host='%' WHERE user='root';
UPDATE user SET host='%' WHERE user='root';

sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

注释掉 bind-address=127.0.0.1 这行

sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

重启

bash
systemctl restart mysqld
systemctl restart mysqld

安装 postgresql

安装

bash
sudo apt-get update
sudo apt-get install postgresql
sudo apt-get update
sudo apt-get install postgresql

安装 Postgresql 后,会自动添加一个名为 postgres 的操作系统用户,密码是随机的。并且会自动生成一个名字为 postgres 的数据库,用户名也为 postgres,密码也是随机的。

修改 postgres 数据库用户的密码为 123456

bash
sudo -u postgres psql
postgres=## ALTER USER postgres WITH PASSWORD '123456';
postgres=## \q
sudo -u postgres psql
postgres=## ALTER USER postgres WITH PASSWORD '123456';
postgres=## \q

重设系统用户密码

bash
sudo passwd -d postgres  ## passwd -d 是清空指定用户密码的意思
sudo -u postgres passwd
sudo passwd -d postgres  ## passwd -d 是清空指定用户密码的意思
sudo -u postgres passwd

配置远程访问

bash
vim /etc/postgresql/9.4/main/postgresql.conf
vim /etc/postgresql/9.4/main/postgresql.conf

监听任何地址访问,修改连接权限

#listen_addresses = 'localhost' 改为 listen_addresses = '*'

启用密码验证

#password_encryption = on 改为 password_encryption = on

bash
vim /etc/postgresql/9.4/main/pg_hba.conf
vim /etc/postgresql/9.4/main/pg_hba.conf

在文档末尾加上以下内容

host all all 0.0.0.0 0.0.0.0 md5

重启服务

bash
sudo systemctl restart postgresql
sudo systemctl restart postgresql

局域网 NPM

https://github.com/verdaccio/verdaccio

环境配置

这步是为了避免权限问题

bash
## 创建新目录
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
## 修改环境变量
export PATH=~/.npm-global/bin:$PATH
## 创建新目录
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
## 修改环境变量
export PATH=~/.npm-global/bin:$PATH

安装

bash
npm install --global verdaccio
npm install --global verdaccio

修改配置

bash
vim /home/junlsoft/.config/verdaccio/config.yaml
vim /home/junlsoft/.config/verdaccio/config.yaml
bash
## a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: https://registry.npm.taobao.org/
## a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: https://registry.npm.taobao.org/
bash
listen: 0.0.0.0:4873
listen: 0.0.0.0:4873

部署 gitlab

参考文章 https://www.jianshu.com/p/a9bb06a48b25

bash
sudo apt-get update
sudo apt-get install -y openssh-server ca-certificates
sudo apt-get update
sudo apt-get install -y openssh-server ca-certificates

如果需要邮箱提醒服务,还需要安装 postfix,当然你也可以安装其他邮件服务。

bash
sudo apt-get install -y postfix
sudo apt-get install -y postfix

安装

bash
sudo dpkg -i gitlab-ce_xx.x.x-ce.x_amd64.deb
sudo dpkg -i gitlab-ce_xx.x.x-ce.x_amd64.deb

安装之后开始配置 GitLab,使用 gedit 或者 vim 打开 /etc/gitlab/gitlab.rb。然后修改 external_url 的值为你的本机 ip,比如 127.0.0.1

修改默认端口

bash
sudo vim /opt/gitlab/embedded/conf/nginx.conf
## listen *:8088; 修改端口
sudo vim /opt/gitlab/embedded/conf/nginx.conf
## listen *:8088; 修改端口

配置 gitlab 并查看运行状态

bash
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status

重启 gitlab

bash
gitlab-ctl restart
gitlab-ctl restart

连接 SoftEther VPN

https://my.oschina.net/funcy/blog/1940553

以下总结注意点:

  1. 连接方式为 L2TP
  2. IPSec 的加密协议是 3des-sha1-modp1024 与 3des-sha1
  3. deepin 需要安装额外的依赖才能使用 3des 加密。
    bash
    apt-get install libcharon-extra-plugins
    apt-get install libstrongswan-standard-plugins
    apt-get install libstrongswan-extra-plugins
    apt-get install libcharon-extra-plugins
    apt-get install libstrongswan-standard-plugins
    apt-get install libstrongswan-extra-plugins

最后编辑时间:

Version 4.0 (framework-1.0.0-rc.20)