Ubuntu安装后要装的开发软件

安装codeblocks

1
sudo add-apt-repository ppa:damien-moore/codeblocks-stable

输入密码后,会提示你敲【Enter】继续,然后如果一切OK的话,就会安装好这个ppa源。
继续敲:

1
sudo apt-get update

对源进行更新,这个过程会下载一些东西,请保持网络畅通。最后,开始安装:

1
sudo apt-get install codeblocks

OK了,只要网络不出问题,就大功告成,CodeBlocks就会顺利安装完成!
剩下要做的就是把快捷方式拽到启动器上方便打开就行了。

安装matlab2017a

本次安装过程很大程度上参考了Ubuntu 16.04 LTS下安装MATLABR2016b的内容,但是由于Matlab 2017a破解相关的处理存在不同,且在安装过程中,遇到了一些不加注意就会出问题之处,特新发一篇安装指南,为有需要的朋友省点时间。

Matlab 2017a的安装文件,我是在六维空间中下载的资源,大概有10个G,可以说比之前的版本都要大。安装文件由三个部分组成,分别为两个ISO镜像和一个用于破解的压缩包,如下图所示。

安装文件准备完毕后,首先解压用于破解的rar压缩文件。在Linux底下解压rar文件需要首先安装相应的解压缩工具。

1
sudo apt-get install rar

工具安装后,键入

1
sudo rar x *.rar

即可进行解压(用x参数可以保持压缩文件内的目录结构,若有e参数,虽然可以解压,但会损失目录结构,所有的文件都会被直接解压到当前目录下)。

破解包解压完毕后,就可以开始具体安装了。在Windows环境下,用虚拟光驱便可把上述的iso文件进行挂载后访问,在Ubuntu下,相应的操作更为简单。

和Windows环境下类似,我们首先需要挂载*dvd1.iso文件,在*dvd1.iso安装结束后会提示用户更换光盘,此时再挂载*dvd12.iso即可。具体过程如下。

挂载*dvd1.iso

1
2
mkdir /home/<user name>/Matlab  
sudo mount -t auto -o loop *dvd1.iso所在的绝对路径 /home/<user name>/Matlab

mkdir语句创建了一个临时文件夹,用于挂载*dvd1.iso以及稍后用到的*dvd2.iso安装镜像。该临时文件夹可以根据需要自由创建,因为安装完成后就没有了,可以用rm命令删除掉。<user name>看当时的具体用户名称,做相应替换即可。特此说明,安装过程中我用的全部都是绝对路径,故该教程中的相关命令也全部采用绝对路径的表述方式。mount语句进行了*dvd1.iso的挂载,该命令结束后,就会弹出相应的文件框。

安装开始

1
sudo /home/<user name>/Matlab/install

注意,运行该命令的时候,终端不能处在/home/<user name>/Matlab目录底下,否则安装过程会被终止。

安装初始,会要求用户提供license number,选择离线验证,复制破解包解压后出现的readme.txt文件中的第一个安装密钥(09806开头)即可:

挂载*dvd2.iso

在安装过程进行到75%时(不同的机器和Matlab版本可能会略有不同),安装界面会弹出提示,要求插入*dvd2.iso,此时,我们重新打开一个终端,一定要重新打开一个终端!键入如下命令(同*dvd1.iso的挂载命令类似):

1
sudo mount -t auto -o loop *dvd2.iso所在的绝对路径 /home/<user name>/Matlab

挂载完毕后,回到Matlab的安装界面,点击继续即可,直到安装完毕即可。

结束安装

待安装完毕后,关闭安装界面,将用于挂载的文件夹取消挂载。

1
sudo umount /home/<user name>/Matlab

在实际操作过程中,上述命令运行了两次才得以删除该目录,想了一下,可能因为挂载了两次镜像吧。
成功解挂后,便可以删除这个文件夹了copy

1
sudo rm -r /home/<user name>/Matlab

破解过程

安装完成退出后,先不要急着打开Matlab,在完成如下的激活操作后,再打开。

1
2
3
sudo mkdir /usr/local/MATLAB/R2017a/bin/licenses/ 
sudo cp license_standalone.lic所在的目录 /usr/local/MATLAB/R2017a/bin/licenses/
sudo cp libmwservices.so所在的目录 /usr/local/MATLAB/R2017a/bin/glnxa64/

