我修改了https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/2.4/opencv2_4_10.sh的脚本,尝试将OpenCV 2.4.13安装到运行Ubuntu 14.04的vm上,我有sudo权限。我是openCV,cmake& amp;的新手。如此任何帮助让这个脚本工作将不胜感激,因为我必须在20伏安装它。
运行几分钟后,脚本会返回错误,上面写着“不能
” /bin/sh: 1: cd: can't cd to /home/myaccount/setups/OpenCV/opencv-2.4.13/build
和
make[2]: *** [3rdparty/libtiff/CMakeFiles/libtiff.dir/depend] Error 2
make[1]: *** [3rdparty/libtiff/CMakeFiles/libtiff.dir/all] Error 2
输出的最后几行包含在下面,脚本就在此之前。
有关脚本无法成功完成或如何更正权限问题的任何想法?
额外详情
我不确定这些是否相关,但当我深入研究这个问题时,我会更新此部分
make install V=1
时,它构建100%,然后报告
- 安装配置:" RELEASE" cmake_install.cmake上的CMake错误:36(文件):文件无法创建目录:/ usr / local / include / opencv2。可能需要管理权限 sudo make install V=1
时,我得到了#!/bin/bash
添加到我的脚本开头并没有解决它umask
setups文件夹(其中脚本运行并创建目录为0022
。setups文件夹的权限为755
,group = Domain Users
,Owner = {{1这是创建源文件文件夹的位置,以及创建后也是myaccount
的构建文件夹脚本
755
命令输出
arch=$(uname -m)
if [ "$arch" == "i686" -o "$arch" == "i386" -o "$arch" == "i486" -o "$arch" == "i586" ]; then
flag=1
else
flag=0
fi
echo "Installing OpenCV 2.4.13"
mkdir OpenCV
cd OpenCV
echo "Removing any pre-installed ffmpeg and x264"
sudo apt-get -y remove ffmpeg x264 libx264-dev
echo "Installing unzip"
sudo apt-get -y install unzip
echo "Installing Dependenices"
sudo apt-get -y install libopencv-dev
sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
sudo apt-get -y install libtiff4-dev libjpeg-dev libjasper-dev
sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev
sudo apt-get -y install python-dev python-numpy
sudo apt-get -y install libtbb-dev libeigen3-dev
sudo apt-get -y install libqt4-dev libgtk2.0-dev
sudo apt-get -y install libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-core-dev
sudo apt-get -y install x264 v4l-utils ffmpeg
sudo apt-get -y install libgtk2.0-dev
echo "Downloading OpenCV 2.4.13"
if ! [ -f "OpenCV-2.4.13.zip" ]; then
wget -O OpenCV-2.4.13.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.13/opencv-2.4.13.zip/download
fi
echo "Installing OpenCV 2.4.13"
if ! [ -d "opencv-2.4.13" ]; then
unzip OpenCV-2.4.13.zip
fi
rm OpenCV-2.4.13.zip
cd opencv-2.4.13
rm -rf build
mkdir build
cd build
cmake -D CUDA_ARCH_BIN=3.2 -D CUDA_ARCH_PTX=3.2 -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D BUILD_TIFF=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make -j$(nproc)
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
echo "OpenCV 2.4.13 ready to be used"
答案 0 :(得分:0)
我的脑海中浮现出什么来解释缺少权限问题:如果您的/home
在NFS上,root
可能会nobody
拥有root
个文件的权限。有很多related questions on StackExchange。
我的解决方案是首先尝试将第三方软件安装为root
。执行make install
后,您的/usr/local
可以执行任何,包括添加或覆盖已由您的软件包管理器管理的文件。这可能会使包管理器感到困惑甚至使您的系统无法使用。最好在其他地方安装软件;为此目的创建了/opt
和local
。为了确保您的安装过程不会偏离此,您可以为该用户创建不同的用户(我称之为chown -R
),sudo -u local
这些目录,并使用{{1}进行安装而不是sudoing到root
。对于大多数安装来说这都没问题,如果你遇到一个试图做一些需要root
权限的事情(例如将文件写入/etc
或/usr/bin
,重启系统服务,那就太狡猾了)有权限的东西等),它将失败并显示错误消息,允许您在它已经发生之前决定是否需要它。我不知道OpenCV是否需要任何这样的步骤。