Ubuntu计算机视觉开发环境配置(Python/C++)

本文介绍在Ubuntu 18.04环境下搭建计算机视觉开发环境的过程,包括Python, C/C++的环境配置,PyTorch, TensorFlow和OpenCV的安装,以及VS Code配置等内容。

我的个人硬件型号及软件版本:

  • i7-9700k @ 3.6GHz
  • NVIDIA RTX 2080Ti
  • Ubuntu 18.04 LTS
  • PyTorch 1.4.0
  • TensorFlow 2.1.0
  • OpenCV 4.2.0

Ubuntu安装常见问题

本文暂不详述Ubuntu安装过程,只根据个人经验给出安装过程中设置分区大小的建议。

分区建议

下面以总共约400GB大小为例:

  • /boot – 4GB。网上常见的文章大多建议为/boot分配512MB或1GB,但在更新系统内核时,新版本和旧版本的内核都在这个分区下,即便1GB的空间也可能会出现空间不足而无法再更新的情况。所以索性给它4个GB,未来几年应该会够用啦。另外,日常使用时,也可以随时用sudo apt-get autoremove命令,删除不用的包和老版内核,以节约空间。
  • /swap – 16GB。这个一般都是建议和内存大小一致。跑深度学习模型时,也是经常出现内存被挤满需要征用/swap的情况,所以多分配一些也是可以的。
  • / – 80GB。为了偷懒,/opt, /usr等都统一放在一个分区。系统软件和部分软件占用不了太多空间,我现在80GB的空间只用了一半左右。如果是实验室这种有多个用户需求的,最好单独分配/usr分区,保护数据的安全。
  • /home – 300GB。/home分区多多益善尔~特别是重度Linux用户(比如打游戏和视频会议才会用Windows)。再加上深度学习的数据、模型参数、实验结果等都需要大量的空间,我这300GB空间也是常年处于空间不足的状态,苦不堪言。

如果用的是双系统,而且Windows位于其他硬盘的话,在安装Ubuntu过程中可以把引导文件安装在Windows的引导分区(Windows所在的硬盘有一个100MB大小的分区),它会自动识别并为Windows分配引导。这样以后开机时会进入Ubuntu的Grub引导,而且两个系统都可以选择。

启动Ubuntu黑屏的问题

由于Ubuntu的LTS并没有采用最新版本的Linux内核,而且系统本身也没有对硬件驱动做过多的适配,所以安装过程中很容易出现硬件无法识别的问题。比如我在安装Ubuntu时,以及卸载显卡驱动后重新启动时,由于Ubuntu系统无法识别GTX 1080Ti和RTX 2080Ti显卡,进入启动界面后要么是黑屏,要么所有文字显示异常。换显示器或视频线接口都不能解决。这里给出两种解决方法:

  1. 换用老型号显卡。如果手边有老显卡,比如GTX 960及同世代的显卡,可以先关机换上老显卡,安装系统和Nvidia显卡驱动之后,再关机换上新显卡。
  2. 修改Grub引导参数。在选择引导的界面可以修改Grub文件(一般是按“E”键或者进入高级选项之后再按“E”键)。在新的界面里找“quiet splash”几个字,把这两个单词删除,替换为“nomodeset”。然后按F10就可以进入系统了。改这个参数的目的是在启动系统时不采用Linux自己所带的针对高分辨率显示器设计的显示驱动,而是采用Bios提供的显示驱动。即便游戏显卡的型号再新,肯定是要对市面上主流的主板和Bios做适配的,所以这样基本可以保证能够成功进入系统。更改这个参数并不会对系统的引导方式产生影响,更不会影响已经存在的其他系统。

安装显卡驱动和CUDA

我们先介绍安装Nvidia显卡驱动,CUDA和cuDNN的过程。

Nvidia显卡驱动

1. 添加显示驱动的软件源并更新apt源

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

2. 查看可用的驱动版本

ubuntu-drivers devices

3. 直接安装推荐的驱动

sudo ubuntu-drivers autoinstall

或者手动安装某版本的驱动(比如440)

sudo apt-get install nvidia-driver-440

安装完成后可以重启一下,然后就可以安装CUDA了。

CUDA和cuDNN

如果需要安装TensorFlow,CUDA和cuDNN的版本需要小心选取,否则容易出现TensorFlow无法启用GPU训练的错误。官方给出了TensorFlow各版本所适配的CUDA和cuDNN版本,如下图所示:

TensorFlow与CUDA和cuDNN的适配版本

