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

Ubuntu版本:16.04.3

Oracle VirtualBox版本:5.0.40

问题:

USB 2.0 is currently enabled for this virtual machine. However, this requires the Oracle VM VirtualBox Extension Pack to be installed.Please install the Extension Pack from the VirtualBox download site. After this you will be able to re- enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.

这是在设置启用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设备

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

执行如下命令安装:

$ sudo apt-get update

#日志位于 /var/log/upstart/docker.log
#解决无法启动 "Shutting down daemon due to errors: Error loading docker apparmor profile: exec: "/sbin/apparmor_parser": stat /sbin/apparmor_parser: no such file or directory ()"
$ sudo apt-get install apparmor

$ sudo apt-get install -y docker.io

启动服务:

$ sudo service docker start

测试服务是否正常:

$ sudo docker run hello-world

创建基础镜像:

$ cd ~

$ mkdir basic_docker

$ cd basic_docker

$ touch Dockerfile

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

#从基础镜像派生,基础镜像从Docker官网下载
FROM ubuntu:14.04

#镜像所有者
MAINTAINER www.mobibrw.com

#安装命令,安装镜像需要的软件
RUN apt-get update && apt-get install -y php5

构建Docker镜像:

#注意 -t 参数指定镜像名,后面可以用":"来指定版本号 比如 “-t basic_docker:1.0"
#创建好的镜像的默认存放路径为"/var/lib/docker"
$ sudo docker build -t basic_docker .

#创建完成后,查看机器上已经创建的镜像列表
$ sudo docker images

运行刚刚创建好的镜像:

#执行之后,当前Shell被切换到了Docker内部的Shell中

$ sudo docker run -t -i basic_docker /bin/bash

导出刚刚创建好的镜像:

$ sudo docker save basic_docker > basic_docker.tar

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

$ sudo docker load --input basic_docker.tar

删除不再使用的镜像:

#停止所有的container,这样才能够删除其中的images
$ sudo docker stop $(sudo docker ps -a -q)
#删除所有container解除对镜像的引用
$ sudo docker rm $(sudo docker ps -a -q)

#创建完成后,查看机器上已经创建的镜像列表 
$ sudo docker images

$ sudo docker rmi ${IMAGE ID}

#想要删除untagged images,也就是那些id为<None>的image的话可以用,注意 awk部分必须是单引号'
$ sudo docker rmi $(sudo docker images | grep "^<none>" | awk '{print $3}')

如果运行时报错:

Error response from daemon: Cannot start container 915xxxxxxxxxx: [8] System error: mountpoint for devices not found

则尝试安装:

$ sudo apt-get install cgroup-bin

参考链接


Ubuntu 14.04.5编译安装OpenCV-2.4.13.5

  • 获取源代码
$ cd ~

$ git clone https://github.com/opencv/opencv.git

$ cd opencv

$ git checkout 2.4.13.5
  • 安装依赖库
$ sudo apt-get install -y cmake

#借助系统自带的opencv简化依赖安装步骤
$ sudo apt-get install -y libopencv-dev
  • 编译源代码
$ cd ~

$ cd opencv

$ mkdir build

$ cd build

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

$ make -j 10

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

$ cd opencv

$ mkdir build

$ cd build

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CPACK_BINARY_DEB=ON ..

$ make -j 10

$ sudo make install

$ sudo cpack runs

#最后在当前目录下生成DEB安装包
  • 替换已经安装的版本
$ sudo make install
  • 编译出错的处理

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

CMake Error at CMakeLists.txt:11 (message):
  

  FATAL: In-source builds are not allowed.

         You should create separate directory for build files.



-- Configuring incomplete, errors occurred!

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

相关链接


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

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

$ sudo parted /dev/vdb mklabe msdos

$ sudo parted /dev/vdb mkpart primary ext4 0% 100%

$ sudo mkfs.ext4 /dev/vdb1

$ sudo mkdir /data
$ sudo mount /dev/vdb1 /data

$ sudo sed -i '$a\/dev/vdb1            /data                ext4       defaults              0 0' /etc/fstab

参考链接


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

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

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

服务器的版本是Ubuntu 16.04.3 Server

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

#解决ssh登陆中文显示问题

$ sudo apt-get install language-pack-zh-hans

参考链接


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

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

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

创建systemd的服务脚本

$ sudo vim /etc/systemd/system/rc-local.service

里面的内容如下:

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

激活服务

$ sudo systemctl enable rc-local.service

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

