[MIGRATE]Majaro配置

Table of Contents

返回

1 ss并且开机启动

1.1 安装shadowsocks

sudo pip install shadowsocks 

1.2 建立配置文件ss.json

我的位置是: /home/ray/Documents/shadowsocks/ss.json

{
    "server":"*.*.*.*",
    "server_port":***,
    "local_port":1081,
    "password":"*****",
    "timeout":600,
    "method":"aes-256-cfb"
}

1.3 建立sh文件,用以运行

我的位置是: /home/ray/Documents/shadowsocks/ss.sh

#!/bin/bash
#ss.sh
/home/ray/anaconda3/bin/sslocal -c /home/ray/Documents/shadowsocks/ss.json 

echo "connected!"

注意 ,如果是开机启动会出现:"sslocal 未知的命令"的情况,一定要附上绝对路径,或者加入环境变量。

不要忘记增加可执行权限:

sudo chmod +x ss.sh

测试:打开终端后,运行: sh /home/ray/Documents/shadowsocks/ss.sh,不报错就成功了

1.4 开机自动启动

1.4.1 首先载启动文件`/etc/rc.local`中加入

sh /home/ray/Documents/shadowsocks/ss.sh

增加权限:

sudo chmod +x /etc/rc.local

重启,如果可以翻墙最好,如果不行则考虑步骤3.2

1.4.2 3.2 添加服务

新建文件:`/usr/lib/systemd/system/rc-local.service`,在其中加入:

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
ExecStart=/etc/rc.local
[Install]
WantedBy=multi-user.target

之后在终端运行:

systemctl enable rc-local.service    # 允许该服务,使其可以开机自运行
systemctl start rc-local.service    # 启动该服务
systemctl status rc-local.service   # 查看服务状态

如果发现服务状态没有异常,则搞定了,重启即可

1.5 github代理

git config --global http.proxy 'socks5://127.0.0.1:1081' 

1081为本地端口号

2 双硬盘时,机械硬盘挂载

2.1 格式化硬盘为EXT4

如果时windows过来的NTFS,一定要进行格式化,否则无法写入

fdisk -l   # 列出所有分区,找到想要格式化的分区名,如/dev/sda1
sudo mkfs -t ext4 /dev/sda1   # 格式化完成

2.2 分区

sudo fdisk /dev/sda     #格式化后名称为/dev/sda

输入n、p、1、两下回车、wq、回车,分成一个区

2.3 挂载

# 新建文件夹作为挂载点
mkdir /home/ray/Documents/Data

# 给定写入权限
chown -R 500:ray /run/media/ray/data/
sudo chown ray:ray /run/media/ray/data/

# 挂载
sudo mount -t ext4 /dev/sda1 /home/ray/Documents/Data/

2.4 开机自动挂载

sudo gedit /etc/fstab

加入: #+END_SRC /dev/sda1 /home/ray/Documents/Data ext4 defaults 0 2 #+END_SRC

3 添加字体

3.1 安装依赖

sudo pacman -S fontconfig

3.2 下载对应的字体文件,并且放到指定位置

3.3 建立缓存

mkfontscale mkfontdir fc-cache -fv

4 安装 latex

# 安装底层(最后一个用于解决bibtex的问题)
sudo pacman -S texlive-core texlive-langchinese texlive-latexextra texlive-publishers

# 安装IDE
sudo pacman -S texstudio

# 更新texlive
texhash

5 双显卡驱动

manjaro装机之后的显卡驱动切换程序:Bumblebee还是有点问题,我们重新安装

5.1 安装

# 依赖
sudo pacman -S virtualgl lib32-virtualgl lib32-primus primus

# 安装双显卡切换程序bumblebee
sudo mhwd -f -i pci video-hybrid-intel-nvidia-bumblebee

# 允许服务
sudo systemctl enable bumblebeed

# 添加用户
sudo gpasswd -a $USER bumblebee

