Deepin 使用记录
本文是在我安装好 Deepin 15.5 之后做的系统环境初始化记录。方便以后安装新系统直接按照以前的习惯初始化环境。其中包含基础环境配置,和常见服务安装,如
Redis 等。
操作系统 Deepin 15.5
1 | sudo modprobe psmouse ##启用触摸板 |
取消搜狗輸入法快捷鍵
修改 apt 源为 清华源
1 | ## Generated by deepin-installer |
使用 ll
命令
如果有需要也可以修改 root 目录中的,这样sudo下也可以使用
vim ~/.bashrc
1 | # some more ls aliases |
升级 python 为 3.6
修改 python3 命令默认使用 python3.6
1 | cd /usr/bin/ |
注意:python 默认是软连接到 python2.x 上的,不可以把 python 作为默认使用 python3.x。如果这样可以的话那 Linux 就没有存在 python2.x 的意义了。但是由于 Linux 起源和 python 比较早,致使现在 Linux 系列都依赖于 python2。如果更改或者卸载 python2 会造成系统问题。
安装 python3-pip
1 | sudo apt install python3-pip |
配置 pip 使用清华源
1 | mkdir ~/.pip |
1 | [global] |
配置 root 用户使用
1 | sudo cp -r ~/.pip /root/ |
创建 pip 链接 pip3
1 | cd /usr/bin/ |
注意:使用 pip 安装,默认会安装到家目录
~/.local/
下面,包会在.local/lib/
对应 python 版本。也会在.local/bin/
生成对应的可执行文件。
而使用sudo pip install
则会装在/usr/local/lib/
对应的 python 版本下。
这里的python版本为你安装 pip 时的版本
安装 virtualenv
1 | sudo pip install virtualenv |
安装 shadowsocks 客户端
1 | sudo pip install shadowsocks |
创建 ss 配置文件
sudo vim /etc/shadowsocks.conf
1 | {"server" : "IP", |
运行 sslocal -c /etc/shadowsocks.conf
意外问题
- AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup
错误重现
1 | $ sslocal -c /etc/shadowsocks.conf |
错误解决:安装shadowsocks服务报错问题
这个问题是由于在openssl1.1.0版本中,废弃了EVP_CIPHER_CTX_cleanup函数,如官网中所说:
1 | EVP_CIPHER_CTX was made opaque in OpenSSL 1.1.0. As a result, EVP_CIPHER_CTX_reset() appeared and EVP_CIPHER_CTX_cleanup() disappeared. |
1 | EVP_CIPHER_CTX_init() remains as an alias for EVP_CIPHER_CTX_reset(). |
修改方法:
-
用vim打开文件:
vim /usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py
(该路径请根据自己的系统情况自行修改,如果不知道该文件在哪里的话,可以使用find命令查找文件位置)
-
跳转到52行(shadowsocks2.8.2版本,其他版本搜索一下cleanup)
-
进入编辑模式
-
将第52行
libcrypto.EVP_CIPHER_CTX_
cleanup
.argtypes = (c_void_p,)改为
libcrypto.EVP_CIPHER_CTX_
reset
.argtypes = (c_void_p,) -
再次搜索cleanup(全文件共2处,此处位于111行),将
libcrypto.EVP_CIPHER_CTX_
cleanup
(self._ctx)
改为libcrypto.EVP_CIPHER_CTX_
reset
(self._ctx) -
保存并退出
-
启动shadowsocks服务:service shadowsocks start 或 sslocal -c ss配置文件目录
-
问题解决
配置 Chrome 使用 代理
下载 Chrome 扩展程序
http://note.youdao.com/noteshare?id=ee6e65186fd5a78358a3d503e95c4746
下载扩展程序备份数据
http://note.youdao.com/noteshare?id=8042047a6a81df37c561165c9775c6e4
-
Chrome 扩展安装
在 Chrome 中 按下
Alt + E
组合键,更多工具
==>扩展程序
;或者直接浏览器输入chrome://extensions/
打开
扩展程序
,将下载的插件拖入页面以安装插件。安装完成后打开插件,选择
导入/导出
==>从备份文件恢复
然后选择下载的扩展程序备份数据。
-
使用插件
浏览器右上角点击插件图标,选择
auto switch
,浏览器打开谷歌应该可以访问了。
安装 JDK
配置 JAVA 环境变量
1 | # JAVA ENV |
安装 Idea Pycharm
配置桌面启动器
cd /usr/share/applications
vim idea.desktop
1 | [Desktop Entry] |
Pycharm 相同
安装便签
安装 Docker
免sudo使用docker命令
如果还没有 docker group 就添加一个:
1 | sudo groupadd docker |
将用户加入该 group 内。然后退出并重新登录就生效啦。
1 | sudo gpasswd -a ${USER} docker |
重启 docker 服务
1 | sudo service docker restart |
切换当前会话到新 group 或者重启 X 会话
1 | newgrp - docker |
注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images 执行时同样有错。
安装 Redis
注意:下面的操作和给出链接的安装目录不一样,切勿两边操作。
-
解压
1
tar -zxvf ~/Downloads/redis-3.2.11.tar.gz -C /tmp/
-
编译并安装
编译:
1 | cd /tmp/redis-3.2.11/ |
最后几行的输出
1 | CC redis-benchmark.o |
编译测试:
1 | sudo make test |
注意: 如果在 make test 出现
You need tcl 8.5 or newer in order to run the Redis test
这个错误,
请参考 https://blog.csdn.net/luyee2010/article/details/18766911 后,执行如下操作
1 | wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz |
编译测试最后输出
1 | 79 seconds - integration/replication |
安装:
1 | sudo make install PREFIX=/usr/local/share/redis |
这里 PREFIX
为指定安装到该位置。要确保对这个目录有写入权限。
输出
1 | cd src && make install |
增加配置文件:
1 | mkdir /usr/local/share/redis/ect/ |
字段名 | 含义 |
---|---|
daemonize | 如需要在后台运行,把该项的值改为yes |
pdifile | 把pid文件放在/var/run/redis.pid,可以配置到其他地址 |
bind | 指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项 |
port | 监听端口,默认为6379 |
timeout | 设置客户端连接时的超时时间,单位为秒 |
loglevel | 等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice |
logfile | 配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上 |
database | 设置数据库的个数,默认使用的数据库是0 |
save | 设置redis进行数据库镜像的频率 |
rdbcompression | 在进行镜像备份时,是否进行压缩 |
dbfilename | 镜像备份文件的文件名 |
dir | 数据库镜像备份的文件放置的路径 |
slaveof | 设置该数据库为其他数据库的从数据库 |
masterauth | 当主数据库连接需要密码验证时,在这里设定 |
requirepass | 设置客户端连接后进行任何其他指定前需要使用的密码 |
maxclients | 限制同时连接的客户端数量 |
maxmemory | 设置redis能够使用的最大内存 |
appendonly | 开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态 |
appendfsync | 设置appendonly.aof文件进行同步的频率 |
vm_enabled | 是否开启虚拟内存支持 |
vm_swap_file | 设置虚拟内存的交换文件的路径 |
vm_max_momery | 设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0 |
vm_page_size | 设置虚拟内存页的大小 |
vm_pages | 设置交换文件的总的page数量 |
vm_max_thrrads | 设置vm IO同时使用的线程数量 |
编写 redis 启动文件
sudo vim /etc/systemd/system/redis.service
1 | [Unit] |
其他问题
1 | 28769:M 24 Mar 23:49:14.920 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. |
这个警告,可以参照警告描述操作
1 | 28769:M 24 Mar 23:49:14.920 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. |
这个警告,分两步操作。
第一步:
sudo echo never > /sys/kernel/mm/transparent_hugepage/enabled
第二步:
1 | sudo touch /etc/rc.local |
关于创建该文件可以参考 自启动程序
然后编辑该文件,加入
1 | !/bin/sh |
这一步是在开机自启的时候,检测第一步操作的文件内容是否为
never
然后写入更改。讲白了就是做到开机禁用
参考 透明大叶介绍