从零配置一台linux主机
1. Linux软件安装方式
软件安装教程
设置国内源
因为 linux 本身自带的下载源资源有限,所以在使用 apt 命令下载的时候,有些包可能找不到,所以要添加国内源。方法如下:
打开文件 /etc/apt/sources.list
sudo gedit /etc/apt/sources.list
在文件头部加入一下内容:
#阿里云源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
#测试版源
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
#源码
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
#测试版源
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse#清华大学源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
#测试版源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
#源碼
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
#测试版源
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse#中科大源
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
关闭文件后执行
sudo apt-get update
sudo apt-get upgrade
执行完成就完成了软件库的更新,后面的操作会更加顺利,减少找不到包的问题。
2. 输入法安装
安装教程
3. 配置VPN
非广告,不负责,我只是放出我自己使用的这个网址,可以在linux上使用。
按照里面的linux系统使用教程即可,亲测有效。
按照教程操作下载 .AppImage 文件之后,有两个问题需要解决
-
更改软件权限为可运行文件
sudo chmod +x weitu_0.2.7_linuxx86_64.AppImage -
运行 .AppImage 文件
./weitu_0.2.7_linuxx86_64.AppImage
在执行运行的命令时遇到了这个问题: “ AppImages require FUSE to run. “
解决办法:安装 FUSE。
具体做法:去这个网址查看当前系统对应的版本,然后运行对应版本下的命令即可安装。
安装 FUSE 的时候,遇到网络问题,第二条命令 git clone 执行失败,解决办法是选择更好的下载源。操作如下:
1. 打开终端并输入"sudo software-properties-gtk"命令。
2. 在弹出的窗口中选择"Download from"选项卡。
3. 选择"Other"并点击"Select Best Server"按钮,系统将自动测试并选择最佳的更新源。
4. 点击"Choose Server"并关闭窗口,然后运行"sudo apt-get update"命令再次尝试更新。
使用这个方法安装之后,进入到 .AppImage 文件所在文件夹,运行命令 ./weitu_0.2.7_linuxx86_64.AppImage 即可启动APP,和windows系统下APP一样的使用方法,亲测可行。
每次都使用命令打开是非常不方便的,所以最后还需要为 .AppImage 文件生成桌面快捷方式。
sudo touch /usr/share/applications/WeiTu.desktop
然后在 .desktop 对应位置执行 sudo gedit WeiTu.desktop 打开,写入以下内容:
[Desktop Entry]
Name=Vnote # 名字,最好跟软件一样
Comment=Vnote #描述,随便写
Exec=/opt/vnote/vnote-linux-x64_v3.16.0.AppImage #文件绝对路径,下载的文件存在哪就写哪
Icon=/opt/vnote/vnote_pic.jpeg #图标绝对路径,下载的文件存在哪就写哪
Terminal=false
Type=Application
Categories=Developer;
执行完了之后,按键盘上的窗口键,在里面就能找到 WeiTu 了,点击即可打开。
4. 一个好用的终端
zsh、oh-my-zsh、tmux
Zsh:Zsh是一个强大的Shell,支持自动补全和语法高亮等功能,是Bash的替代品。
安装: sudo apt-get install zsh
应用:将默认SHELL修改为 zsh
oh-my-zsh: 安装教程
按照这个教程安装时,我出现了 git clone 执行超时的问题,我通过安装 VPN 解决了这个问题(注意,要使用全局连接,而不是PAC连接),另一个解决办法是,直接去github 上下载 oh-my-zsh.zip,解压之后进入目录 /master/tools 运行 install.sh 进行安装。
另一个教程,这个教程里不使用git clone,有国内源。
tmux:tmux是一个终端复用器,可以在一个终端窗口中同时运行多个终端会话。
安装:sudo apt-get install tmux
启动:在终端输入命令 tmux 即可
相关快捷键:https://blog.csdn.net/gongdiwudu/article/details/129317682
5. Anaconda && Python
Anaconda安装教程
Ubuntu系统一般自带Python3
6. 安装显卡驱动、CUDA、Pytorch
查看系统版本
uname -a
ubuntu 18.04 安装之后WiFi连接教程。
安装之前,让我们先看一下操作系统、显卡驱动、CUDA、Pytorch 的关系