5.2 防止启动后无法进入图形界面

  1. 打开 /etc/default/grub
  2. 找到并且改为:GRUB_CMLINE_LINUX_DEFAULT="quiet acpi_osi=! acpi_osi=Linux acpi_osi=’Windows 2015’ pcie_port_pm=off resume=…"
  3. 运行sudo update-grub,重启

5.3 测试

# 安装测试软件
sudo pacman -S mesa-demos

# 集成显卡性能
glxgears -info

# 独显性能
optirun glxgears -info
# 或者
primusrun glxgears -info

之后所有需要用独显允许的程序,前面都要加上optirun或者primusrun允许

# 打开nvida面板
optirun -b none nvidia-settings -c :8

# 不依赖Bumblebee来使用CUDA
sudo tee /proc/acpi/bbswitch <<< 'ON'

# 使用完CUDA 停止NVIDIA显卡
sudo rmmod nvidia_uvm nvidia && sudo tee /proc/acpi/bbswitch <<< OFF
inxi -G # 查看显卡情况

optirun nvidia-smi # 查看CPU情况

5.4 两种用法

  1. 用bumblebee切换:

命令前面加上 optirun 或者primusrun运行

  1. 用bbswitch:
# 一直开启独显
sudo tee /proc/acpi/bbswitch <<< 'ON'
# 一直禁用独显
sudo tee /proc/acpi/bbswitch <<< 'OFF'

6 docker + pyspark + jupyter 安装

6.1 本地安装docker

6.1.1 1.1 安装docker包

sudo pacman -S docker

6.1.2 1.2 防止权限问题,加入用户权限

sudo usermod -aG docker ray

6.1.3 1.3 重启服务(或者重启计算机)

sudo systemctl restart docker

6.1.4 1.4 查看安装是否成功

sudo docker -info

6.2 配置spark 镜像(images)和容器(containers)

6.2.1 首先,直接建立容器,如果镜像不存在,则会自动下载:

sudo docker run -d -p 8888:8888 --name spark -v $PWD:/home/jovyan/work jupyter/all-spark-notebook start-notebook.sh --NotebookApp.password='sha1:5b1e121347e8:15266c00b25c2e497714de20a674d5b8935e09dd'

命令解释:

在浏览器中输入'http://localhost:8888',即可打开容器对应的notebook

6.2.2 其次,查看docker状态

# 显示当前容器
docker ps

# 显示所有容器
docker ps -a

# 显示所有镜像 
docker images

# 删除容器
docker rm container_name

# 删除镜像,必须先删除依赖该镜像的容器
docker rmi image_name

6.2.3 最后,直接打开或是关闭

# 关闭容器
docker stop spark

# 打开容器
docker start spark

6.3 3 推荐的pyspark docker

6.4 1. 安装zsh

sudo pacman -S git, zsh

6.5 2. 安装 oh-my-zsh

oh-my-zsh是zsh的一个封装,类似spacemacs和emacs的关系

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

记着将`.bashrc`中添加的语句复制到`.zshrc`中

6.6 3. 设置为默认shell

chsh -s /bin/zsha

6.7 4. 添加powerline

pip install git+git://github.com/powerline/powerline

然后将

powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
. /usr/local/lib/python2.7/dist-packages/powerline/bindings/zsh/powerline.zsh

添加到`.zshrc`中,注意powerline的位置不一定是上面的,需要自行更改

最后重启

7 tensorflow 环境搭建

我们的配置是:

  • CUDA-8.0
  • cuDNN-6
  • tensorflow-gpu 1.4

7.1 1. 双显卡切换为独显

独显必须一直保持开着的状态,才可以稳定运行cuda等程序,我们通过`bbswitch`切换独显

sudo tee /proc/acpi/bbswitch <<< ‘ON’

注意,如果`nvidia-smi -pm`为1的话上述方法是无效的,必须变为0,即实时切换状态

nvidia-smi -pm 0

7.2 2. 安装CUDA

7.2.1 2.1 yaourt 安装

yaourt -S cuda-8.0

如果遇到yaourt报告空间不够,则:

  1. 打开`/etc/yaourtrc`
  2. 将 `#TMPDIR="/tmp"` 改为`TMPDIR="/home/$USER/tmp"即可`

