Ubuntu小记
一、 Ubuntu分区记忆
参考教程调整:
1. /boot用于安装grub,设为主分区
2. /根目录20G一般足够
3. /home剩下的给home
4. swap空间=物理内存
挂载点 | 大小 | 类型 | 新分区位置 | 用于 |
---|---|---|---|---|
/boot | 200M | 主分区 | 空间起始位置 | EXT4日志文件系统 |
/ | 20G | 逻辑分区 | 空间起始位置 | EXT4日志文件系统 |
/home | 剩余空间 | 逻辑分区 | 空间起始位置 | EXT4日志文件系统 |
不设置 | 2G | 逻辑分区 | 空间起始位置 | 交换空间 |
二、最小化窗口
命令行中手动开启:
gsettings set org.compiz.unityshell:/org/compiz/profiles/unity/plugins/unityshell/ launcher-minimize-window true
发现报错:
安装:gconf-editor
sudo apt-get install gconf-editor
再手动开启即可
参考:
https://blog.csdn.net/CareyTian/article/details/80170589
https://zhidao.baidu.com/question/923401708407265259.html
三、 手动更新谷歌浏览器
不更新就不能同步书签
sudo apt-get update
sudo apt-get install -y google-chrome-stable
参考:https://blog.csdn.net/jiangjiang_jian/article/details/62074283
四、大型作死现场之——重装PCL1.8为1.7 在1.8的基础上装1.7
实验室里的小伙伴都说,PCL不好卸载。但是,作为一个具有冒险(作死)心态的我,怎么可以不尝试一下呢?
但是卸载之前的工作,一样都不能少。
首先是卸载风险评估,卸载后,系统是不会挂的(别问我为什么知道,我只能这么猜)。假设只有点云库收到影响。因为Ubuntu中软件的安装和卸载都真的不是很友好,很容易就gg,万一连带系统也挂了,那就不好了。如果不能接受这个,请老老实实维持原状。我已经预装并且配置好了另外一台备用电脑,于是就有了这个踩坑指南。
那么我自己的情况是怎么样呢?因为在跑rgbdslamv2中,编译的问题。把点云库升级为1.8,但是,跑很多旧版代码,却经常报些莫名其妙的错误。误踩坑浪费了长达一个多星期的时间,最终在另外一台电脑上,PCL1.7版本下,居然没有报错。
好了,重装是要重装的。问题是,怎么重装呢?听说过最惨的情况就是,把pcl卸了然后装上,结果各种其他问题。上述说的ubuntu系统套不友好问题。于是,果断放弃直接卸载的做法。
现在冷静想一想,按道理,安装ROS kinetic时,是1.7的版本,如果说卸载是一见风险很大的做法,那么我升级应该也是才对。但是我却安然无恙,所以是我真的这么幸运,没有踩到重装系统的坑呢,还是,pcl的重装,根本就没有这么可怕?
带来的思考就是:重装方式,分为两种,一种是卸载后安装,一种是直接覆盖安装。覆盖安装又有两种,一种是新版本覆盖旧版本,另一种是旧版本覆盖新版本。
回头查看编译rgbdslamv2的博客文件,发现我并没有卸载,而是直接用1.8的版本覆盖掉1.7的,并且,我还尝试着,用1.8的再直接覆盖1.8的。一直没什么问题。
如果不进行卸载,直接进行覆盖安装,显然,新版本覆盖旧版本是行得通的。但是,如果是旧版本覆盖新版本呢?这个情况能和往常一样吗?我们拭目以待。
很明显的普通安装套路,新建文件夹,下载,解压,编译,运行,安装。
这里,我直接修改源代码为:
cd ~/Downloads
mkdir nozuonodie
cd nozuonodie
wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.7.2.tar.gz
tar -xvzf pcl-1.7.2.tar.gz
cd pcl-pcl-1.7.2
mkdir build
cd build
cmake ..
make -j4 VERBOSE=1
sudo make install
修改cmakelist.txt,在其第122行加入并保存
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
按道理是很快搞掂的,结果cmake ..时,报了一大堆错太长了这个错误代码。找了很多种方法,都无济于事。
结果是因为本身的点云库版本问题,于是选择了1.7.2之后,也就是上面的代码,才能正常make。(注意:1.7.0和1.7.1都不行)
留意标题,本来ros完整版安装时就已经装上了pcl,但是我又装了1.8版本。
经过上面的代码,又再次装上了1.7.
于是系统中有3个pcl版本,3个啊我的天!
外置pcl 卸载:删除/usr/local/子目录下所有pcl的文件,即bin、include、lib、share(当中可能有些文件夹中的pcl文件不需要删除也行,没试过,反正我全删)
(1)删除/usr/local/include/pcl,指令为sudo rm -rf /usr/local/include/pcl;(具体看名称pcl版本)
(2)删除/usr/local/lib下有关libpcl_*.so的库文件,先进入目录cd /usr/local/lib,然后多个同时删除sudo rm -rf lib*
(3)删除/usr/local/bin、/usr/local/share同理
反正所有与pcl有关的统统删除即可
————————————————————————
后记:删除自己装的pcl后,再编译ros时,发现很多问题,与pcl有关的必须重新再装一遍
sudo apt-get install ros-kinetic-pcl-conversions ros-kinetic-pcl-ros ros-kinetic-pcl-msgs
装完也就算了,还需要装cv_brige,神奇
sudo apt-get install ros-kinetic-cv-brige
最后,再
sudo apt install update
sudo apt install upgrade
开启Realsense相机报错
ERROR] [1538470884.109883734]: Failed to load nodelet [/camera/realsense2_camera] of type [realsense2_camera/RealSenseNodeFactory] even after refreshing the cache: Failed to load library /home/william/catkin_ws/devel/lib//librealsense2_camera.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = libopencv_core3.so.3.3: cannot open shared object file: No such file or directory)
[ERROR] [1538470884.109915140]: The error before refreshing the cache was: Failed to load library /home/william/catkin_ws/devel/lib//librealsense2_camera.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = libopencv_core3.so.3.3: cannot open shared object file: No such file or directory)
[FATAL] [1538470884.110112599]: Failed to load nodelet '/camera/realsense2_camera` of type `realsense2_camera/RealSenseNodeFactory` to manager `realsense2_camera_manager'
[camera/realsense2_camera-3] process has died [pid 1810, exit code 255, cmd /opt/ros/kinetic/lib/nodelet/nodelet load realsense2_camera/RealSenseNodeFactory realsense2_camera_manager __name:=realsense2_camera __log:=/home/william/.ros/log/bca07aa6-c621-11e8-81f6-30b49ea6df95/camera-realsense2_camera-3.log].
log file: /home/william/.ros/log/bca07aa6-c621-11e8-81f6-30b49ea6df95/camera-realsense2_camera-3*.log
source ~/.bashrc就好了
参考:
https://blog.csdn.net/zhuoyueljl/article/details/78536996?reload
https://blog.csdn.net/hookie1990/article/details/78268888
https://answers.ros.org/question/272151/could-not-find-a-package-configuration-file-provided-by-cv_bridge/