源代码安装-非ROOT用户安装软件的方法
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.zip
unzip 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//opencvMine/opencv-2.4./install/bin:$PATH
export LD_LIBRARY_PATH=/home/bert//opencvMine/opencv-2.4./install/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=/home/bert//opencvMine/opencv-2.4./install/lib:$LIBRARY_PATH
export PKG_CONFIG_PATH=/home/bert//opencvMine/opencv-2.4./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/
源代码安装-非ROOT用户安装软件的方法的更多相关文章
- 非root用户安装软件
下面简要说一下Linux下非root用户安装软件的一般流程: 1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar - ...
- Linux 下非 root 用户安装 theano(配置 GPU)
非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...
- Linux环境(服务器)下非root用户安装Python3.6
Linux环境(服务器)下非root用户安装Python3.6 在管理实验室集群时候,遇到的问题--非root用户在搭建自己环境时候,如何搭建. 注意: root用户的根目录是root,非root用户 ...
- Linux 以非root用户安装zsh&配置on my zsh
此文章参考以下三篇文章,如有侵权请联系 Linux非root用户安装zsh, 并用oh-my-zsh进行配置 在没有sudo权限的Linux服务器下安装oh-my-zsh 不使用root权限安装zsh ...
- Linux下非root用户安装软件的一般流程:
1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可 3. 切换到解压后的目录, ...
- Linux系统非root用户安装perl模块
非root权限安装perl 在使用Linux或是unix时,perl是一个非常有用的脚本的语言. 关于perl的模块安装,网上也有很多介绍,一方面可以通过不同套件自带的软件安装工具安装,一方面可以通过 ...
- 非root用户安装科学计算包blas、lapack和FFTW
一.安装FFTW 1.下载安装包 下载地址:http://www.fftw.org/download.html 2.编译安装 tar -zxvf fftw-3.3.10.tar.gz cd fftw ...
- perl 下使用非root用户安装模块
perl下安装模块可以使用cpan命令,但是通常我们不具有root用户权限,所以只能以sudo方式安装模块. 例如需要安装Net::SCP::Expect模块, 执行cpan Net::SCP::Ex ...
- zzw_非root用户安装python3.5
目的:不想改变linux 自带的python,只想要用特定的非root用户运行特定版本的python 1.进入非root用户 2.新建一个python3.5的安装目录 [a4_csbdc@bdc816 ...
随机推荐
- Reading Lines from File in C++
Reading Lines from File in C++ In C++, istringstream has been used to read lines from a file. code: ...
- 2018-2019-1 20189206 《Linux内核原理与分析》第九周作业
#linux内核分析学习笔记 --第八章 进程的切换和系统的一般执行过程 学习目标:重点关注进程切换的过程,进程调度的时机,操作系统的基本构成以及一般的执行过程. 进程调度的时机 因为进程的调度只发生 ...
- 剑指offer(32)把数组排成最小的数
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 题目分析 主 ...
- 尚硅谷面试第一季-13git分支相关命令
课堂重点:分支相关命令 实际应用-工作流程 实操命令及运行结果: 创建master分支并提交 git init git add . git commit -m "V1.0" git ...
- Day 10733 使用独立安装包安装.Net Framework 4.6.2时,提示『无法建立到信任根颁发机构的证书链』
出现该问题的原因是未能更新本机的受信任证书颁发机构证书列表,导致安装包验证失败,以下几种情况可以造成此问题: 1.安装该运行库的系统未接入互联网: 2.安装该运行库的系统所在的网络环境,屏蔽了对微软受 ...
- Intellij IDEA 设置启动JVM参数
目录 采用CMS垃圾回收配置: 采用G1垃圾回收配置: 参数说明: 通用参数: CMS机制才有的参数: G1机制才有的参数: 参考: 打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 v ...
- mvc 之 配置EF+oralce
只需要在项目中加载nuGet包就可以了 操作:工具--nuGet包管理器--程序包管理器控制台 在 PM>处输入 install-package entityframework 加载sqlser ...
- [js] - 前端FileReader使用,适用于文件上传预览.(并未传入后端)
<body> <div class="box"> <div class="container"> <ul> &l ...
- 同事在使用shiro后遇到的异常
一切配置按照demo来的,给他讲了一遍捋顺了.然后之前他做的demohim按照他网络摘抄的shiro博客看的. 然后注册了,正常,登录,提示密码不匹配. 问题出在注册的密码加密次数是2, 而shiro ...
- 7、zabbix使用进阶(03)
节知识点: zabbix自动发现 web监控 zabbix自动发现 官网:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/ ...