7.2.2 2.2 加入环境变量

通过安装日志可以发现,yaourt将安装包迁移到了`/opt`中,因此我们在 `.bashrc`或`.zshrc`、以及`/etc/profile`中加入:

export CUDA_HOME=/opt/cuda
export PATH=/opt/cuda/bin:$PATH
export LD_LIBRARY_PATH=/opt/cuda/lib64:$LD_LIBRARY_PATH

7.2.3 2.3 验证安装

查看CUDA版本

nvcc -V

编译samples,CUDA安装时自带了samples文件夹,进入该文件夹后直接编译(gcc啥的都给你装好了),但是一定记得用sudo,否则报错

cd /opt/cuda/samples

sudo make

查看编译结果:

cd bin/x86_64/linux/release

./deviceQuery    # 最后如果返回pass,则通过

./bandwidthTest    # 最后如果返回pass,则通过

reboot            # 最好重启一下

恭喜你,到了这一步,CUDA已经顺利安装完成啦!!

7.3 3. cuDNN安装

cuDNN是nivida提供的深度学习GPU库,在manjaro下非常好安装:

# 先确定独显是开着的
sudo tee /proc/acpi/bbswitch <<< ‘ON’

yaourt -S cudnn6

装好之后,将cudnn文件拷贝到cuda中:

sudo cp /opt/cudnn6/include/cudnn.h /opt/cuda/include
sudo cp cudnn6/lib64/libcudnn* /opt/cuda/lib64

# 增加权限
sudo chmod a+r cuda/include/cudnn.h
sudo chmod a+r cuda/include/cudnn.h

恭喜,至此你已经完成了准备工作啦!

7.4 4. 安装tensorflow-gpu版本

为了跟CUDA8兼容,我们安装1.4版本的tensorflow-gpu

pip install tensorflow-gpu==1.4

重启,很关键*

reboot 

重启之后,打开ipython,输入命令进行测试:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()

如果提示中不包含`ERROR`或`FAIL`字样,且包含了你的独显名称,那么就是正确安装了。

最后设置CPU按需求使用,在每次导入tf时:

# 设置tendorflow对显存使用按需增长。
import tensorflow as tf
config  = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)

7.5 5. 安装keras

pip install keras

keras默认使用tensorflow后端,并且会直接调用其GPU,因此无需做任何改动

8 linux备份

8.1 0. 权限问题

 sudo gedit /etc/rsyncd.conf

将其中的

uid = nobody
gid = nobody

改为

uid = root 
gid = root

备份结束之后一定要改回来!!

8.2 1. 备份

sudo time rsync -Pa / /run/media/ray/Elements/LinuxBackup/2018_05_10 --exclude="/sys/*" --exclude="/proc/*" --exclude="/mnt/*" --exclude="/tmp/*" --exclude="/run/media/*"

8.3 2. 恢复

sudo rsync -Pa /run/media/ray/Elements/LinuxBackup/2018_05_10 /

manjaro的teamviewer有一些问题,pacman装上之后会出现"Not ready,.."的情况,此时应该:

sudo teamviewer --daemon enable

再打开teamviewer即可!

9 连接鼠标

9.1 1. 蓝牙直连

9.2 2. 有线连接,安装驱动

ltunify unpair mouse
ltunify pair

9.3 每次打开终端时互换

在 ~/.bashrc或者~/.zshrc中添加

setxkbmap -option ctrl:swapcaps

9.4 服务器端:

生成配置文件

$ jupyter notebook --generate-config
In [1]: from IPython.lib import passwd

In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:0e422dfccef2:84cfbcbb3ef95872fb8e23be3999c123f862d856' 

打开配置文件

$vim ~/.jupyter/jupyter_notebook_config.py 

修改:

c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #随便指定一个端口
c.NotebookApp.allow_remote_access = True

打开jupyter notebook

9.5 本地端

网页输入 http:// ip_address:8888

Author: 杨 睿

Created: 2022-12-30 Fri 10:49

Validate