0.    前言

如果你没有sudo权限,则很多程序是无法使用别人编译好的文件安装的。

还有时候,没有对应你的主机配置的安装包,这时候需要我们自己下载最原始的源代码,然后进行编译安装。

这样安装的程序,是最符合我们本机配置的。

源代码编译安装,主要有两种方式:

1.    第一种:通过./configure方式安装

主要参考:

  • https://www.linuxidc.com/Linux/2010-12/30903p2.htm
  • http://blog.sciencenet.cn/blog-1161758-897198.html

1.1    主要过程

注意3. 里面的prefix前面是两个横线,不是一个,原文写错了

下面简要说一下Linux下非root用户安装软件的一般流程:

1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码。

2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可

3. 切换到解压后的目录,运行 ./configure。其选项可以通过 ./configure –help来获取,非root用户下最重要的应该是定义安装目录,即应该定义 ./configure --prefix=/path/to/bin, 对于一些依赖库,可能还需要使用 ./configure  –prefix=xxx -with-xx-dir=xxx这种形式。

4. 接着是编译源代码和安装软件: make &&  make install。这两条命令可以分开来用,因为编译的时候可以指定参数 -j来并行编译,这样能够加快编译进度。。

5. 更新path路径。使用export PATH=/path/to/bin:$PATH,这句话在shell窗口运行只在本次会话中有效,可以将其写到.bashrc或者.bash_profile里面使其对当前用户有效。

6.如果安装的是动态链接库,则需要更新动态链接库路径: export LD_LIBRARY_PATH=/path/to/library:$LD_LIBRARY_PATH,同样是export命令,最好将其写在.bashrc这类文件下面以便登陆的时候自动调用。

下面这种方式仍然必须要sudo权限

如果.so文件找不着,应该是在编译过程中的prefix没有制定好,或者是.bashrc文件中的LD_LIBRARY_PATH写错了

1.2    动态链接库.so文件找不到的问题

参考:https://www.linuxidc.com/Linux/2017-05/143820.htm

其中最推荐的方法是创建软链接的方法,的确很有效。在已经尝试过在.bashrc中添加动态库还是找不到后,这种方法却很有用。

常用命令:

创建动态库软连接:ln -s [动态库] [待创建的软链接]

例子:

sudo ln -s /home/yourpath/lib/your.so /usr/lib

动态库是要把绝对路径一直写到具体的.so的,不是写到lib文件夹就行了

2.    使用cmake进行编译

这里以OpenCV为例,服务器上已经用SUDO方式安装了Open CV3.0,这里自己要在自己的文件夹下安装2.4版本

下面正式开始:

2.1    获取源代码:

注意一定是源代码包

wget https://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.13/opencv-2.4.13.zip

然后重命名为.zip后缀并解压

mv 2.4 2.4.zipunzip 2.4.zip

2.2    编译:

首先看一下解压后的目录都有什么:

发现了CMakeLists.txt,说明可以使用cmake: 这里是解释:[1]

CMake的用途是能通过一系列的源码和相关的配置来生成需要的编译器平台上的项目文件。譬如,如果一个项目需要在Windows上用VS编译,在Linux上用make编译,在OS X上用XCODE,那么按以前的做法是在整个项目文件里看三个目录,分别放置VS的sln文件,linux的makefile,OS X的XCODE,然后让不同需求的人到相应的目录用自己需要的工程文件(这看起来没有什么不好似乎)。有了CMake以后,就不需要这三个目录了,只要有一个给CMake读的文件(下文中的红字部分),然后CMake的UI上会需要用户选择目标平台,这样CMake就会生成目标平台上的工程文件。举例,如果用户选的是VS2005平台,那么CMake就会在源代码目录下生成供VS2005使用的。sln文件;如果是make,就会生成makefile等等。

然后执行以下命令以使用cmake来查找make所需的文件:[3] [4]

// 目前在解压后的目录中
mkdir install //一会要安装的位置
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=../install ..
// 使用cmake的选项指定安装目录为 install 文件夹

如果都找到了,可以开始编译了:

make -j16
make install -j16

2.3    添加环境变量

编译完成还要告诉系统去哪里找OpenCV 2.4版本,所以要添加环境变量

这里因为使用的是zsh而不是bash(具体两个shell的区别请自己查),所以需要:

(如果使用了bash,则第一行输入为 vi~/.bashrc,之后都一样)

vi ~/.zshrc// 然后在最后添加以下几行:
export PATH=/home/bert/201708/opencvMine/opencv-2.4.13/install/bin:$PATH
export LD_LIBRARY_PATH=/home/bert/201708/opencvMine/opencv-2.4.13/install/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=/home/bert/201708/opencvMine/opencv-2.4.13/install/lib:$LIBRARY_PATH
export PKG_CONFIG_PATH=/home/bert/201708/opencvMine/opencv-2.4.13/install/lib/pkgconfig/*
第一行表示安装路径
第二、三行表示链接库的路径
第四行最关键,“pkg-config 是一个在源代码编译时查询已安装的库的使用接口的计算机工具软件。”(维基百科)
*/