本文后面要安装TensorFlow 2.1.0版本,所以这里需要下载并安装CUDA 10.1和cuDNN 7.6。

1. 可以在官网下载CUDA安装包:https://developer.nvidia.com/cuda-downloads。也可以在终端直接执行以下命令进行安装:

wget https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.105_418.39_linux.run
sudo chmod +x cuda_10.1.105_418.39_linux.run
sudo ./cuda_10.1.105_418.39_linux.run

安装过程中会出现几次提示,大部分按照默认值直接回车即可。只有在提示是否安装显卡驱动时输入“no”就好。另外可以选择把CUDA Samples安装在用户的主目录下,方便后面测试。

2. cuDNN也需要到官网下载:https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.1_20191031/cudnn-10.1-linux-x64-v7.6.5.32.tgz。下载之前需要注册Nvidia Developer的账号。这里选择的是适配CUDA 10.1的cuDNN v7.6.5版本。

然后解压下载好的压缩包,并把cuDNN的文件拷贝到系统目录下,以便其他程序调用:

cd cudnn-10.1-linux-x64-v7.6.5.32/cuda
sudo cp -P include/cudnn.h /usr/local/cuda/include
sudo cp -P lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

3. 修改bashrc文件,添加CUDA目录。打开~/.bashrc文件(如果不存在的话建立该文件,文本编辑器按个人喜好,Ubuntu已自带Gedit,也可以用Vim),添加以下内容:

PATH=$PATH:/usr/local/cuda/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64

修改保存之后需要重新打开终端才能使修改生效,也可以执行source ~/.bashrc刷新环境变量。

4. 测试CUDA是否安装成功。进入CUDA Samples目录(如果之前没有安装在个人目录下,可以从/usr/local/cuda/samples拷贝过来),然后执行以下命令:

cd 1_Utilities/deviceQuery
make
./deviceQuery

如果终端输出的最后一行是“Pass”,说明CUDA可以正常使用,已经安装成功。


C/C++环境

Linux下常用的C语言编译/调试工具包括gcc+gdb或者clang+lldb两种。这里分别介绍两种环境的安装。

gcc/gdb环境

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8

clang/lldb环境

1. 添加LLVM源。在终端执行

wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -

或者在/etc/apt/sources.list文件中添加以下内容

deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-8 main
deb-src http://apt.llvm.org/trusty/ llvm-toolchain-trusty-8 main

2. 安装clang和lldb

sudo apt-get update
sudo apt-get install clang-8 lldb-8

C++环境的进一步配置和使用,可见下文VS Code配置部分。


Python环境

在安装Python之前,首先需要确定几个问题。

  • Python 2还是Python 3?
  • 具体采用Python的哪个版本?
  • 原生Python还是虚拟环境?

本文默认安装Python 3。截至到Ubuntu 18.04,系统内的默认Python版本仍然是2.7。现在Python 2已经不再接受更新,而且Ubuntu 20.04也会改用Python 3。所以我们自己搭建的环境最好也采用Python 3。

几个月前Python 3.8已经发布,加入了一些新功能(比如:=操作符)。但主流的开源库还没有对Python 3.8进行适配,所以本文会安装Python 3.7。

直接用apt把Python安装到系统目录使用起来固然方便,但也会存在一些隐患。比如假如我们已经配置好了Python 3.7环境,但某一天想跑一下别人的代码,但那份代码只支持Python 3.5,该怎么办?又比如另外一份代码只支持Python 2.7,我们是不是还需要为Python 2.7安装所有的工具包?如果系统里同时存在Python 2和Python 3的环境,在调用脚本时也容易忘记指定Python的版本,比如本应调用python3却调用了python。这些问题都可以用虚拟环境解决。

本文建议用Anaconda建立和维护Python虚拟环境。原因有两点:一是Anaconda有丰富的软件源,官方和个人提供了很多第三方库的软件包,安装方便;二是Anaconda也能安装非Python编写的包,比如用conda install cudatoolkit就可以安装CUDA。

安装Anaconda

在官网下载Anaconda安装包:https://www.anaconda.com/distribution/#linux,比如https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh。然后执行以下命令安装Anaconda:

chmod +x Anaconda3-2019.10-Linux-x86_64.sh
./Anaconda3-2019.10-Linux-x86_64.sh

安装过程中提示安装位置时,建议选择安装在个人目录下,比如~/anaconda3。在提示是否允许修改.bashrc文件时,建议输入“yes”。

修改conda源

