前言

  经过一周的不懈努力,通过对网站各种安装教程的学习,终于呕心沥血的完成本次的环境搭建= =。虽然网站的教程多不胜数,但是学习下来,总有一些不尽人意的地方,比如一些命令行中少了一个空格或者什么的,对于一个Ubuntu小白(就像我一样+_+)来说出了问题,很难察觉。现在就根据我自身在安装过程中的一些体会总结,来详细地梳理一遍,一是可以给自己做一个记录下次配置安装的时候会方便很多,二是也希望跟大家分享一下我的这次吐血经历从而少走些弯路。
  本次框架搭建的全程概要:

  • 框架基础: 安装显卡驱动 ==> 安装cuda ==> 测试cuda的Samples==> 降低gcc版本==> 重新测Samples==> 安装cudnn
  • 安装caffe:安装Opencv相关依赖项 ==> 编译Opencv ==> 安装Opencv==>安装caffe相关依赖项==> 修改配置文件==> 编译caffe
  • 安装theano
  • 安装Thsorflow

  在整个过程中,出问题的部分主要是安装cudaOpencv编译 以及caffe的编译 ,三个框架中caffe是最难安装的了,其余两个稍微容易点。
  注意: 在安装之前最好先将电脑的锁屏关闭,因为有时候由于网络或者软件源的问题会导致下载异常慢,所以为了防止下载中断先将锁屏功能关闭。

框架基础安装

安装显卡驱动

  首先去nvidia官网上查看适合你电脑GPU的最新驱动:http://www.nvidia.com/Download/index.aspx?lang=en-us

  然后在终端中依次输入下列命令行:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375375是你查到的版本号,如果查到的版本号含有小数只要整数部分)
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

  执行完上述后,重启(reboot)。
  重启后输入:

nvidia-smi

  如果出现了你的GPU列表,则说明驱动安装成功了。另外也可以通过,或者输入

nvidia-settings

  出现:

安装cuda

  cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda。从这里下载cuda的安装文件 (需要注册一个nvidia帐号下载):
https://developer.nvidia.com/cuda-release-candidate-download

  注意这里下载的是cuda8.0的runfile(local)文件,笔者一开始按照另外一篇博客下载deb(local)文件结果安装出问题因此并不建议下载deb(local)文件安装。
  下载完cuda8.0后。执行如下语句,运行runfile文件:

sudo sh cuda_8.0.27_linux.run  (根据你下载的文件名来)

  执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia361驱动时,一定要选择否,因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。其余的都直接默认或者选择是即可。
  笔者安装后出现了如下界面:

  可以发现系统提示缺少一些推荐安装的库:libglu.so、libX11.so、libXi.so、libXmu.so,所以接下来执行如下命令行:

sudo apt-get install libglu1-mesa-dev   
sudo apt-get install libx11-dev
sudo apt-get install libxi-dev
sudo apt-get install libxmu-dev

  然后再运行runfile文件进行安装一次,会发现上图中的错误就消失了。
  安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

  然后设置环境变量和动态链接库,输入如下命令行:

sudo gedit /etc/profile

  在打开的文件末尾加入:

export PATH = /usr/local/cuda/bin:$PATH

  保存之后,创建链接文件:

sudo gedit /etc/ld.so.conf.d/cuda.conf

  在打开的文件中添加如下语句:

/usr/local/cuda/lib64

  然后执行如下语句,使链接立即生效。

sudo ldconfig

测试cuda的Samples

  编译测试cuda例子与测试,在命令行输入:

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
 sudo make ./deviceQuery

  这里报错是因为Ubuntu16.04自带的gcc5.x版本CUDA不兼容,所以需要降低gcc+版本:

sudo apt-get install gcc-4.9 g++-4.9
cd /usr/bin
sudo rm gcc 
sudo rm g++
sudo ln -s gcc-4.9 gcc
sudo ln -s g++-4.9 g++

  再次输入如下语句重新测试Samples:

sudo make ./deviceQuery

  打印类似如下信息,说明安装成功:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 950M"
  CUDA Driver Version / Runtime Version          9.0 / 8.0
  CUDA Capability Major/Minor version number:    5.0
  Total amount of global memory:                 2003 MBytes (2100232192 bytes)
  ( 5) Multiprocessors,(128) CUDA Cores/MP:     640 CUDA Cores
  GPU Max Clock rate:                            1124 MHz (1.12 GHz)
  Memory Clock rate:                             1001 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 2097152 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536),2D=(65536,65536),3D=(4096,4096,4096)
  Maximum layered 1D Texture Size,(num) layers  1D=(16384),2048 layers
  Maximum layered 2D Texture Size,(num) layers  2D=(16384,16384),2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,z): (1024,1024,64)
  Max dimension size of a grid size    (x,z): (2147483647,65535,65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery,CUDA Driver = CUDART,CUDA Driver Version = 9.0,CUDA Runtime Version = 8.0,NumDevs = 1,Device0 = GeForce GTX 950M
Result = PASS

安装cudnn

  首先去官网下载你需要的cudnn,下载的时候需要注册账号。选择对应你cuda版本的cudnn下载。这里我下载的是cudnn5.1,是个压缩文件(.tgz)——— 编译https://developer.nvidia.com/rdp/cudnn-download

  下载完cudnn后,命令行输入文件所在的文件夹 (ubuntu为本机用户名):

cd home/ubuntu/Downloads/
tar zxvf cudnn-8.0-linux-x64-v5.1.tgz #解压文件

  cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件

  再cd进入lib64目录下的动态文件进行复制和链接:(5.1.5为对应版本具体可修改)

sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

  到此,框架搭建之前的准备就已经完成了,接下来将进行caffe的安装。

安装caffe

安装Opencv3.1.0

  从官网上下载opencv3.1.0 http://opencv.org/releases.html并将其解压到你要安装的位置,假设解压到了/home。

  1、安装相关依赖项:

sudo apt-get install --assume-yes libopencv-dev
sudo apt-get install build-essential cmake git libgtk2.0-dev
sudo apt-get install pkg-config python-dev
sudo apt-get install python-numpy
sudo apt-get install libdc1394-22-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng12-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libjasper-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavformat-dev
sudo apt-get install libswscale-dev
sudo apt-get install libxine2-dev
sudo apt-get install libgstreamer0.10-dev 
sudo apt-get install libgstreamer-plugins-base0.10-dev
sudo apt-get install libv4l-dev
sudo apt-get install libtbb-dev
sudo apt-get install libqt4-dev
sudo apt-get install libfaac-dev
sudo apt-get install libmp3lame-dev
sudo apt-get install libopencore-amrnb-dev
sudo apt-get install libopencore-amrwb-dev 
sudo apt-get install libtheora-dev
sudo apt-get install libvorbis-dev
sudo apt-get install libxvidcore-dev
sudo apt-get install x264 v4l-utils unzip

sudo apt-get install build-essential cmake git
sudo apt-get install ffmpeg libopencv-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install python3-numpy
sudo apt-get install qtbase5-dev

  2、编译opencv:
  在opencv文件夹下(解压的那个文件夹)打开终端,然后:

mkdir build #新建一个build文件夹,编译的工程都在这个文件夹里
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLInes" ..(后面两点不要忘记)

  结果笔者出现了以下问题:

  这是因为下载ippicv_linux_ 20151201.tgz需要FQ,所以下载超时了,不过我们可以在这里下载http://download.csdn.net/download/chu_ying/9432287
  下载好后,将该压缩包放在3rdpart/ippicv/downloader下,再次重新配置:

  出现如下内容,则表示配置cmake成功了:

  然后进行make编译:

sudo make j8     #j后面的数字8代表的是电脑的cpu核数可以根据自己电脑来修改

  然而笔者又出现了问题:

  这是因为cuda8.0不支持Opencv的Ggraphcut算法,因此需要进入opencv-3.1.0/modules/cuDalegacy/src/目录,修改graphcuts.cpp文件:

将:
#include "precomp.hpp" //有点难找,可以ctrl+f在文件中快速查找 
#if !defined (HAVE_CUDA) || defined (CUDA_disABLER)
改为:
#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_disABLER) || (CUDART_VERSION >= 8000)

  再次进行make编译,将会得到如下编译成功结果:

  3、安装Opencv:
  上面是将opencv编译成功,但是并没有安装到我们的系统中,有很多的设置都没有写入到系统中,因此还要进行install。

sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

  重启系统,重启系统后cd到build文件夹下:

sudo apt-get install checkinstall
sudo checkinstall

  然后按照提示安装就可以了。使用checkinstall的目的是为了更好的管理我安装的opencv,因为opencv的安装很麻烦,卸载更麻烦,其安装的时候修改了一大堆的文件,当我想使用别的版本的opencv时,将当前版本的opencv卸载就是一件头疼的事情,因此需要使用checkinstall来管理我的安装。执行了checkinstall后,会在build文件下生成一个以backup开头的.tgz的备份文件和一个以build开头的.deb安装文件,当你想卸载当前的opencv时,直接执行dpkg -r build即可。

配置caffe

  1、安装相关依赖项:

sudo apt-get update 
sudo apt-get install -y build-essential cmake git pkg-config 
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler 
sudo apt-get install -y libatlas-base-dev 
sudo apt-get install -y no-install-recommends libboost-all-dev 
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev 
sudo apt-get install -y python-pip 
sudo apt-get install -y python-dev 
sudo apt-get install -y python-numpy python-scipy

  2、修改配置文件:
  将终端cd到你要安装caffe的位置,执行如下指令,从github上clone caffe。

git clone https://github.com/BVLC/caffe.git //从github上git caffe
cd caffe //打开到刚刚git下来的caffe 
sudo cp Makefile.config.example Makefile.config   //将Makefile.config.example的内容复制到Makefile.config 
 //因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子 
sudo gedit Makefile.config //打开Makefile.config文件

  打开Makefile.config 文件之后修改:

//若使用cudnn,则将# USE_CUDNN := 1 修改成: USE_CUDNN := 1 
//若使用的opencv版本是3的,则将# OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3 
//若要使用python来编写layer,则需要将# WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1 
//重要的一项将# Whatever else you find you need goes here.下面的 INCLUDE_Dirs := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_Dirs := $(PYTHON_LIB) /usr/local/lib /usr/lib 
修改为: INCLUDE_Dirs := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial 
      LIBRARY_Dirs := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial //这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径

//若使用MATLAB接口的话,则要讲MATLAB_DIR换成你自己的MATLAB安装路径
MATLAB_DIR := /usr/local
MATLAB_DIR := /usr/local/matlab2014a

  再打开Makefile 文件:

sudo gedit Makefile
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) #用下面一行代码替换该行代码
NVCCFLAGS += -D_FORCE_INLInes -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

  3、编译caffe:

