从零开始到ubuntu14.04系统+nvidia显卡驱动+cuda8.0+cudnn5.1+tensorflow(pytorch)
最近花了几天时间,将实验室的一台服务器从零到Ubuntu14.04系统,nvidia显卡驱动,cuda8.0+cudnnV5.1,tensorflow,pytorch安装好。中间遇到过无数个问题,现在将这个过程的步骤和问题记录下来,方便以后查看。
环境配置说简单也简单,说难也难,因为网上有很多教程可参考,但指不定什么时候你就会碰到教程中未提及的问题。往往会出现,你找了一个教程,并且按照别人的步骤来,别人就能Successfully installed,而自己就会出现各种红色字体的问题。总结了一下,原因大致为:
- 没有找对别人的教程。找教程一定要仔细检测确认教程安装的和自己安装的是一摸一样的东西,包括版本也要一致。不然会出现新的问题
- 教程也会出现问题,csdn上也会有各种打错字的,或者把命令行复制错误的,比如一些命令后面带有“- -”会写成“—”。
- 驱动软件安装包,最好去官网上下载,不要下载网上提供的百度网盘链接
- 网上找的教程发布时间要么是最近的,要么就很早的教程。这样会导致安装的软件版本难以对应。例如安装tensorflow,直接参照博客上的教程
pip install tensorflow
,这种简单的安装方式,导致安装默认的最新版本的tensorflow(1.8)。而从1.3版本以后,tensoflow就不再支持cudnn的v5.1版本。
现在来讲下流程。
1.Ubuntu 14.04 安装
准备一个u盘,制作ubuntu14.04系统盘,最好一直放着,之后可能有问题又得重装系统。不过ubuntu系统安装很快。
ubuntu14.04和16.04步骤一样,参考链接ubuntu系统安装
Ubuntu Linux系统时硬盘分区最合理的方法。参考链接
选择其他选项
Ubuntu Linux可以把分区作为挂载点,载入目录,其中最常用的目录如下表所示:
目录(挂载点) | 分区类型 | 建议大小 | 格式 | 描述 |
---|---|---|---|---|
/ | 40G | 主分区 | ext4 | 根目录,就是系统安装的目录,硬盘大的话一般40-100G,很多软件安装的位置 |
swap | 100G(2倍内存大小) | 逻辑分区 | swap | 交换空间 |
/boot | 200M左右 | 逻辑分区 | ext4 | Linux的内核及引导系统程序所需要的文件,GRUB或LILO系统引导管理器也位于这个目录;启动撞在文件存放位置,如kernels,initrd,grub。 |
/home | 硬盘剩余都给/home | 逻辑分区 | ext4 | 用户工作目录;个人配置文件,如个人环境变量等;所有账号分配一个工作目录。 |
分区之后肯能会报错:
The partition table format in use on your disks normally requires to you create a separate partition for boot loader code. This partitionshould be marked for use as a “Reserved BIOS boot area” and should be at least 1MB in size. Note that this is not the same as a partition mounted on /boot
If you do not go back to the partitioning menu and correct this error, boot loader installation may fail later, although it may still be possible to install the boot loader to a partition.
解决方法:
添加一个分区,use as 选择EFI,逻辑分区,1G以下即可。参考链接
(u盘安装后系统后,不要手动把系统升级给关闭,因为后面有些安装包需要更新,不然会出现版本不兼容的问题,当初就是一安装系统就关闭更新设置,导致后面出现各种问题,折腾了很久…)
2. Ubuntu14.04环境下安装显卡驱动
1.先看看本机的显卡:
lspci |grep -i nvidia
2.下载官方驱动程序
3.打开终端,先删除旧的驱动(防止之前安装过驱动)
sudo apt-get remove --purge nvidia*
4.禁止集成的nouveau驱动
Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动。
将驱动添加到黑名单blacklist.conf中,但是由于该文件的属性不允许修改。所以需要先修改文件属性。</