$ echo '#!/bin/bash\n' | sudo tee /etc/rc.local
#后面是详细的需要开机执行的

#给予脚本执行权限
$ sudo chmod +x /etc/rc.local

参考链接


Ubuntu 14.04及之后版本重启网卡不生效

Ubuntu 14.04修改配置,重启网卡没有生效,出现如下问题:

$ service networking restart //重启网络服务
stop: Job failed while stopping
start: Job is already running: networking


$ tail -f /var/log/upstart/networking.log //查看错误日志
Stopping or restarting the networking job is not supported.
Use ifdown & ifup to reconfigure desired interface.

从以上日志内容可以看出,传统的service重启和停止网络已经不再支持了,需要通过使用ifdown & ifup来实现相应的操作。

$ sudo ifdown eth0 

$ sudo ifup eth0

如果在远程Shell操作的情况,上面的命令可能会只执行了ifdown,然后连接就断开,而无法执行后面的ifup命令,导致无法继续操作。

解决方法是把上面的命令写入一个脚本文件执行:

$ echo 'ifdown eth0 && ifup eth0' >> restart_eth.sh

$ chmod +x restart_eth.sh 

$ sudo ./restart_eth.sh

参考连接


linux Ubuntu14.04及之后版本重启网卡不生效

ubuntu 14.04/ubuntu 17.10做主机双网卡共享上网(NAT)

需求是电脑通过无线上网,然后把有线共享给其他设备,其他设备通过电脑代理上网。

电脑上有两张网卡,一张有线网卡,名字为eth0,一张无线网卡,名字为wlan0

电脑的有线网卡配置的静态IP地址为:192.168.0.1

对于Ubuntu 16.10/17.10系统,请参考 Ubuntu 16.10/17.10无法通过/etc/rc.local开机启动应用 激活系统对于/etc/rc.local功能的支持。

电脑上执行如下命令:

$ echo "1" | sudo tee /proc/sys/net/ipv4/ip_forward

$ sudo iptables -F

$ sudo iptables -P INPUT ACCEPT

$ sudo iptables -P FORWARD ACCEPT

#打开NAT,无线网卡这里大eth0改wlan0
$ sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 

#保存设置信息,下次开机自动开启代理
$ sudo sed -i '$a\net.ipv4.ip_forward = 1' /etc/sysctl.conf

$ sudo sed -i '$a\iptables -F' /etc/rc.local

$ sudo sed -i '$a\iptables -P INPUT ACCEPT' /etc/rc.local

$ sudo sed -i '$a\iptables -P FORWARD ACCEPT' /etc/rc.local

$ sudo sed -i '$a\iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE' /etc/rc.local

此时,由于我们没有开启DHCP功能,因此只能设置静态IP地址。客户机设置如下:
eth0:192.168.0.10 掩码:255.255.255.0 网关:192.168.0.1

参考链接


ubuntu做主机双网卡共享上网方法

ubuntu 17.10/Debian 10无法运行gparted,错误信息“Gtk-WARNING **: cannot open display: :0.0”

ubuntu 17.04/Debian 10无法运行gparted,错误信息“Gtk-WARNING **: cannot open display: :0.0”,具体信息如下:

~$ sudo gparted
Created symlink /run/systemd/system/-.mount → /dev/null.
Created symlink /run/systemd/system/home-longsky-mytest.mount → /dev/null.
Created symlink /run/systemd/system/media-longsky-A624C9D724C9AB1F.mount → /dev/null.
Created symlink /run/systemd/system/run-user-1000.mount → /dev/null.
Created symlink /run/systemd/system/tmp.mount → /dev/null.
No protocol specified

(gpartedbin:5665): Gtk-WARNING **: cannot open display: :0.0
Removed /run/systemd/system/-.mount.
Removed /run/systemd/system/home-longsky-mytest.mount.
Removed /run/systemd/system/media-longsky-A624C9D724C9AB1F.mount.
Removed /run/systemd/system/run-user-1000.mount.
Removed /run/systemd/system/tmp.mount.

具体的解释以及解决方法如下:

If running Ubuntu 17.10/Debian 10 or newer, this issue can arise when an application has not been updated with full support for Wayland. As a workaround until the application is updated, you can run

$ xhost +SI:localuser:root

which will allow the root user to display applications on your desktop.

为了保证每次启动脚本都可以自动执行,可以把上面的命令加入到.bashrc:

$ sed -i '$a\xhost +SI:localuser:root' ~/.bashrc

参考链接


gksu: Gtk-WARNING **: cannot open display: :0