第四行的添加方法参考了 [5]

2.4    检验安装是否成功

查看当前OpenCV版本:

pkg-config --modversion opencv

至此,查询版本时就会是2.4了,如图,大功告成

参考文献

[1] http://blog.csdn.net/lhfslhfs/article/details/7288479

[3] http://blog.csdn.net/qq_20965753/article/details/64138647

[4] http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html

[5] https://prateekvjoshi.com/2013/10/18/package-opencv-not-found-lets-find-it/

转载于:https://www.cnblogs.com/QingHuan/p/7278357.html

源代码安装-非ROOT用户安装软件的方法相关推荐

  1. Linux下软件安装 非root用户安装软件的一般流程

    Linux下的软件安装 Linux下的软件安装,实质上有如下四种,"正规"程度依次递减: 使用标准的yum/apt/yast包管理程序安装 比如:sudo apt-get inst ...

  2. linux装软件需要root用户,Linux下非root用户安装软件的一般流程:

    1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可 3. 切换到解压后的目录, ...

  3. 手机安装python3.5_zzw_非root用户安装python3.5

    目的:不想改变linux 自带的python,只想要用特定的非root用户运行特定版本的python 1.进入非root用户 2.新建一个python3.5的安装目录 [a4_csbdc@bdc816 ...

  4. 非root用户安装软件

    下面简要说一下Linux下非root用户安装软件的一般流程: 1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar - ...

  5. linux上验证cudnn是否安装成功_非root用户安装cuda与cudnn

    很多小伙伴都和我抱怨(其实我自己也是)服务器上管理员已安装好显卡驱动或已安装的CUDA版本无法满足自己要求(要么太高要么太低),与自己需要的TensorFlow或者Pytorch版本不兼容,急的头皮发 ...

  6. Linux 下非 root 用户安装 theano(配置 GPU)

    非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...

  7. linux非root用户安装jdk1.8

    # linux非root用户安装jdk1.8 如题,先到 Oracle 官方网站 下载1.8版本的 JDK 压缩包(jdk-8u221-linux-x64.tar.gz)到本地(如D盘的soft目录) ...

  8. linux python pexpect,Linux pexpect非root用户安装

    来由 想来想去要用pexpect来取代bash脚本作ssh自动登录,然后就去准备安装pexpect包了 走过的路 前提: 1.主机无法使用root用户 2.主机处于离线状态 3.主机python版本2 ...

  9. Linux 非root用户安装CUDA,CUDNN

    Linux 非root用户安装CUDA,CUDNN 网上很多是root权限下的安装,这篇是利用非root权限进行安装 1.安装显卡驱动(决定CUDA安装的最高版本) 服务器上已安装好了显卡驱动,检查已 ...

最新文章

  1. stc单片机 读写flash_STM32单片机基础知识杂谈(1)
  2. forward 方法详解 java_详解Java从后台重定向(redirect)到另一个项目的方法
  3. sockaddr类型重定义
  4. Nginx根据路径设置静态资源
  5. android 自定义banner样式_Android中Banner的指示器自定义View
  6. TCP,UDP,IP数据包格式详解
  7. (11)Redis------分布式锁的实现方式之一(基于Springboot项目搭建)
  8. 海信LINUX系统改安卓,如何获取海信电视的root许可一键单击海信Smart TV的root卸载内置软件...
  9. 阿里巴巴的微服务开源之路
  10. 爬虫---实现英语翻译(有道翻译)
  11. pdf工具类 (pd4ml)
  12. 最近羊毛小更新 青龙面板 薅羊毛 22/6/6更新
  13. 与蜂窝连接的无人机的空地干扰缓解
  14. div设置为可获取焦点并且判断是否已获取焦点的方法
  15. 信用社考试计算机知识,农村信用社考试计算机知识模拟试题及答案
  16. 计算机模拟人脑的智能行为叫,模拟人脑结构方可实现强人工智能目标
  17. iOS开发如何生成标准的二维码图片
  18. Python使用opencv打开笔记本摄像头时遇到的问题及解决办法
  19. 《超效率手册》读书笔记
  20. matlab内弹道程序计算,火炮内弹道求解与计算

热门文章

  1. 从FCKEDITOR到ckeditor(二) 撰写自定义对话框,增加数学公式(与webEq的结合)
  2. 透视WPF 应用程序的利器
  3. html 设置div占位符,HTML5+CSS3 一组文本输入框占位符动效
  4. CCS卸载安装过程及所遇问题
  5. 修改can接口波特率_CAN总线分析仪使用
  6. 海岛奇兵服务器维护费,坑爹啊! 海岛奇兵额外建筑工被疯狂吐槽!
  7. 系统无法正确检测到盘符
  8. 如何让语音助手通过图灵测试
  9. import win32api 安装pip install pypiwin32
  10. 聊聊 scala 的模式匹配