cd ~ /caffe       #这是我的caffe目录
 sudo apt-get install python-opencv  #安装cython,python-opencv
 sudo pip install cython easydict 
 #安装依赖库这里跟上面的一些是重复的,因为我是想编译FRCNN 所以我把我要用的包重现安装一遍。
 sudo apt-get install python-numpy 
 sudo apt-get install python-scipy
 sudo apt-get install python-matplotlib
 sudo apt-get install python-sklearnpython-skimage
 sudo apt-get install python-h5py
 sudo apt-get install python-protobuf
 sudo apt-get install python-leveldb 
 sudo apt-get install python-networkx
 sudo apt-get install python-nosepython-pandas
 sudo apt-get install python-gflags
 sudo apt-get install Cython ipython
                
 sudo gedit /etc/profile   #添加~/caffe/python到$PYTHONPATH:
 # 添加:export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
 source /etc/profile      # 使编译环境生效 
 sudo apt-get install protobuf-c-compiler protobuf-compiler
 sudo make clean        #第一次编译不用添加,如果编译失败必须增需要添加。
 sudo make all -j8      

  笔者在编译过程中出现了以下三个问题(花了好长时间填好的坑=_=):
第一个问题:  

解决方法:
  再次打开Makefile.config文件:

sudo gedit Makefile.config

  找到如下部分内容进行修改:

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ 
        -gencode arch=compute_20,code=sm_21 \
        -gencode arch=compute_30,code=sm_30 \
        -gencode arch=compute_35,code=sm_35 \
        -gencode arch=compute_50,code=sm_50 \
        -gencode arch=compute_52,code=sm_52 \
        -gencode arch=compute_60,code=sm_60 \
        -gencode arch=compute_61,code=sm_61 \
        -gencode arch=compute_61,code=compute_61
