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

网友投稿 600 2022-11-16

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

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

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

文章目录

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

​​一 解压压缩命令一览​​

​​1.1 zip​​​​1.2 tar​​

​​二 usr文件夹解析​​

​​2.1 /usr/bin/​​​​2.2 /usr/include/​​​​2.3 /usr/lib​​​​2.4 /usr/local​​​​2.5 /usr/sbin​​​​2.6 /usr/share/​​​​2.7 /usr/src/​​

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

​​3.1 AutoTools及CMake及qmake​​

​​3.1.1 AutoTools​​​​3.1.2 CMake​​​​3.1.3 qmake​​

​​3.2 卸载方式​​

​​3.2.1 make uninstall​​​​3.2.2 查找删除​​

一 解压压缩命令一览

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

1.1 zip

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

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

1.2 tar

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

主要是解压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-官网 大家可以看到下图,除了-源码之外,还有静态编译版本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​​选项时的目录结构)。

源码安装卸载参考阅读: 所以,配置好路径之后,就可以删除源码包了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用ByteArrayOutputStream实现将数据写入本地文件
下一篇:sqlite3学习笔记(一)Linux环境安装
相关文章

 发表评论

暂时没有评论,来抢沙发吧~