如图所示:
- 显卡驱动是连接操作系统和显卡的平台,使得操作系统能够正常使用和管理显卡资源;
- cuda是英伟达提供的计算平台,方便用户利用显卡进行计算,为用户提供了接口,显卡除了计算还有一个很大的功能是图形显示;
- pytorch是深度学习框架,为了方便用户使用的一种深度学习框架,方便用户使用相关服务,其中包括cuda服务。
如果显卡驱动和系统版本不适配,则显卡直接使用不了,甚至导致系统异常;如果显卡驱动、CUDA、Pytorch三者版本不匹配,则会导致cuda计算无法使用。
在配置深度学习环境时,显卡驱动、CUDA、Pytorch三个组件的版本适配非常重要,安装顺序也要注意,否则会出很多的问题。
在以下我也会给出卸载的方法,如果装错了,可以按照卸载重新装。
1)如何选择版本?
显卡驱动:越新越好
CUDA 和 pytorch 版本: 要适配
对于显卡驱动和CUDA版本,越新的显卡驱动能兼容的CUDA版本就越多,具体可以查看Nvidia官网。
然而,在pytorch框架中使用 CUDA 时,pytorch支持的 CUDA 版本是有限的,必须先确定清楚版本再安装,具体可以看Pytorch官网。
2)安装顺序是怎样的?
先装显卡驱动,然后查看CUDA版本,然后安装 CUDA,最后安装对应 Pytorch。
3)安装教程:
显卡驱动安装
教程1
教程2,有卸载教程
CUDA安装
(1)从CUDA官网找到对应版本。
(2)选择 ranfile(local) 下载运行即可安装,这里切记不可使用 dev 版本,会自动装显卡驱动,覆盖掉之前装的

在这一步千万要注意,只安装CUDA Toolkit 11.8 即可,否则会再次安装驱动导致失败,其他的也没有必要安装。
(3)安装完要在 .bashrc 文件中添加 PATH
export PATH=$PATH:/usr/local/cuda/binexport LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
添加完了执行 source ~/.bashrc。
(4)通过命令 nvcc --version 查看版本,输出版本即为成功
cuda卸载:
sudo apt clean
sudo apt update
sudo apt purge nvidia-*
sudo apt autoremove
Pytorch安装
进入到相应环境之后,在Pytorch官网选择合适版本,然后运行官网命令即可安装。
cuDNN安装
cuDNN是英伟达研究的为深度学习训练加速的工具,是可选项,如果不下载,也并不会影响cuda的使用。
安装方法如下:
从官网下载对应版本的包,我这里用的是 .deb,在网上有很多的教程,但是我发现英伟达简化了安装,下载 .deb 文件之后,直接进入文件夹中,运行命令 sudo dpkg -i xxxx.deb,然后就可以了,如果运行后有提示,按照提示操作即可。
验证是否安装成功:运行语句 print(torch.backends.cudnn.version),输出 8700 即表示安装成功。
7. 关闭 Linux 系统和 NVIDIA 显卡驱动的自动更新
这一部分非常重要,因为前面已经说了版本不匹配会出现很多问题,但只指出了显卡驱动、cuda、pytorch的关系,另外一个重要关系是操作系统和显卡驱动的关系,如果让系统和显卡驱动自己更新,就可能会出现很多意外情况,比如我就出现了直接开不了机的问题,导致重新装系统。所以最好禁用自动更新,把主动权掌握在自己手上。
Linux 系统自动更新关闭方法。
Nvidia 驱动自动更新关闭方法。
8.远程连接服务器
1)向日葵软件
2)通过 SSH
查找 linux 主机 IP 和 端口 的方法
运行 ifconfig 命令,其中的 inet 字段后为IP地址,通过SSH命令连接时,默认端口号为22。如果找不到 ifconfig 命令,使用 sudo apt install net-tools 进行安装。
在linux主机上安装 openssh-server、ssh 的教程。也可以看B站的这个视频。
最后设置开机启动时,可能会出现 failed to enable unit 的错误,这个时候可能是因为已经是 enable 的了。
可以使用 sudo systemctl status sshd 命令查看,在输出中找到 loaded 这一行,后面会看到已经是enabled。
9.问题记录
1)显卡驱动自动更新导致开不了机,提示 failed to start nvidia-powered service?
在开机后按 shift 或 esc 键,进入系统高级选项,注意不是 BIOS,而是操作系统的高级选项。

选择系统高级选项,进入选择 recovery 模式。