/usr/local/MATLAB/Matlab默认的安装目录,用户可以在安装过程中指定安装的地点。破解包解压后,可得license_standalone.lic和libmwservices.so(libmwservices.so在R2017a目录内),如下图所示。

启动matlab

1
sudo /usr/local/MATLAB/R2017a/bin/matlab

第一次启动,我所下载的镜像仍会需要用户提供秘药文件,也就是上一步所说的license_standalone.lic文件,选择该文件进行激活即可。以后再打开Matlab就可以正常使用了。
如果觉得每次启动都要输这么一串命令很麻烦,用户可以更改~/.bashrc文件,添加永久别名,具体做法此处不再赘述。

1
alias matlab='sudo /usr/local/MATLAB/R2017a/bin/matlab'

我设置的永久别名的名称为Matlab2017a,所以每次只要输前几个字母,再按Tab键自动补齐就可以了。



设置快捷键与windows下相同

打开matlab --> file --> preferences --> Keyboard --> Shortcuts --> Keyboard Shortcuts Preferences --> Active settings: 默认的是Emacs Default set, 点击右边向下的箭头,选择 Windows Default Set 然后save as 点Ok,就可以了。

修复使用中文的问题

找到/usr/local/MATLAB/R2017a/bin/matlab,在第一行下面添加

1
2
export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE="fcitx"

安装matlab的MatConvNet

MatConvNet是一个实现卷积神经网络(CNN)的MATLAB工具箱,用于计算机视觉应用。 用这个工具箱,能很方便地在MATLAB中用GPU来进行训练。

要求

足够新的MATLAB版本(R2015b或更高版本)和一个支持C ++ 11的编译器(Visual Studio 2015,GCC 4.8,Xcode 7.3.1或更高版本)。 对于GPU计算,至少需要CUDA 7.5以及CuDNN v4(可选)或更新版本。

本次安装在如下实验环境中通过。

环境:

  • MATLAB2018a
  • ubuntu 16.04
  • gcc 5.5.0
  • matconvnet-1.0-beta25

下载工具箱

首先下载MatConvNet,并解压到你希望的文件夹,暂且称这个文件夹为

CPU版本的安装

打开MATLAB,在命令行输入

1
2
mex -setup 
mex -setup C++

会提示如下信息,姑且先不管

1
2
3
4
5
6
7
>> mex -setup C++
MEX configured to use 'g++' for C++ language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. You will be required
to update your code to utilize the new API.
You can find more information about this at:
https://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

打开MATLAB,cd到你解压的那个matconvnet目录,输入下面3行

1
2
cd /home/zdkit/software/matconvnet-1.0-beta25/matlab
vl_compilenn

等待安装完毕即可。

在MATLAB命令行输入如下命令可以测试

1
vl_testnn

安装GPU版本

Matalb与cuda对应关系如下:

| MATLAB | CUDA toolkit |
| | |
| R2018a | 9.0 |
| R2017a | 8.0 |
| R2016b | 7.5 |
|R2016a | 7.5 |
| R2015b | 7.0 |

你要是不知道该用哪个版本CUDA,输入下面命令,有人会告诉你:

1
gpuDevice

打开MATLAB,在命令行输入

1
2
mex -setup 
mex -setup C++

会提示如下信息,姑且先不管

1
2
3
4
5
6
7
>> mex -setup C++
MEX configured to use 'g++' for C++ language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. You will be required
to update your code to utilize the new API.
You can find more information about this at:
https://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

打开MATLAB,cd到你解压的那个matconvnet目录,输入下面3行

1
cd /home/zdkit/software/matconvnet-1.0-beta25/matlab

接下来,假设你只有唯一的CUDA且匹配你的MATLAB版本
直接运行如下命令

1
vl_compilenn('enableGpu', true)

如果你有很多CUDA,可以通过下面命令选择一个

1
vl_compilenn('enableGpu', true, 'cudaRoot', 'yourpath/NVIDIA/CUDA-n.0')

等待安装完毕即可。

在MATLAB命令行输入如下命令可以测试

1
vl_testnn('gpu', true)

下面的错误还没解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Failure Summary:

Name Failed Incomplete Reason(s)
=====================================================================================================================
nnmnist[dataType=single,device=cpu]/valErrorRate(networkType=simplenn) X X Errored.

nnmnist[dataType=single,device=gpu]/valErrorRate(networkType=dagnn) X Failed by verification.


result =

1×3586 TestResult array with properties:

Name
Passed
Failed
Incomplete
Duration
Details

Totals:
3583 Passed, 3 Failed (rerun), 1 Incomplete.
1454.2578 seconds testing time.

cudnn暂时没有安装。

然后,输入以下指令,否则会出现Undefined function or variable 'vl_simplenn'.

1
2
cd /home/zdkit/software/matconvnet-1.0-beta25
run matlab/vl_setupnn

安装最新版nodejs

下面方法会报错,现在使用这种安装方法

1
2
curl -sL http://nsolid-deb.nodesource.com/nsolid_setup_3.x | sudo bash -
sudo apt-get -y install nsolid-dubnium nsolid-console

更新ubuntu软件源

1
2
3
4
sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update

安装nodejs

1
2
3
sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm

更新npm的包镜像源,方便快速下载

1
2
sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list

全局安装n管理器(用于管理nodejs版本)

1
sudo npm install n -g

安装最新的nodejs(stable版本)

1
2
sudo n stable
sudo node -v

Q: apt-get update找不到文件

1
2
3
4
5
6
7
8
9
10
// error code
W: The repository 'http://ppa.launchpad.net/chris-lea/node.js/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch http://ppa.launchpad.net/chris-lea/node.js/ubuntu/dists/xenial/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

// A: 修改node相关文件:/etc/apt/sources.list.d/chris-lea-ubuntu-node_js-xenial.list
deb http://ppa.launchpad.net/chris-lea/node.js/ubuntu trusty main
deb-src http://ppa.launchpad.net/chris-lea/node.js/ubuntu trusty main

Q: node -v异常

1
2
3
4
5
6
7
8
9
10
11
node -v
-bash: /usr/local/bin/node: Permission denied

sudo node -v
Segmentation fault (core dumped)

// A: 重新安装nodejs
手动移除 /usr/local/lib/node_modules整个目录
手动移除 /usr/local/bin/node
手动移除 /usr/local/bin/n
手动移除 /usr/local/bin/npm

安装vscode

  • 设置workbench.editor.enablePreview参数为false. 否则跳转插件会出现ctrl+click always opens files in the same (second) tab
  • 设置"files.autoGuessEncoding": true,可以使得每次vscode根据猜测编码打开文件。
  • 设置"extensions.ignoreRecommendations": true,不让插件提示
  • 设置"editor.mouseWheelZoom": true,滚轮可以调节字体大小

一般来说,ANSI = Windows 1252 = CP 1252 = Windows code page 1252 = Windows Latin-1。但是在Vscode中使用windows 1252的bat文件还是会乱码,因此最好使用记事本编辑或者记事本另存为ANSI编码

在终端打开Vscode,直接输入code指令

常用插件

markdown patse,可以从浏览器截图等下载图片,放到与md文件相同的路径。使用的时候,复制图片,按住ctrl+alt+v即可。打开Vscode设置->扩展,将pasteImage.path更改为./${currentFileNameWithoutExt},保存图片到以markdown文件同名的路径。windows下的为知笔记热键与该热键冲突了,更改为知笔记的热键即可。

在win10下可能需要将powershell的路径C:\Windows\System32\WindowsPowerShell\v1.0添加到系统环境变量Path中,打开cmd,输入set PATH=C:使得变量生效。

Settings Sync,同步设置与插件

更改语言

安装或者升级完后,打开进入软件,如果发现是英文版本,不要急。首先按F1快捷键或者Ctrl + Shift + P,切入到命令行模式。输入Configure Language(如果是中文版要切换到英文版输入“配置语言”)。
只需要将上面的”en”改为“zh-CN”即可,注意大小写。
关闭vscode再次打开。若不行,安装Chinese插件

用户设置与工作空间设置

VS Code提供了两种设置方式:

  • 用户设置:这种方式进行的设置,会应用于该用户打开的所有工程;
  • 工作空间设置:工作空间是指使用VS Code打开的某个文件夹,在该文件夹下会创建一个名为.vscode的隐藏文件夹,里面包含着仅适用于当前目录的VS Code的设置。工作空间的设置会覆盖用户的设置。