修改为国内的conda源,以提高下载速度。打开~/.condarc文件(如果不存在的话建立该文件),修改文件内容如下:

channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

之前出现过清华的conda源不能使用的问题,如果再遇到这种情况,可以改用上交的源:

channels:
- https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main/
- https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true

修改pip源

同样地,出于网速原因,改用国内的pypi源。建议执行该步骤前关闭conda的虚拟环境,可在终端中执行两次conda deactivate以退回到系统自带的Python环境。执行以下命令:

sudo pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

创建虚拟环境

重新打开终端,正常情况下,在用户名前会显示“(base)”字样,说明已经进入conda的默认环境。如果没有该字样的话,可以执行conda init,以激活conda环境。然后用以下命令建立一个名为”torch”的Python 3.7环境:

conda create -n torch python=3.7

然后执行以下命令开启该环境:

conda activate torch

可以顺便把常用的库安装好:

sudo apt-get install python3-pip
pip install numpy scipy matplotlib pylint

PyTorch

我们在这一部分介绍在Anaconda虚拟环境下安装PyTorch 1.4.0的过程。可以用一行命令直接安装,也可以下载PyTorch的源码在本地编译安装。

安装官方包

确认开启conda的torch环境后,执行以下命令:

pip install torch torchvision

本地编译安装

1. 安装本地编译所需的依赖包

conda install numpy pyyaml mkl mkl-include setuptools cmake cffi
conda install magma-cuda100 -c pytorch

2. 安装Git和C++编译环境

sudo apt-get install git cmake build-essential

3. 下载PyTorch源码

git clone --recursive https://github.com/pytorch/pytorch

4. 编译PyTorch

cd pytorch
export CMAKE_PREFIX_PATH="/home/john/anaconda3/envs/torch"
python setup.py install

测试PyTorch

执行以下命令,打开Python交互模式

conda activate torch
python

然后测试PyTorch是否安装好

import torch
print(torch.cuda.is_available())

看输出结果是否为“True”。

也可以试一下简单的张量计算

a = torch.randn(1, 10).to(device)
b = torch.randn(10, 1).to(device)
c = a @ b
print(c.item())

TensorFlow

这里介绍两种TensorFlow安装方法,一是在虚拟环境下直接安装官方包,二是安装Docker版本,便于模型的部署。

安装官方包

1. 创建新的虚拟环境

conda create -n tf python=3.7
conda activate tf

2. 安装TensorFlow

conda install cudatoolkit=10.1
pip install tensorflow-gpu

安装Docker镜像

1. 安装nvidia-docker

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

2. 下载并运行TensorFlow镜像

docker run --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu

测试TensorFlow

在终端执行以下命令

python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"

OpenCV

OpenCV有多个语言的API,包括C/C++,Python,Java等。这里介绍Python与C++两个版本的安装。

Python版OpenCV

只需要执行以下命令即可

pip install opencv-python

C++版OpenCV

C++版本的OpenCV需要本地编译安装。这里以4.1.0版本为例,介绍编译过程。需要注意的是,不要在conda环境下编译OpenCV。

1. 下载OpenCV源码

分别下载主包源码、contrib源码和测试数据,下载地址如下:

2. 提前下载容易在编译过程中由于网络原因造成失败的文件:

然后重命名为7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat,存放在.cache/data目录下。

重命名为c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz,并存放在.cache/ippicv目录下。

3. 安装所需的依赖包

sudo apt-get install build-essential checkinstall cmake pkg-config yasm git gfortran software-properties-common
sudo apt-get install ffmpeg x264 v4l-utils
sudo apt-get install libjpeg8-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install libxine2-dev libv4l-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install libgtk2.0-dev libtbb-dev libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev libavresample-dev
sudo apt-get install libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

sudo pip3 install testresources

4. 开始编译并安装

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_IPP=ON -D WITH_OPENGL=ON -D WITH_CUDA=OFF \
    -D CMAKE_PREFIX_PATH=/home/john/Qt5.12.3/5.12.3/gcc_64/lib/cmake \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules \
    -D INSTALL_TESTS=ON -D OPENCV_TEST_DATA_PATH=/home/john/Downloads/opencv_extra-4.1.0/testdata \
    -D OPENCV_ENABLE_NONFREE=ON -D BUILD_DOCS=ON \
    ..

make -j4
sudo make install

5. 运行测试

make test

VS Code配置

我平时主要用Visual Studio Code开发,这里介绍基于VS Code的Python和C++开发环境配置。

安装VS Code

VS Code可以通过Snap安装:

sudo apt install snapd
sudo snap install --classic code

VS Code插件推荐

  • autoDocstring (njpwerner.autodocstring) – 自动产生设定格式的注释块,比如为Python或C++的函数和类定义产生适合Sphinx的注释块,便于生成文档;
  • Bracket Pair Colorizer (coenraads.bracket-pair-colorizer) – 匹配的括号、方括号、花括号等分别以不同颜色标记,便于辨识;
  • Chinese (Simplified) Language Pack for Visual Studio Code (ms-ceintl.vscode-language-pack-zh-hans) – 中文语言包;
  • CMake (twxs.cmake)  – 为CMake代码提供高亮;
  • Code Runner (formulahendry.code-runner) – 可以一键运行常见语言的代码文件。短小的代码使用方便,复杂一些的项目建议另外开终端运行(VS Code内部的终端也可能会出一些问题,最保守的还是系统本身的终端);
  • GitLens – Git supercharged (eamodio.gitlens) – Git管理,可以查看分支、提交历史、文件历史,在编辑窗口里还会显示当前行最后一次修改提交的时间和作者;
  • indent-switcher (ephoton.indent-switcher) – 可以一键切换不同风格的缩进(比如2空格切换为4空格),有效缓解程序员之间的仇恨^o^
  • markdownlint (davidanson.vscode-markdownlint) – 为Markdown脚本提供高亮;
  • Partial Diff (ryu1kn.partial-diff) – 可以比较两份代码的异同,支持两个文件之间的比较,也支持两段代码之间的比较(选项在右键菜单里);
  • Path Intellisense (christian-kohler.path-intellisense) – 在代码中可以识别输入的路径字符串,并给出上下文建议;
  • Settings Sync (shan.code-settings-sync) – 可以把对VS Code的各项设置和所下载的插件备份在私人Gist上,便于跨平台开发环境的快速配置;
  • Visual Studio IntelliCode (visualstudioexptteam.vscodeintellicode) – 微软官方出品的代码自动补全插件。

Python开发配置

只要安装好Python (ms-python.python)插件和pylint(用pip安装)就可以开始Python开发了。

为了让VS Code能够识别安装在conda环境下的包,需要为settings.json添加以下内容:

{
    "python.pythonPath": "/home/john/.conda/envs/torch/bin/python"
}

C++开发配置

其实安装好C/C++ (ms-vscode.cpptools)和CMake插件之后,在图形界面点击几次就可以成功编译并运行C++代码。这里还是给出完整的基于clang+CMake+Boost.Test的C++环境配置。

1. (可选)安装Boost

Boost用于单元测试,执行以下命令编译并安装Boost 1.70.0:

wget -O boost_1_70_0.tar.gz https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz
tar xzvf boost_1_70_0.tar.gz
cd boost_1_70_0/

sudo apt-get update
sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev

./bootstrap.sh --prefix=/usr/
./b2
sudo ./b2 install

2. 项目结构

假设项目结构如下:

该项目结构比较简单,但很适合于LeetCode等刷题用。这里暂不给出C++的代码,只给出和环境配置相关的文件内容。

3. .vscode/c_cpp_properties.json文件

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/clang++-8",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

4. .vscode/launch.json文件,这里同时设置了gdb和lldb的调试脚本

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/test_main",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
        {
            "name": "(lldb) Launch",
            "type": "lldb",
            "request": "launch",
            "program": "${workspaceFolder}/build/test_main",
            "args": []
        }
    ]
}

5. .vscode/tasks.json文件

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "clean",
            "type": "shell",
            "command": "rm -r build/*"
        },
        {
            "label": "configure",
            "type": "shell",
            "command": "cmake",
            "args": [
                "--no-warn-unused-cli",
                "-DCMAKE_C_COMPILER=/usr/bin/clang-8",
                "-DCMAKE_CXX_COMPILER=/usr/bin/clang++-8",
                "-DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE",
                "-DCMAKE_BUILD_TYPE=Debug",
                "-H${workspaceFolder}",
                "-B${workspaceFolder}/build",
                "-G'Unix Makefiles'"
            ]
        }
    ]
}

6. CMakeLists.txt文件

cmake_minimum_required (VERSION 3.5)
project(cpp)

set(PROBLEM_NAME "src")

set(CMAKE_CXX_STANDARD 14)

set(SOLUTION_SOURCES ${PROJECT_SOURCE_DIR}/${PROBLEM_NAME}/solution.cpp)
set(SOURCES ${SOLUTION_SOURCES})

