ubuntu 14.04.5下安装多版本Python(2.7.6/3.4.3/3.6.4)

系统环境:ubuntu14.04.5 LTS,系统默认的python版本为2.7.4/3.4.3

但是实际工作中,某些通过pip安装的开发包需要不低于某个版本的python才能正常工作,比如ansible-2.4.2.0,明确只支持python-3.5以上的版本。在低版本的python上,无法正常运行。

而如果我们贸然更新系统python版本的话,会导致系统异常。因此我们借助pyenv实现基于用户的python版本定制。

安装pyenv

查看可以安装的python版本:

这里以安装python-3.6.4为例,首先安装依赖:

安装python

该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包之后重新执行该命令。

安装完成之后,需要使用如下命令对数据库进行更新:

查看当前已经安装的python版本

其中星号代表是当前系统正在使用的python版本是系统自带的。

设置全局的python版本

从上面,我们可以看出来当前的python版本已经变为了3.6.4。也可以使用pyenv localpyenv shell临时改变python的版本。

如果需要还原设定的python版本为系统自带的版本,则执行如下命令:

确认python版本

上面的操作会导致在当前用户下,执行python或者python3命令的时候都会被定向到python-3.6.4,如果只想执行python3命令的时候被定向到python-3.6.4,则可以直接删除python这个链接:

安装pip

安装完成之后,需要使用如下命令对数据库进行更新:

注意事项:
  • 输入python即可使用新版的python
  • 系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响
  • 使用pip安装第三方模块时会安装到~/.pyenv/versions/3.6.4下,不会和系统模块发生冲突
  • 使用pip安装模块后,可能需要执行pyenv rehash更新数据库

参考链接


Ubuntu 16.04.3系统VirtualBox-5.0.40使用USB设备

Ubuntu版本:16.04.3

Oracle VirtualBox版本:5.0.40

问题:

这是在设置启用USB时提示的错误。关于如何启用UbuntuOracle VM VirtualBoxUSB功能 (Oracle VM VirtualBox设置USB启用USB控制器启用USB 2.0 ECHI控制器)--如果你没有安 装Oracle VM VirtualBox Extension Pack的话,那么这时就会弹出一个提示框,提示上面给出的那段英文提示。

继续阅读Ubuntu 16.04.3系统VirtualBox-5.0.40使用USB设备

ROS国内镜像

从国外下载ROS安装包,有时候会非常耗时。国内镜像的地址参考如下:

参考链接


ROS/Installation/UbuntuMirrors

Ubuntu 14.04.5系统安装Docker-1.6.2操作基础镜像

执行如下命令安装:

启动服务:

测试服务是否正常:

创建基础镜像:

接下来,就是Dockerfile里面的内容了:

构建Docker镜像:

运行刚刚创建好的镜像:

导出刚刚创建好的镜像:

其他机器上加载我们导出的镜像:

删除不再使用的镜像:

如果运行时报错:

则尝试安装:

参考链接


Ubuntu 14.04.5编译安装OpenCV-2.4.13.5

  • 获取源代码

  • 安装依赖库

  • 编译源代码

如果要生成DEB安装包,则上面的命令修改成

  • 替换已经安装的版本

  • 编译出错的处理

如果执行cmake时候出现如下错误信息

则应该是在代码根目录下直接执行过cmake,导致根目录下生成了CMakeCache.txt,需要删除CMakeCache.txt再次执行编译即可。

相关链接


Ubuntu 14.04.5源代码编译ROS Indigo并建立自己的DEB安装源

正常情况下我们使用已经编译好的ROS安装包来安装配置默认的ROS环境,就可以比较好的完成工作了。具体参考Ubuntu14.04安装和配置ROS Indigo

但是在某些情况下,比如,我们需要替换或更新里面的某些默认安装包的版本(比如OpenCV)。

这种情况下,我们就只能重新从源代码开始编译,或者构建自己的安装源了。

上面的操作是生成完整的文件,然后再拷贝到需要安装的最终目录(--install-space /opt/ros/$ROS_VER_NAME指定),但是并没有生成DEB格式的安装包。

如果我们需要建立自己的安装源,那么参照上面的操作,并且正常编译完成后,使用下面的步骤编译安装包:

至于如何建立自己的源,请参考:建立自己的apt-get源

对于替换OpenCV重新编译的情况,参考Ubuntu 14.04.5编译安装OpenCV-2.4.13.5,然后执行sudo apt-get remove libopencv-dev&&sudo apt-get autoremove && rm -rf ~/ros_catkin_ws/install_isolated 删除已经安装好的OpenCV以及临时文件,然后重新编译ROS源代码。最后可以从~/ros_catkin_ws/install_isolated/share/cv_bridge/cmake/cv_bridgeConfig.cmake中看到已经链接刚刚编译安装的OpenCV版本了。

参考链接


腾讯云挂载数据盘(Ubuntu 16.04.3 LTS)

腾讯云介绍的挂载数据盘的操作比较繁琐,如果只有一块数据盘,并且数据盘只创建一个分区,而且磁盘空间不超过2TB,可以使用下面的方法:

参考链接


使用 MBR 分区表分区并格式化

Ubuntu 16.04.3 Server使用SSH登陆中文显示为乱码

最近尝试迁移向腾讯云,然后通过SSH登陆到服务器,发现编辑脚本的时候中文会显示为乱码。

服务器的版本是Ubuntu 16.04.3 Server

解决方法非常简单,执行如下命令即可:

参考链接


Ubuntu server 中文环境方格乱码解决方法

Ubuntu 16.10/17.10无法通过/etc/rc.local开机启动应用

最新的Ubuntu 16.10/17.10上已经找不到/etc/rc.local这个文件了。但是我们很多配置都是写在这个文件里面的,因此如果直接按照systemd配置服务的话,需要修改很多。这里我们使用一个比较简单的兼容方案。

创建systemd的服务脚本

里面的内容如下:

激活服务

手工创建或者拷贝已有的/etc/rc.local,这里我们以手工创建为例子:

参考链接