每个人都有自己的偏好,在使用VS Code进行开发时,都会根据自己的习惯来对VS Code进行用户级别的配置。

但是,当多人共同完成某个项目的时候,该项目会有一定的编码规范,如: 编辑某个语言时的设置,代码的缩进等等,这个时候就需要对该项目进行单独的工作空间级别的设置。

更改默认用户设置与工作空间设置

VS Code的设置文件为setting.json

用户设置的文件保存在如下目录:

  • Window %APPDATA%\Code\User\settings.json
  • Mac $HOME/Library/Application Support/Code/User/settings.json
  • Linux $HOME/.config/Code/User/settings.json

工作空间设置的文件保存在当前目录的.vscode文件夹下。

三种方式更改默认的设置:

  • 使用编辑器直接打开setting.json文件;
  • 点击 VS Code 的 文件 > 首选项 > 设置 ,可以打开设置面板;
  • 在 VS Code 中使用 Ctrl+Shift+P打开命令面板,输入Preferences: Open User SettingsPreferences: Open Workspace Settings

更改工作空间设置

对某个语言进行特定配置

可以对某个语言进行专门的设定。在 VS Code 中使用 Ctrl+Shift+P打开命令面板,输入Preferences: Configure language specific settings…,然后选择相应的语言进行设置。

也可以直接对setting.json进行编辑。如下:

1
2
3
4
5
6
7
8
9
10
11
12
{
"[typescript]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": true
},
"[markdown]": {
"editor.formatOnSave": true,
"editor.wordWrap": "on",
"editor.renderWhitespace": "all",
"editor.acceptSuggestionOnEnter": "off"
}
}

Python运行相对路径问题

例如,当使用Vscode打开的文件夹pygcn,此时Vscode的工作目录为pygcn,该目录下的文件分布如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.
├── data
│ └── cora
│ ├── cora.cites
│ ├── cora.content
│ └── README
├── figure.png
├── LICENCE
├── pygcn
│ ├── __init__.py
│ ├── layers.py
│ ├── models.py
│ ├── __pycache__
│ │ ├── layers.cpython-36.pyc
│ │ ├── models.cpython-36.pyc
│ │ └── utils.cpython-36.pyc
│ ├── train.py
│ └── utils.py
├── README.md
└── setup.py

当运行pygcn/train.py时,需要用的data/cora/cora.content,此时读取该文件的代码为path="../data/cora/"。但是在windows下运行该py文件时,找不到该数据,所以相对路径出了问题。

解决方法1:(推荐):

首先,使用vscode打开pygcn/train.py文件,点击调试->打开配置,在打开的launch.json文件增加"cwd":"",加完之后,在我的电脑下该文件整体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: 当前文件",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd":""
}
]
}

解决方法二:
更改代码,将path="../data/cora/"改为path=os.path.join(sys.path[0],"../data/cora/"),先获取py文件所在目录,然后合成数据集所在的目录。

Python参数调试

如何在Vscode中进行Python脚本带参数调试呢?使用vscode打开train.py文件,点击调试->打开配置,在打开的launch.json文件增加如下内容:

1
2
3
4
5
"args":[
"--exp_name","omniglot_N5_S1_v2","--dataset","omniglot","--test_N_way", "5",
"--train_N_way","5","--train_N_shots","1","--test_N_shots","1","--batch_size","300",
"--dec_lr=10000","--iterations","100000"
],

此时对应的命令为:

1
python3 main.py --exp_name omniglot_N5_S1_v2 --dataset omniglot --test_N_way 5 --train_N_way 5 --train_N_shots 1 --test_N_shots 1 --batch_size 300  --dec_lr=10000  --iterations 100000

设置目录树缩进

默认的目录树缩进较小,打开文件夹的时候,层级目录不是很清晰。在VSCode setting中搜索tree,将tree:indent改为16。如下图所示:

pylint找不到Pytorch

Win10 中使用Anaconda安装完pytorch后,在VSCode中输入代码时发现,对于很多需要用到的torch里的函数,VSCode均会报错。

1
‘torch’ has no member ‘xxx’