add_library(solution STATIC ${SOLUTION_SOURCES})

enable_testing()

find_package(Boost REQUIRED COMPONENTS unit_test_framework)

set(TEST_SOURCES ${PROJECT_SOURCE_DIR}/${PROBLEM_NAME}/solution_test.cpp)
set(TEST_LIBS solution)

add_library(boost_unit_test_framework STATIC IMPORTED)
set_target_properties(boost_unit_test_framework PROPERTIES
    IMPORTED_LOCATION /usr/lib/libboost_unit_test_framework.a)

add_executable(test_main ${TEST_SOURCES})
target_link_libraries(test_main ${TEST_LIBS} boost_unit_test_framework)
add_test(solution_test test_main COMMAND test_main)

7. 编译、调试和测试

按快捷键Ctrl+Shift+P,然后输入并执行“CMake: Configure”,配置CMake项目。

执行“CMake: Build”可以编译C++代码。

执行“CMake: Run tests”可以执行单元测试,测试结果显示在VS Code最下方的状态栏,比如“1/1 test passing”。

点击左侧的“运行和调试”,或者按快捷键Ctrl+Shift+D,就可以选择“(gdb) Launch”或“(lldb) Launch”进行调试。


其他有用的工具

常用软件

  • Chrome浏览器:
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub  | sudo apt-key add -
sudo apt-get update
sudo apt-get install google-chrome-stable
  • nvtop,用于在终端中显示显卡的使用情况:
sudo apt install cmake libncurses5-dev libncursesw5-dev git

cd ~/Downloads

git clone https://github.com/Syllo/nvtop.git
mkdir -p nvtop/build && cd nvtop/build
cmake ..

make
sudo make install

如果出现“Could NOT find NVML (missing: NVML_INCLUDE_DIRS)”的错误,可以先执行:

cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True

再执行make命令。

  • 网易云音乐:

从官网下载安装包http://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb。安装好之后可能会出现点击图标但无法启动的问题。可以修改图标的调用参数(图标文件位于/usr/share/applications)为:

sh -c "unset SESSION_MANAGER && netease-cloud-music %U"
  • TexStudio以及可能会用到的中文包:
sudo add-apt-repository ppa:sunderme/texstudio
sudo apt-get install texstudio

sudo apt-get install texlive-xetex texlive-bibtex-extra biber texlive-lang-chinese texlive-fonts-extra cjk-latex latex-cjk-chinese xfonts-wqy fonts-wqy-microhei fonts-wqy-zenhei latexmk ttf-mscorefonts-installer
  • Typora:
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -

sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
sudo apt-get install typora

其他工具和脚本

  • 把“文档”,“下载”等目录换为英文:
export LANG=en_US
xdg-user-dirs-gtk-update
export LANG=zh_CN

执行完第二行时会弹出窗口,选择替换。执行完第三行,重启,会弹出窗口询问是否切换语言,此时不替换即可。

  • GPU监控脚本:

在主目录下建立gpu.sh文件,内容为

watch -n 0.5 nvidia-smi

然后执行一次

chmod a+x ~/gpu.sh

之后,新建一个终端执行

./gpu.sh

就可以每隔0.5秒更新一次GPU使用状态。

  • 用system-monitor在顶部标题栏显示系统资源状态:

首先安装依赖包,在终端执行

sudo apt-get install chrome-gnome-shell
sudo apt-get install gir1.2-gtop-2.0 gir1.2-networkmanager-1.0  gir1.2-clutter-1.0

然后用Chrome浏览器登录该网址https://extensions.gnome.org/extension/120/system-monitor,安装system-monitor。


本文涉及的所有脚本都在我的GitHub上:https://github.com/johnhany/ubuntu_setup

其中VS Code的C++环境配置可以参考我的另一个repo:https://github.com/johnhany/leetcode

3

avatar
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
Recent comment authors
  Subscribe  
最新 最旧
订阅评论
trackback

[…] 《Ubuntu计算机视觉开发环境配置(Python/C++)》 , 《Manjaro计算机视觉开发环境配置(Python/C++)》 […]

trackback

[…] PyTorch环境配置方法可以参考这两篇文章:《Ubuntu计算机视觉开发环境配置(Python/C++)》,《Manjaro计算机视觉开发环境配置(Python/C++)》。 […]

trackback

[…] 18.04系统上配置计算机视觉开发环境的过程:《Ubuntu计算机视觉开发环境配置(Python/C++)》。在这篇文章中,我会介绍在Manjaro 19.0系统上配置Python, […]