RoboMaster视觉教程Linux(二)软件安装和卸载

RoboMaster视觉教程Linux(二)软件安装和卸载

一 解压压缩命令一览

在下载各种库进行安装的时候,会发现下载的安装包有各式各样的后缀名。不同的后缀名解压的命令也大不相同。其实我们也没有那么普遍要用到解压的命令,当我们有需要的时候就尽管去搜索对应压缩包如何解压即可。不过这里还是应该介绍一下最常用的压缩与解压缩命令。

1.1 zip

# 压缩文件  -r一般用在文件夹的压缩,递归的意思
zip -r test.zip file
# 解压文件
zip test.zip

这个命令一般是我们自己用,比如说我们有文件夹或文件需要传输的时候,我们用zip来进行压缩和解压缩。

1.2 tar

# 压缩文件 file1 和目录 dir2 到 test.tar.gz
tar -zcvf test.tar.gz file1 dir2
# 解压 test.tar.gz(将 c 换成 x 即可)
tar -zxvf test.tar.gz

主要是解压tar.gz压缩包命令比较常用,记住-xvzf这四个参数。

二 usr文件夹解析

系统默认的软件都会被放置到/usr下面这个目录,有点类似windows下的C:/windows 或 C:/Program file的结合体,里面放置的数据属于可分享,不可变动的。比如可以通过网络文件共享NFS。

usr的缩写(UNIX software ResourceUNIX操作系统软件资源)注意不是user的缩写
所以安装双系统时建议/usr目录容量偏大

2.1 /usr/bin/

绝大部分的用户可使用命令都放在这里。请注意到它与/bin的不同之处(是否与开机过程有关)

2.2 /usr/include/

C/C++ 等程序语言的头文件(header)与包含文件(include)放置处,当我们以tarball方式(*.tar.gz的方式安装软件)安装某些数据时,会使用到里头的许多包含文件

2.3 /usr/lib

包含各应用软件的函数库、目标文件(object file),以及不被一般用户管理的执行文件或脚本(script)。某些软件会提供一些特殊的命令来进行服务器的设置,这些命令并不会经常被系统管理员操作,那就会被摆放在这个目录下。如果你使用的是X86_64的Linux系统,那可能会有/usr/lib64目录产生

2.4 /usr/local

在本机自行安装自己下载的软件,建议安装到此目录,这样会比较便于管理,举例来说你的distribution提供的软件较旧,你想安装较新的软件但是又不想删除旧版,此时你可以将新版本软件安装于/usr/local目录下,可与原先的就版本软件有区别。

2.5 /usr/sbin

非系统正常运行所需要的系统命令。最常见的就是某些网络服务器软件的服务命令(daemon)

2.6 /usr/share/

放置共享文件的地方,这个目录下放置的数据几乎是不分硬件架构均可读取的数据,因为几乎都是文本文件,再次目录下常见的还有这些子目录:

1、/usr/share/man:在线帮助文件

2、/usr/share/doc:软件杂项的文件说明

3、/usr/share/zoneinfo:与时区有关的时区文件

2.7 /usr/src/

一般源码建议放置到这里,src有source,的意思。至于内核源码则建议放置到/usr/src/linux目录下

三 源码安装实例如ffmpeg以及Open CV

Linux软件安装的方式有很多:

比如利用apt命令进行安装,安装后的文件会放在usr下,分门别类到usr/bin/、usr/lib、usr/include等文件夹中。

比如下载安装包,各种可执行文件,然后执行该文件即可安装。

再或者利用源码编译,生成适合自己硬件平台的可执行文件,执行后安装到usr/local下,分门别类到usr/local/bin/、usr/local/lib/、usr/local/include/、usr/local/share/等文件夹中。作为程序员,我们一般选择这种方式。因为可以自己配置软件的各类参数。

3.1 AutoTools及CMake及qmake

构建源码的工具有很多,ffmeg用AutoTools构建,Open CV用CMake构建,我在RoboMaster视觉教程Qt(一)Qt5环境配置及测试一文里介绍的flameshot软件利用qmake构建。

详细安装过程可以看发过的文档。RoboMaster视觉教程OpenCV(一)Qt5环境配置及测试

3.1.1 AutoTools

为了简化可移植构建的难度,早期有一套AutoTools的工具帮助程序员构建软件。configure,make,make install三部曲,大多都是基于Auto Tools来构建的。Auto Tools是GNU程序的标准构建系统。

configure脚本是由软件开发者维护并发布的给用户使用的shell脚本。该脚本的作用是检测系统环境,最终目的是生成Makefile和configure.h。
make通过读取Makefile文件,开始构建软件。
make install可以将软件安装到默认(usr/local)或者指定的系统路径

3.1.2 CMake

cmake命令生成Makefile。 -D配置参数
make通过读取Makefile文件,开始构建软件。
make install可以将软件安装到默认(usr/local)或者指定的系统路径

3.1.3 qmake

qmake生成makefile
make通过读取Makefile文件,开始构建软件。
sudo make install可以将软件安装到默认(usr/local)或者指定的系统路径

大家可以发现,根据源码编译,只是生成Makefile的命令不同,make和make install都是必须的。而且必须使用sudo管理员权限。另外,只有将这些头文件、库文件安装到usr/local目录下,我们在使用代码时才可以调用这些库的函数。

另外,在ffpeg下载官网 http://www.ffmpeg.org/download.html 大家可以看到下图,除了下载源码之外,还有静态编译版本Linux Static Builds
在这里插入图片描述

这个静态版本因为将动态库都编到可执行文件中的缘故,不需要额外下载各种库,比如x264、yasm等等,而且配置参数都是默认的,安装了很多库,可以说很全面了。有了这个库,我们当然可以直接调用ffmpeg命令,进行各种音视频操作,但是因为它没有在usr命令下安装库文件等等,我们在OpenCV安装时会发现无法链接到FFmpeg,使用ln –s 源文件 目标文件进行链接也不管用。所以使用最好使用源码编译吧。

3.2 卸载方式

如果想要重新配置软件,可以选择卸载后重装。也可以在另一个路径重新安装这个软件。因为Linux下源码安装,实际上解释在某一路径下生成各种文件。

此处建议在./configure cmake qmake安装软件时,指定安装路径。如./configure --prefix=/usr/local/ffmpeg

这样方便软件移植卸载,比如说卸载FFmpeg,直接删除这个FFmpeg文件夹即可。

3.2.1 make uninstall

如果没有指定一个具体的路径,那么所有的软件都会在usr/local路径下,分门别类将自己的文件放到各个文件,比如usr/local/bin文件夹下,就有可能有ffmpeg以及opencv的可执行文件,都在一个文件夹下。那么就不确定哪个文件属于哪个,不方便手动删除。这是可以在原本的源码构建目录下使用make uninstall命令,可以自动删除软件。

索性,ffmpeg和opencv都可以使用make uninstall命令。

3.2.2 查找删除

如果没有配置--prefix选项,源码包也没有提供make uninstall,则可以通过以下方式可以完整卸载:

一个临时目录重新安装一遍,如:

$ ./configure --prefix=/tmp/to_remove && make install

然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。

源码安装卸载参考阅读: https://www.linuxidc.com/Linux/2019-03/157703.htm
所以,配置好路径之后,就可以删除源码包了。

微信公众号

欢迎大家关注我的个人公众号,现阶段主要总结Robomaster相关的计算机视觉知识。
公众号名称:三丰杂货铺
在这里插入图片描述

©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页