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/

原文地址:https://www.cnblogs.com/linweilin/p/9714980.html