Docker安装与卸载
总结: 从官网看文档安装最好 https://docs.docker.com/engine/install/ubuntu/
卸载旧版本 1 sudo apt-get remove docker docker-engine docker.io containerd runc
设置仓库 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ sudo apt-get update $ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
![[img/image-20220623131117.png]]
安装Docker引擎并测试 1 2 3 4 $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ sudo docker run hello-world
卸载 1 $ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
Images, containers, volumes, or customized configuration files on your host are not automatically removed. To delete all images, containers, and volumes:
1 2 $ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
You must delete any edited configuration files manually.
HBuilder连接夜神模拟器 基础连接 设置
1 nox_adb connect 127.0.0.1:62001
由于目标计算机积极拒绝,无法连接 原因:
adb和nox_adb的版本不一致
进入进Android SDK下的platform-tools目录
将adb.exe拷贝至夜神bin目录下,粘贴两个,一个改成nox_adb.exe,把原来的nox_adb.exe删掉。
配置环境变量, 将夜神模拟器的bin目录添加到path目录下面
V:\IDE\Android-SDK\android-sdk-windows\platform-tools 添加到path目录下面
npm和node安装 Node.js是一个JavaScript运行环境(runtime environment),不是一个js文件,实质是对Chrome V8引擎进行了封装。Node是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、等服务端语言平起平坐的脚本语言。
[1]Node.js提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。
[2]Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。
chrome浏览器和Node.js在解析javascript都使用了v8引擎:
node内置了npm
1 安装 1 2 3 4 5 6 7 8 9 cd /opt; wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz tar -xvf node-v16.14.0-linux-x64.tar.xz ln -s /opt/node-v16.14.0-linux-x64/bin/npm /usr/bin/ ln -s /opt/node-v16.14.0-linux-x64/bin/node /usr/bin/ ln -s /opt/node-v16.14.0-linux-x64/bin/npx /usr/bin/
![[../../DevOps/Nginx/Nginx-解决方案/assets/image-20220505183225.png]]
2 查看config配置并设置全局路径 1 2 3 4 npm config ls npm config set prefix '/home/data/nodejs/node_global' npm config set cache '/home/data/nodejs/node_cache'
3 修改镜像 1 2 3 4 5 6 7 8 # 升级 npm install -g npm@8.5.4 # npm 修改为国内镜像地址 npm config set registry https://registry.npm.taobao.org/
4 配置后可通过下面方式来验证是否成功 1 2 3 npm config get registry 或者 npm info express
5 环境变量ENV 1 2 3 4 5 6 /home/data/nodejs/node_global/bin export NODE_GLOBAL=/home/data/nodejs/node_globalexport PATH=${NODE_GLOBAL} /bin:${PATH} source /etc/profile
Python 第三方库相关 pip 使用清华源安装 临时 1 pip install ** -i <https://pypi.yuna.tsinghua.edu.en/simple>
永久 1 2 pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
永久的设置会在路径C:\Users\Administrator\AppData\Roaming\pip中创建文件pip.ini
内容为:
1 2 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
因此我们可以在这个目录中创建文件并写入文本
在使用清华源进行下载的软件包的时候可能会遇到如下问题: Could not fetch URL https://pypi.tuna.tsinghua.edu.cn/simple/asgiref/ : There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=’pypi.tuna.tsinghua.edu.cn’, port=443): Max retries ex ceeded with url: /simple/asgiref/ (Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”)) - skipping 出现这种问题是因为证书不安全,如下解决方法:
增加–trusted-host pypi.douban.com
1 pip install xxx --trusted-host pypi.tuna.tsinghua.edu.cn
软件包下载问题 如果直接pip下载慢的话,直接登录所在的软件包管理网站,在目录中查找想要的whl文件,然后使用迅雷新建下载任务,然后下载。
软件包网站:
https://www.lfd.uci.edu/~gohlke/pythonlibs/
https://pypi.org/project/
比如我要找ruamel.yaml.clib==0.2.4可以直接在页面中搜索ruamel.yaml.clib
Vim-Plugin 起初是想实现 vim的自动补全功能的, 但是无意间发现了这个管理vim中插件的方法
vim https://github.com/vim/vim.git vim插件管理软件 vim-plug https://github.com/junegunn/vim-plug 下载完管理插件的之后 从这里下载插件 https://vimawesome.com/
Vim8.1 的安装 卸载旧版本Vim8.0
查看所有与 vim 有关的包
dpkg -l | grep vim
1 2 3 4 5 6 ➜ ~ dpkg -l | grep vim ii vim 2:8.0.1453-1ubuntu1.8 amd64 Vi IMproved - enhanced vi editor ii vim-common 2:8.0.1453-1ubuntu1.8 all Vi IMproved - Common files rc vim-nox 2:8.0.1453-1ubuntu1.8 amd64 Vi IMproved - enhanced vi editor - with scripting languages support ii vim-runtime 2:8.0.1453-1ubuntu1.8 all Vi IMproved - Runtime files rc vim-tiny 2:8.0.1453-1ubuntu1.8 amd64 Vi IMproved - enhanced vi editor - compact version
删除所有的相关包
sudo apt-get remove vim vim-runtime vim-common
安装vim8.1 1 2 3 4 5 6 7 8 9 git clone https://github.com/vim/vim.git cd vim./configure sudo makesudo make install
vim-plug的安装
简单翻译一下这个repo的readme.md
安装 下载 plug.vim 到vim目录, 我的是/usr/share/vim/vim80/autoload, 直接从github的plug.vim 中复制然后编辑文件也可以.
如果没有这个文件夹, 就从用户文件夹中创建.vimrc/autoload 在这个文件夹中进行操作
使用 在~/.vimrc中添加vim插件的片段
例子如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 call plug#begin() Plug 'junegunn/vim-easy-align' Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' Plug 'rdnetto/YCM-Generator' , { 'branch' : 'stable' } Plug 'nsf/gocode' , { 'tag' : 'v.20150303' , 'rtp' : 'vim' } Plug 'junegunn/fzf' , { 'dir' : '~/.fzf' , 'do' : './install --all' } Plug '~/my-prototype-plugin' call plug#end()
举例 – 安装 Nerd Tree 插件 打开 https://vimawesome.com/plugin/nerdtree-red
在 .vimrc 中加入 Plug 'scrooloose/nerdtree'
然后在vim编辑器中运行命令
:source %:PlugInstall
如图
输入PlugInstall命令之后显示, 成功
在/vimrc 中添加 autocmd VimEnter * NERDTree 设置自启动
卸载插件 先删除vimrc 中的Plug命令, 再在vim中执行命令 :PlugClean
VsCode-C环境 1 https://zhuanlan.zhihu.com/p/87864677
安装MinGW编译器 方法一:下载安装器在线安装 可以在MinGW官网地址下载 ,也可以直接下载:MinGW直接下载
下载参数如下:
确保路径中不包含空格 和中文 字符
安装成功即可
但是我在安装的时候安装失败了(科学上网也不行),报错如下,因此尝试离线安装
方法二:离线安装 直接在官网下载离线安装包,或者点击直接下载
下载完之后直接解压到文件夹即可。
然后将 {安装路径}\mingw64\bin添加到环境变量
检测:
cmd中输入gcc -v出现下列文字说明配置正确。
VsCode安装C++扩展 从插件列表中下载C/C++扩展
先编写测试代码
发现需要配置运行环境
下面我们开始配置运行环境
方法3(2024.4.22更新) 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 { "version" : "2.0.0" , "tasks" : [ { "label" : "echo" , "type" : "shell" , "command" : "g++" , "args" : [ "-g" , "${file}" , "-o" , "${fileBasenameNoExtension}.exe" , "-fexec-charset=GBK" ] } ] , "presentation" : { "echo" : true , "reveal" : "always" , "focus" : false , "panel" : "shared" , "showReuseMessage" : true , "clear" : false } }
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 30 31 32 33 34 35 36 37 38 39 40 41 { "configurations" : [ { "name" : "Win32" , "includePath" : [ "${workspaceRoot}" , ] , "defines" : [ "_DEBUG" , "UNICODE" , "__GNUC__=6" , "__cdecl=__attribute__((__cdecl__))" ] , "intelliSenseMode" : "msvc-x64" , "browse" : { "limitSymbolsToIncludedHeaders" : true , "databaseFilename" : "" , "path" : [ "${workspaceRoot}" , ] } } ] , "version" : 4 }
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 { "version" : "0.2.0" , "configurations" : [ { "name" : "(Windows) Launch" , "type" : "cppvsdbg" , "request" : "launch" , "program" : "cmd" , "preLaunchTask" : "echo" , "args" : [ "/C" , "${fileDirname}\\${fileBasenameNoExtension}.exe" , "&" , "echo." , ] , "stopAtEntry" : false , "cwd" : "${workspaceFolder}" , "environment" : [ ] , "externalConsole" : true } , { "name" : "(gdb) Launch" , "type" : "cppdbg" , "request" : "launch" , "program" : "${workspaceFolder}/${fileBasenameNoExtension}.exe" , "args" : [ ] , "stopAtEntry" : false , "cwd" : "${workspaceFolder}" , "environment" : [ ] , "externalConsole" : true , "MIMode" : "gdb" , "miDebuggerPath" : "F:\\env\\mingw\\bin\\g++.exe" , "preLaunchTask" : "echo" , "setupCommands" : [ { "description" : "Enable pretty-printing for gdb" , "text" : "-enable-pretty-printing" , "ignoreFailures" : true } ] } ] }
方法2【新版】 在文件夹下创建.vscode文件夹,然后创建3个文件。
c_cpp_properties.json
launch.json
tasks.json
c_cpp_properties.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 { "configurations" : [ { "name" : "Win32" , "includePath" : [ "${workspaceFolder}/**" ] , "defines" : [ "_DEBUG" , "UNICODE" , "_UNICODE" ] , "windowsSdkVersion" : "10.0.17763.0" , "compilerPath" : "F:\\codeConfiguration\\minGW\\bin\\g++.exe" , "cStandard" : "c11" , "cppStandard" : "c++17" , "intelliSenseMode" : "${default}" } ] , "version" : 4 }
launch.json
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 30 31 { "version" : "0.2.0" , "configurations" : [ { "name" : "g++.exe build and debug active file" , "type" : "cppdbg" , "request" : "launch" , "program" : "${fileDirname}\\${fileBasenameNoExtension}.exe" , "args" : [ ] , "stopAtEntry" : false , "cwd" : "${workspaceFolder}" , "environment" : [ ] , "externalConsole" : true , "MIMode" : "gdb" , "miDebuggerPath" : "F:\\codeConfiguration\\MinGW\\bin\\gdb.exe" , "setupCommands" : [ { "description" : "为 gdb 启用整齐打印" , "text" : "-enable-pretty-printing" , "ignoreFailures" : true } ] , "preLaunchTask" : "task g++" } ] }
tasks.json
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 { "version" : "2.0.0" , "tasks" : [ { "type" : "shell" , "label" : "task g++" , "command" : "F:\\codeConfiguration\\MinGW\\bin\\g++.exe" , "args" : [ "-g" , "${file}" , "-o" , "${fileDirname}\\${fileBasenameNoExtension}.exe" , "-I" , "F:\\codeProject\\vsCode" , "-std=c++17" ] , "options" : { "cwd" : "F:\\codeConfiguration\\MinGW\\bin" } , "problemMatcher" : [ "$gcc" ] , "group" : "build" , } ] }
然后写个hello world进行测试。
应该没问题。
方法1【旧版】 配置C++环境 可以直接在弹出来的窗口中选择Configure UI
也可以Ctrl Shift P后输入C++,选择Configure UI
这里已经自动写好了,默认是gcc的,用来编译C语言代码,可以改成g++,C++兼容C语言
这里IntelliSense代码补全工具写windows-gcc-x64
配置完成后,此时在侧边栏可以发现多了一个.vscode文件夹,并且里面有一个c_cpp_properties.json文件,内容如下,说明上述配置成功。现在可以通过Ctrl+<快捷键打开内置终端并进行编译运行了。
目前已经可以进行编译和运行了。
配置构建任务(使用vscode的debug调试) 创建一个tasks.json文件来告诉VS Code如何构建(编译)程序。该任务将调用g++编译器基于源代码创建可执行文件。 按快捷键Ctrl+Shift+P调出命令面板,输入tasks,选择“Tasks:Configure Default Build Task”:
在./.vscode生成了task.json
此时在hello.cpp中直接按F5可以直接进行调试,
选择:C++(GDB/LLDB)
然后产生一个launch.json文件
直接替换!!
1 2 3 title:注意 - miDebuggerPath要换成自己的路径 - preLaunchTask要替换成自己的字段,就是之前配置的tasks.json中的label字段
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 { "version" : "0.2.0" , "configurations" : [ { "name" : "(gdb) Launch" , "preLaunchTask" : "C/C++: g++.exe build active file" , "type" : "cppdbg" , "request" : "launch" , "program" : "${fileDirname}\\${fileBasenameNoExtension}.exe" , "args" : [ ] , "stopAtEntry" : false , "cwd" : "${workspaceFolder}" , "environment" : [ ] , "externalConsole" : true , "MIMode" : "gdb" , "miDebuggerPath" : "F:\\env\\mingw64\\bin\\gdb.exe" , "setupCommands" : [ { "description" : "Enable pretty-printing for gdb" , "text" : "-enable-pretty-printing" , "ignoreFailures" : true } ] } ] }
最后,打了断点之后能够显示变量和正常运行,即为配置成功
WSL-GCC环境 更换软件源
1 vim /etc/apt/sources.list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
更新软件源
1 2 sudo apt-get updatesudo apt-get upgrade
安装gcc
1 sudo apt install build-essential
成功
1 2 3 4 5 6 7 8 9 10 coderyjc@DESKTOP-477G6R1:~$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:hsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
七牛云对象存储 账号注册与薅羊毛 账号注册步骤省略,先注册账号,再进行用户实名认证,认证完成之后才能每个月领取10G的存储额度。
注册七牛云账号,新用户可以每个月免费领10G的云存储,在这个页面 https://marketing.qiniu.com/activity/act-free
从这里领取。
新建bucket(存储空间) 从这进去
点击空间管理,进入管理空间
点击新建空间
填写存储空间名称(bucket name),选择一个比较近的存储区域,访问控制为公开。
1 2 title:注意 记住存储空间名称和存储区域,一会要用。
创建成功后会有提示:
文件上传需要绑定自定义域名,最好绑定一个自己的域名,但是一开始官方免费提供试用一个月的,这就意味着如果直接用官方给定的, 一个月到了之后就不能用了,所以还要绑定自己的域名。
可以先点击“好的,我知道了”进行后续的配置
配置Obsidian 安装插件 下载插件 remotely-save ,地址:https://gitee.com/whghcyx/obsidian-plugin/raw/master/plugin/remotely-save.zip
添加到obsidian,启用插件
进入插件配置页面
服务类型 远程服务选择S3或者兼容S3的服务
剩下的主要配置下列五项
配置服务地址 Endpoint 进入七牛云空间管理
点击查看S3域名
这个结点名称,填写到①处,服务地址
配置区域 Region 七牛云存储区域上传地址 https://developer.qiniu.com/kodo/1671/region-endpoint-fq
这个地址是你创建存储空间(Bucket)的时候选择的地址,也就是在[[七牛云搭建Obsidian存储#新建bucket(存储空间)]] 中选择的地址,我的存储空间在河北。
查上表可得,河北区的地址为z1
因此我的第②项填z1
填写Access Key和 Secert Access Key 在自己的七牛云空间的个人空间,选择密钥管理
上图中的AK和SK就是要填写的③和④
填写存储桶名字 存储桶名字,就是存储空间名字,就是[[七牛云搭建Obsidian存储#新建bucket(存储空间)]] 中填写的名字。
测试链接情况 配置完之后是这样的:
点击检查,成功即可。
开始同步 点击这个按钮,开始同步
显示已完成同步
去七牛云的服务器上查看:
已经有文件了
点击列表项目右侧的详情,可以查看图片。
配置完成,可以使用了(暂时)。
【附录】自定义CDN加速域名 域名的购买和配置 域名的购买看这一篇文章 [[域名的购买和认证|域名注册]]
进入自己的域名管理系统,我的是百度智能云,
配置七牛云的CDN加速 进入管理空间,点击绑定域名
输入自己创建的域名,最好是二级域名。
域名创建成功之后,需要确认你是域主
这里先不写了。
创建成功之后,开始配置域名的的CNAME,这一步需要回到自己创建域名的网站,我的是百度智能云的域名管理。
1 2 title:注意 这里的CNAME要复制下来,记下来,一会要用
进入百度智能云的域名管理页面,点击解析域名
找到刚才用来验证的TXT类型的域名,点击修改
修改记录类型和记录值,这里的记录值,是刚才的加速域名创建之后,七牛云给出的CNAME
返回这里的域名管理,等待一段时间(3分钟左右,然后刷新一下)
显示配置成功即可成功使用
回到存储空间管理,可以看到已经成功了。
结束。
Pytorch安装 安装CUDA 使用命令 nvidia-smi 查看显卡信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (d2l) C:\Users\Administrator>nvidia-smi Tue Apr 30 22:50:40 2024 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 531.61 Driver Version: 531.61 CUDA Version: 12.1 | |-----------------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce GTX 1050 WDDM | 00000000:01:00.0 On | N/A | | N/A 40C P8 N/A / N/A| 116MiB / 3072MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| +---------------------------------------------------------------------------------------+
上面显示了 CUDA Version: 12.1 ,因此我需要安装版本小于等于12.1的cuda
我安装了12.1: https://developer.nvidia.com/cuda-12-1-0-download-archive
安装PyTorch 《动手学深度学习》 https://zh-v2.d2l.ai/ 书中的安装部分给出的pytorch安装方式默认是CPU版本的。
以下是CPU版本的:
1 2 pip install torch==1.12.0 pip install torchvision==0.13.0
GPU版本需要自己指定,如下:
1 conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
如果再次之前已经安装了cpu版本的,需要先卸载 conda uninstall pytorch
安装完成之后,使用如下代码判断是否成功
1 2 3 4 5 6 7 8 9 10 C:\Users\Administrator>conda activate d2l (d2l) C:\Users\Administrator>python Python 3.9.19 (main, Mar 21 2024, 17:21:27) [MSC v.1916 64 bit (AMD64)] on win32 Type "help" , "copyright" , "credits" or "license" for more information. >>> import torch >>> torch.__version__ '2.3.0' >>> torch.cuda.is_available() True
torch.cuda.is_available() 为True则安装成功。