经过搜索资料,找到了解决办法。

VSCode setting中搜索python.linting.pylintPath
并且修改值为(你的Anaconda安装路径)\pkgs\pylint-1.8.4-py36_0\Scripts\pylint,修改完后就不会再报错了。

如下图:

xshell

实际上这个软件是Windows下的软件,但是不知道放哪个地方合适,就放在这里了。

现在的xshell竟然也支持传输文件了,真的是舒服得很。觉得也是,之前没有发现sftp和ssh都是22端口,一直觉得传输文件和传输指令需要两个端口。现在厉害了。

xshell日常使用没有什么问题,要解决的是,小写键盘不能使用的问题。解决方法:

  • 打开xshell,点击“文件->属性”,打开对话框
  • 在类别中选择“VT模式”,然后在右侧的选项中,选择:初始数字键盘模式中的“设置为普通”
  • 点击“确定”

然后关闭xshell,之后重新打开xshell,再使用xshell时就会发现数字小键盘可以正常输入数字了。其他乱码问题可以参考:Xshell 为什么会出现中文乱码?

安装Terminator

Terminator最大的特点就是可以在一个窗口中打开多个终端

1
sudo apt-get install terminator

快捷键

1
2
3
4
5
6
7
8
Ctrl+Shift+E    垂直分割窗口
Ctrl+Shift+O 水平分割窗口
F11 全屏
Ctrl+Shift+C 复制
Ctrl+Shift+V 粘贴
Ctrl+Shift+N 或者 Ctrl+Tab 在分割的各窗口之间切换
Ctrl+Shift+X 将分割的某一个窗口放大至全屏使用
Ctrl+Shift+Z 从放大至全屏的某一窗口回到多窗格界面

优化配置

初始界面不太美观,修改配置文件

1
2
mkdir ~/.config/terminator
vim ~/.config/terminator/config

写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[global_config]
geometry_hinting = False
handle_size = 1
inactive_color_offset = 1.0
title_font = mry_KacstQurn Bold 11
title_hide_sizetext = True
[keybindings]
[layouts]
[[default]]
[[[child1]]]
parent = window0
profile = default
type = Terminal
[[[window0]]]
parent = ""
type = Window
[plugins]
[profiles]
[[default]]
background_darkness = 0.76
background_image = None
background_type = transparent
cursor_color = "#3036ec"
custom_command = tmux
font = Ubuntu Mono 13
foreground_color = "#ffffff"
login_shell = True
show_titlebar = False
use_system_font = False

在文件管理器添加右键打开Terminator按钮:

1
2
3
4
5
6
7
8
9
# 对于Ubuntu 16.04以及之前的版本
sudo apt install nautilus-actions
nautilus-actions-config-tool

# 对于Ubuntu 18.04
sudo add-apt-repository ppa:daniel-marynicz/filemanager-actions
sudo apt update
sudo apt install filemanager-actions-nautilus-extension
# 安装完成就可以在启动程序界面找到`FileManager Actions`

如下图所示,在Action标签Context label填入Open in Terminator,并将上面两个选项打上勾。

enter image description here

打开Command标签,填入要执行的语句,如下图所示。Path指定为/usr/bin/terminator,Parameters指定为--working-directory=%d/%b

enter image description here

若不想Open in Terminator在子按钮中,打开nautilus-actions-config-tool -> Edit -> Preferences > Disable "Create a root 'Nautilus-Actions' menu"

1569385596758

最后,使用sudo nautilus -q重启文件管理器即可。(若对于Ubuntu 18.04以及之后的版本,需要重启才能生效)。

参考

VS Code使用之基本设置与配置详解
MATLAB深度学习工具MatConvNet安装
matconvnet官方安装教程
vscode中使用python相对路径问题?
vscode开发python,读取相对路径文件失败的问题
VSCode中pytorch出现’torch’ has no member ‘xxx’的错误
VS code 目录树如何设置?
visual studio code之python带参数调试
xshell中数字小键盘不能使用怎么办?
Ubuntu终端多窗口分屏Terminator
Setting nautilus-open-terminal to launch Terminator rather than gnome-terminal
ubuntu18.04安装和设置深度终端)
ubuntu16.04下matlab2016b无法使用搜狗输入法输入中文

------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道