然后先选择network恢复网络,然后选择 dpkg 恢复包,恢复下载包时间根据需要下载的包的多少。然后重启即可。
暴力解决:重新装系统
相关文章:
从零配置一台linux主机
1. Linux软件安装方式 软件安装教程 设置国内源 因为 linux 本身自带的下载源资源有限,所以在使用 apt 命令下载的时候,有些包可能找不到,所以要添加国内源。方法如下: 打开文件 /etc/apt/sources.list sudo gedit /etc/apt/s…...
【蓝桥每日一题]-倍增(保姆级教程 篇1)
今天讲一下倍增 目录 题目:忠诚 思路: 题目:国旗计划 思路: 查询迭代类倍增: 本质是一个一个选区间使总长度达到 M,类似凑一个数。而我们会经常用不大于它最大的二的次幂,减去之后,再重复这…...
CNN(卷积神经网络)、RNN(循环神经网络)和GCN(图卷积神经网络)
CNN(卷积神经网络): 区别:CNN主要适用于处理网格状数据,如图像或其他二维数据。它通过卷积层、池化层和全连接层来提取和学习输入数据的特征。卷积层使用卷积操作来捕捉局部的空间结构,池化层用于降低特征图…...
在markdown中怎么画表格
2023年11月5日,周日上午 下面是一种常用的方式来编写表格: | 列1标题 | 列2标题 | 列3标题 | |:------:|:------:|:------:| | 内容 | 内容 | 内容 | | 内容 | 内容 | 内容 |在这个示例中,第一行用于定义表格的列标…...
每天五分钟计算机视觉:搭建手写字体识别的卷积神经网络
本文重点 我们学习了卷积神经网络中的卷积层和池化层,这二者都是卷积神经网络中不可缺少的元素,本例中我们将搭建一个卷积神经网络完成手写字体识别。 卷积和池化的直观体现 手写字体识别 手写字体的图片大小是32*32*3的,它是一张 RGB 模式的图片,现在我们想识别它是从 …...
【React】【react-globe.gl】3D Objects效果
目录 想要实现的效果实现过程踩坑安装依赖引入页面 想要实现的效果 示例地址 实现过程 踩坑 示例是通过script引入的依赖,但本人需要在react项目中实现该效果。按照react-globe.gl官方方法引入总是报错 Cant import the named export AmbientLight from non EcmaS…...
目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】SLAM(补充篇)
目录 前言 知识储备 SLAM基础知识 算法原理 什么是SLAM SLAM算法框架...
Pytorch 缓解过拟合和网络退化
一 添加BN模块 BN模块应该添加 激活层前面 在模型实例化后,我们需要对BN层进行初始化。PyTorch中的BN层是通过nn.BatchNorm1d或nn.BatchNorm2d类来实现的。 bn nn.BatchNorm1d(20) # 对于1D输入数据,使用nn.BatchNorm1d;对于2D输入数据&am…...
【算法】昂贵的聘礼(dijkstra算法)
题目 年轻的探险家来到了一个印第安部落里。 在那里他和酋长的女儿相爱了,于是便向酋长去求亲。 酋长要他用 10000 个金币作为聘礼才答应把女儿嫁给他。 探险家拿不出这么多金币,便请求酋长降低要求。 酋长说:”嗯,如果你能够替我…...
hackergame2023菜菜WP
文章目录 总结Hackergame2023更深更暗组委会模拟器猫咪小测标题HTTP集邮册Docker for everyone惜字如金 2.0Git? Git!高频率星球低带宽星球小型大语言模型星球旅行日记3.0JSON ⊂ YAML? 总结 最近看到科大在举办CTF比赛,刚好我学校也有可以参加,就玩了…...
ubuntu20.04.6使用FTP-及相关安全配置
前言: 作为一名运维,对文件系统,网络,文件共享,内存,CPU,以及一些应用服务及监控相关的知识需要 了解。今天是自己第一次搭建FTP(以前用过smb,windows共享,FT…...
C++中不允许复制的类
C中不允许复制的类 假设您需要模拟国家的政体。一个国家只能有一位总统,而 President 类面临如下风险: President ourPresident; DoSomething(ourPresident); // duplicate created in passing by value President clone; clone ourPresident; // dup…...
使用Python 脚自动化操作服务器配置
“ 有几十台特殊的服务器,没有合适的批量工具只能手动,要一个一个进行点击设置很耗费时间呀\~”,使用 Python 的简单脚本,即可模拟鼠标键盘进行批量作业 01 — 自动化示例 以某服务器中的添加用户权限为例,演示过程皆未触碰鼠标…...
DL Homework 6
目录 一、概念 (1)卷积 (2)卷积核 (3)特征图 (4)特征选择 (5)步长 (6)填充 (7)感受野 二、探究不同卷…...
软考高项论文-绩效域
干系人绩效域 预期目标指标及检查方法建立高效的工作关系干系人参与的连续性干系人认同项目目标变更的频率支持项目的干系人提高了满意度,并从中收益;反对项目的干系人没有对项目产生负面影响干系人行为干系人满意度干系人相关问题和风险团队绩效域 预期目标指标及检查方法共…...
设计模式之装饰模式--优雅的增强
目录 概述什么是装饰模式为什么使用装饰模式关键角色基本代码应用场景 版本迭代版本一版本二版本三—装饰模式 装饰模式中的巧妙之处1、被装饰对象和装饰对象共享相同的接口或父类2、当调用装饰器类的装饰方法时,会先调用被装饰对象的同名方法3、子类方法与父类方法…...
前端vue,后端springboot。如何防止未登录的用户直接浏览器输入地址访问
前端,使用Vue框架来实现前端路由拦截: 设置需要登录校验的页面: 登录成功后,去设置LocalStorage里面的IsLogin为true:...
linux安装Chrome跑web自动化
添加 Chrome 源: 打开终端并执行以下命令,将 Google Chrome 的 APT 源添加到系统: bashCopy code wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 安装 Chrome: 执行以下命令来安装 Chrome&…...
linux环境下编译,安卓平台使用的luajit库
一、下载luajit源码 1、linux下直接下载: a、使用curl下载:https://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz b、git下载地址;https://github.com/LuaJIT/LuaJIT.git 2、Windows下载好zip文件,下载地址:https…...
indexedDB笔记
indexedDB 该部分内容主要源于https://juejin.cn/post/7026900352968425486 常用场景:大量数据需要缓存在本地重要概念 仓库objectStore:类似于数据库中的表,数据存储媒介索引index:索引作为数据的标志量,可根据索引获…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