#修改为如下内容
CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \ 
        -gencode arch=compute_35,code=compute_61

第二个问题:

  解决方法:
  将降级到4.9版本的gcc升级回5.x版本:

sudo rm gcc 
sudo rm g++
sudo ln -s gcc-5 gcc
sudo ln -s g++-5 g++

第三个问题:

  解决方法:
  再次打开Makefile文件 ,进行如下修改:

找到LIBRARIES += opencv_core opencv_highgui opencv_imgproc
并在后面加上opencv_imgcodecs:
LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

  三个问题解决后,再次编译:

sudo make clean
sudo make j8

  得到以上结果那么就要恭喜你了,caffe环境马上就安装好了,接下来测试安装,成功如下所示:

sh data/mnist/get_mnist.sh
sh examples/mnist/create_mnist.sh
sh examples/mnist/train_lenet.sh

  接下来编译一些接口已经运行测试:

sudo make pycaffe   #python接口
sudo make matcaffe  

sudo make test
sudo make runtest

  到此caffe安装就圆满完成了。

Ubuntu16.04+CUDA8.0+CUNN5.1+caffe+tensorflow+Theano的更多相关文章

  1. html5录音功能实战示例

    这篇文章主要介绍了html5录音功能实战示例的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. 基于 HTML5 WebGL 实现的医疗物流系统

    物联网( IoT ),简单的理解就是物体之间通过互联网进行链接。这篇文章给大家介绍基于 HTML5 WebGL 实现的医疗物流系统,感兴趣的朋友跟随小编一起看看吧

  3. HTML5页面无缝闪开的问题及解决方案

    这篇文章主要介绍了HTML5页面无缝闪开方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. HTML5跳转小程序wx-open-launch-weapp的示例代码

    这篇文章主要介绍了HTML5跳转小程序wx-open-launch-weapp的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. ios – 如何使用Objective C类中的多个参数调用Swift函数?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  6. ios – Swift 4添加手势:覆盖vs @objc

    我想在我的视图中添加一个手势,如下所示:但是,在Swift4中,我的编译器给出了以下错误:建议添加@objc以将此实例方法公开给Objective-C.实现此目的的另一个选项将覆盖touchesBegan()函数并使用它来处理点击.我试图以“Swift”的方式做到这一点,而不必带入Obj-C.有没有纯粹的Swift方式来添加这个轻击手势而不使用@objc?

  7. ios – 将视频分享到Facebook

    我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

  8. ios – 以编程方式在Swift中添加联系人

    我想在Swift中以编程方式添加联系人.我发现了一些Objective-C示例,但我没有让它们工作,甚至在Objective-C中也没有.我不希望这涉及到AddressBookUI,因为我想从我自己的UI中获取值.解决方法这是在Swift中添加联系人的快速方法.我在我的iPhone5iOS7.1上验证了它,因为我发现模拟器并不总是与我的手机对AB的东西相同.您可以添加一个按钮并指向此方法:顺便说一下–它假设你已经分配了一个地址簿var,你可以通过覆盖viewDidAppear来打开视图.它也会执行安全提示

  9. ios – 为目标c中的方法传递未知类型的参数,可能吗?

    是否可以将未知类型的参数传递给objective-C方法?在C#中你可以写实现这一点,但我知道Objective-C没有泛型,所以有没有其他方法可以在Objective-C中实现这一点?我需要这个,因为我想创建一个方法来改变不同对象的文本颜色,如UITextField和UIButton的占位符文本.所以我的计划是创建一个名为textWhite的方法,然后在此方法中检查对象的类型,然后运行匹配的代码以使文本颜色变为白色.解决方法是的,可以传递未知类型的参数.见下面的例子.请参考使用id对象的链接作为参数Us

  10. ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift

    我有一点似乎没有工作的Swift代码……解决方法您正在指定locationPointer指向新位置,但仍在下一行中使用ptr,并且ptr的值尚未更改.将您的最后一行更改为:或者你可以改变指向var的指针并推进它:

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部