关于ubuntu16.04:基于Ubuntu1604的ORBSLAM2环境配置

ORB-SLAM2环境配置随着ORB-SLAM2和ORB-SLAM3的流行,越来越多的人踏入到了SLAM这个畛域中,本文对ORB-SLAM2的配置环境进行介绍。硬件根底:内存、硬盘足够零碎:Ubuntu16.04 接下来介绍配置过程(老手小白只须要跟着这个步骤一步一步地来即可) Step1:因为我应用的虚拟机,因而虚拟机和Ubuntu零碎能够轻易从某乎等一些网站进行搜寻,装置即可。 Step2:根底环境依赖关上Ubuntu的命令行,顺次输出以下内容 sudo apt-get install build-essentialsudo apt-get install cmakesudo apt-get install cmake-guisudo apt-get install pkg-configsudo apt-get install python-devsudo apt-get install python-numpysudo apt-get install gitsudo apt-get install vim cmake sudo apt-get install git sudo apt-get install gcc g++Step3:装置eigen (留神上面内容是一行输出的,这里空间太小,换行了) wget https://gitlab.com/libeigen/e...unzip -O cp936 eigen-3.3.9.zipcd eigen-3.3.9mkdir buildcd buildcmake ..makesudo make installStep4:装置g2o 1.git clone https://github.com/RainerKuem...2.cd g2o3.mkdir build4.cd build5.cmake ..6.make7.sudo make installStep5:装置OctoMap 1.git clone https://github.com/OctoMap/oc...2.cd octomap3.mkdir build4.cd build5.cmake ..6.make7.sudo make installStep6:装置Sophus ...

March 19, 2022 · 2 min · jiezi

关于ubuntu16.04:ubuntu-eclipse-启动elipse桌面快捷方式报错

问题形容 简述: 在ubuntu零碎中装置eclipse EE版本,装置实现,关上桌面快捷方式,呈现如上谬误 问题剖析翻译: 这个 configurationarea at /usr/local/eclipse/configuraion 不可写,请抉择一个可被写的地位应用 - configuration 命令行选项 起因就是 : 这个configuration目录没有可写权限,将这个目录赋予 写(write)的权限或者给所有权限即可 问题解决赋予 全副权限 sudo chmod 777 -R ./configuration/⚠️ 当然这个 ./configuration视具体情况而定 相干文章 linux零碎某文件夹not writeable的解决MyEclipse启动时提醒the configuration area at XXXXXXXX is not writable猜你想看 Ubuntu中应用程序启动器“XXX.desktop”还没有被标记为可信赖的问题Ubuntu 16.04装置Eclipseeclipse各个版本区别tar:归档中找不到 tar: 因为前次谬误,将以上次的谬误状态退出

June 21, 2021 · 1 min · jiezi

Ubuntu-JDK-PPA-安装失败的解决办法

Ubuntu JDK PPA 安装失败的解决办法最后一次更新于 2019/08/05 报错我大概是半年没用 Ubuntu 了, 今天刚想升级 Java JDK 就得到了下方的报错: 正在连接 download.oracle.com (download.oracle.com)|23.196.196.76|:443... 已连接。已发出的 HTTP 请求, 正在等待回应... 404 Not Found2019-08-05 18:03:51 错误 404: Not Found.download failedOracle JDK 8 is NOT installed.dpkg: 处理软件包 oracle-java8-installer (--configure)时出错: 子进程 已安装 post-installation 脚本 返回错误状态 1错误排查我寻思半天,经过反复尝试,最终确认是 Oracle 爸爸要坑我。不知道为啥 Google 搜索里没搜到这个错误出现的原因,所以我今天跟大家解释一下,帮助大家避一下坑。 首先得从 wget 说起。简单来说它是个 HTTP GET 请求,在以前个大网站不设安全验证的时期相当高效好用。Oracle 爸爸告诉你: 不,你以后想都别想。那么"想都别想"的这一天从什么时候开始呢?肯定跟这一天有关系: Oracle 为了确保 JDK 不被滥用,强制要求下载前必须登录 Oracle 账户。给不了解 HTTP 请求的朋友们稍微科普一下, GET 请求是直接访问对应 URL 的,处于无账户状态。而 POST 请求在访问对应 URL 的同时,会附带 json 数据,在这里指的就是 Oracle 账户的用户名和密码。 ...

August 27, 2019 · 1 min · jiezi

Xdebug-远程调试你会用吗

前言在开发过程中,我们最少不了的就是调试,因为 php 不能像 Java 和 C# 那样与生俱来的优势,拥有开箱即用的断点调试,很多时候我们的开发者都是使用的 var_dump 方法来对结果进行输出,而有的时候需要查看调用栈时,有的开发者甚至都不知道如和下手。(可以 throw 异常 或者 使用 debug_print_backtrace 和 debug_backtrace 来打印调用栈),虽然很多开发者知道xdebug 但是也会因为其繁琐的安装望而却步,又或许你在本地高高兴兴搭建好了,有时候要调试一下外网的,比如测试服务器,你会发现这是个坑,很多文章都没有正确的引导你去如何的安装它。 服务器如何安装 Xdebug环境准备ubuntu 16.04php 7+XShell首先打开 Xdebug 官网。 是不是看到硕大的 Download 链接吸引到了你,如果你知道你的 php 是什么版本 你可以在这里愉快的下载,然后并安装。 偶,我凑,怎么全是 Windows 的,Linux 的呢?Linux 当然是要从源码构建啦。 我凑,不会?没关系咱们一起来学一学,首先新建一个 php 文件,如果你是用包管理器安装的那么请直接跳转到包管理器 // info.php<?phpphpinfo();然后放到你的 web 目录,看清楚,一定是 web 目录。不要觉得你耍小聪明,使用 php -S 来启动一个临时的 web 服务器,不允许,因为你这样用到的 php.ini 是 cli 的,而不是 fpm 的,当 phpinfo 信息显示出来。 然后我们回到官网,点击下载页面的 custom installation instructions. ...

July 16, 2019 · 3 min · jiezi

C-实现-Atari-经典街机游戏飞天蜈蚣

这是一个用C语言实现的《飞天蜈蚣》的“复刻”,由于Linux操作系统下的图形库不够绘制绚丽的画面,因此在本程序中仅用简单的符号来代表不同的游戏角色.访问本油管链接可以阿达雅游戏的视频: https://www.youtube.com/watch... 基本介绍注意: 本程序需要引入 ncurses 库, 这个库只存在于 Unix 的操作系统. 在开始运行之前,建议您通过以下 Debian/Ubuntu Linux 的命令行安装需要的库: sudo apt−get install libncurses5−dev libncursesw5−dev//libncurses5−dev: Developer’s libraries for ncurses//libncursesw5−dev: Developer’s libraries for ncursesw问题重申基于原始的雅达利游戏, 我重写了部分规则. 为了使我的程序画面更加稳定和流程,我做了以下必要的前提条件. 游戏规则蝎子是游戏里另一个一意孤行的角色. 相比于蜘蛛, 它就完全是个坏蛋, 它虽然只能向左或向右走但是一旦它碰到玩家玩家就会失去一条生命. 蜈蚣蜈蚣是玩家最主要要消灭的敌人. 如果没有任何障碍物, 蜈蚣只会一行接着一行地往下走.每次玩家击中蜈蚣的部位都会变成一个蘑菇. 如果击中的部位既不在头也不在尾, 蜈蚣就会自己撕裂成两部分, 获得新的头部并向上或向下接近玩家. 除此之外, 如果蜈蚣遇到蘑菇或者墙壁时, 它会拐弯下移. 尽量让自己远离蜈蚣,如果被它碰到的话也会失去生命哦! 为了让上述规则更易懂, 我创建了如下关系表格: 撞击关系玩家子弹蘑菇蜈蚣蜘蛛玩家死亡, 失误一次生命蜘蛛死亡, 获得600分蘑菇消失, 蘑菇总数 - 1不考虑蝎子玩家死亡, 失误一次生命蝎子死亡, 获得600分不考虑不考虑蜈蚣玩家死亡, 失误一次生命击中头部给100分,其余情况给10分蜈蚣掉头其中一只蜈蚣掉头蘑菇蘑菇消失, 蘑菇总数 - 14 次成功射击后获得1分不考虑不考虑除此以外, 我在游戏中设置了不同关卡. 每个关卡初始的蜈蚣身节是相等的. 但随着蘑菇数量的增多, 玩家很难能击中蜈蚣. 更不用说蝎子和蜘蛛了. 基本猜想我在运行程序的时候遇到许多非程序性问题. 因此, 我罗列出必要的假设: ...

July 5, 2019 · 20 min · jiezi

初遇Nginx之简介

nginx 是一个免费的,开源的,高性能的HTTP服务器和反向代理,以及IMAP / POP3代理服务器。 Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。很多高知名度的网站都使用 Nginx,如:Netflix,GitHub,SoundCloud,MaxCDN 等。Nginx 有一个主线程( master process)和几个工作线程(worker process)。主线程的目的是加载和验证配置文件、维护工作线程。工作线程处理实际的请求,Nginx 采用基于事件的模型和依赖操作系统的机制在工作线程之间高效地分发请求。工作线程的数量可配置,也可自动调整为服务器CPU的数量。 安装简单介绍下ubuntu进行nginx安装的操作。可用通过apt-get update和apt-get install nginx进行安装 在通过 nginx -v来查看是否安装正确。 Ubuntu安装之后的文件结构大致为: /usr/sbin/nginx:主程序/etc/nginx:存放配置文件/usr/share/nginx:存放静态文件/var/log/nginx:存放日志其实从上面的根目录文件夹可以知道,Linux系统的配置文件一般放在/etc,日志一般放在/var/log,运行的程序一般放在/usr/sbin或者/usr/bin。当然,如果要更清楚Nginx的配置项放在什么地方,可以打开/etc/nginx/nginx.conf。 启动Nginx服务运行nginx服务可通过命令server nginx start可启动服务,打开浏览器在地址栏输入localhost可严重是否启动成功。 其他常用命令######停止Nginx服务 service nginx stop######重启Nginx服务 service nginx restart######Nginx服务的状态 service nginx status######在Nginx服务启动的状态下,重新加载nginx.conf这个配置文件 service nginx reload 卸载nginx通过如下几个命令可进行卸载: apt-get remove nginx nginx-common # 卸载删除除了配置文件以外的所有文件。apt-get purge nginx nginx-common # 卸载所有东东,包括删除配置文件。apt-get autoremove # 在上面命令结束后执行,主要是卸载删除Nginx的不再被使用的依赖包。apt-get remove nginx-full nginx-common #卸载删除两个主要的包。

June 27, 2019 · 1 min · jiezi

Docker学习之Docker-Swarm

Docker Swarm 是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。基本概念Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具。使用 Swarm 集群之前需要了解以下几个概念。 节点运行 Docker 的主机可以主动初始化一个 Swarm 集群或者加入一个已存在的 Swarm 集群,这样这个运行 Docker 的主机就成为一个 Swarm 集群的节点 ( node ) 。节点分为管理 ( manager ) 节点和工作 ( worker ) 节点。管理节点用于 Swarm 集群的管理, docker swarm 命令基本只能在管理节点执行(节点退出集群命令 docker swarm leave 可以在工作节点执行)。一个 Swarm 集群可以有多个管理节点,但只有一个管理节点可以成为 leader , leader 通过 raft 协议实现。工作节点是任务执行节点,管理节点将服务 ( service ) 下发至工作节点执行。管理节点默认也作为工作节点。你也可以通过配置让服务只运行在管理节点。来自 Docker 官网的这张图片形象的展示了集群中管理节点与工作节点的关系 ...

June 25, 2019 · 1 min · jiezi

Docker学习之基本概念及安装

什么是DockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低.Docker与传统的虚拟机相比有哪些优势呢? 首先来看传统虚拟机与Docker的对比图: 可以看出传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便为什么需要Docker作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势对于系统资源的利用更加的高效:由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高启动时间更快:传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。一致的运行环境:由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 「这段代码在我机器上没问题啊」 这类问题。持续交付和部署:对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合 持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署(Continuous Delivery/Deployment) 系统进行自动部署。更轻松的迁移:由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。更轻松的维护和扩展:Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。那么接下来针对Docker的三个基本概念进行了解。 Docker的基本概念Docker 包括三个基本概念: 镜像( Image )容器( Container )仓库( Repository )理解了这三个概念,就理解了 Docker 的整个生命周期。 镜像Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 分层存储因为镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个 ISO 那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。 分层存储的特征还使得镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需的内容,构建新的镜像。 容器( Container )镜像( Image )和容器( Container )的关系,就像是面向对象程序设计中的类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 ...

June 17, 2019 · 1 min · jiezi

Ubuntu16.04安装MySql8.0

一、通过APT方式安装【注意】通过APT方式安装的版本都是现在最新的版本。通过这种方式安装好之后开机自启动都已经配置好,和命令行上的环境变量,无需手动配置。1.1 下载官方提供的mysql-apt-config.deb包下载官方提供的mysql-apt-config.deb包进行APT源设置,下载地址:https://dev.mysql.com/downloa…1.2 安装deb包你下载的哪个包就安装哪个包sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb运行之后会出现下面的界面进行选择一般每啥改的,默认就可以的。方向键选择OK就回车可以了。1.3 安装MySqlsudo apt-get install mysql-server中途可能会出现依赖不足的情况,如果出现就执行sudo apt-get install -f安装依赖后再进行安装。1.4 安装过程操作安装过程会提示输入数据库的登录名和密码,输入即可,如下所示:1.5 安装后的操作服务启动后端口查询sudo netstat -anp | grep mysql服务管理#启动sudo service mysql start#停止sudo service mysql stop#服务状态sudo service mysql status设置远程访问就把mysql.user中root账户的host改成%,然后重启MySql服务1.6 卸载MySql# 首先使用以下命令删除MySQL服务器sudo apt-get remove mysql-server# 然后,删除随MySQL服务器自动安装的任何其他软件sudo apt-get autoremove# 卸载其他组件sudo apt-get remove <<package-name>># 查看从MySQL APT存储库安装的软件包列表dpkg -l | grep mysql | grep ii

March 20, 2019 · 1 min · jiezi

关于ubuntu系统的一些坑

问题描述更新内核解决关机卡死在关机界面,但是更新之后不能上网的问题用ubuntu系统,快是快,但是遇到的坑也不少这次遇到的本来是关机之后系统卡死在关机界面,只能强制关电源这对于电脑的损伤还是很大的,自己的电脑用着心疼之后就百度查了一下解决办法,说是更新一下系统内核就行了这个办法确实管用,我更新了一个4.8的新内核但是前不该万不该看下面写的删除旧内核减轻系统占用的那些方法入坑的开始安装并更新内核之后,查询了一下确实更新到4.8了,就按照那些删除旧内核的方法,开始删除旧内核删除之后又重启了一下电脑,发现可以正常开关机重启了,再也不卡在关机界面了,速度甚至还快了一些感觉还挺高兴,解决了一个问题。结果坑就来了重启之后发现不能上网了。明明网线插着,也有wifi开着,但是就是不能上网之后查了一下百度,都说是删除程序的时候容易附带删除网卡驱动,然后我就掉坑里了开始找网卡驱动然后用另一个电脑下载,安装ubuntu系统的缺点没有网,ubuntu系统的缺点就出来了在安装系统驱动的时候,会出现很多依赖,但是在网上下载的包只负责自己的这一部分在有网的时候依赖也是很好解决的,只需要 sudo apt-get -f 一下就可以了,但是当不能上网的时候,依赖多的想让人重装系统死循环网卡驱动是在一个叫kernel-devel的系统文件包里面的,我下载了一个kernel包,发现是rpm文件,然后rpm文件需要alien才能转换成deb包。然后alien这个程序又需要一个叫rpm的依赖。。。而npm又需要5个别的依赖。。想临时用手机usb共享一个网络,结果悲剧的是我用的是iphone手机。。共享网络又需要安装若干XX包,还有依赖。。绝望了无意中的发现各种依赖包装得我心烦,就想着直接重装系统了,甚至都下好了ubuntu的iso镜像结果无意中发现了系统安装内核有三个文件分别是两个headers和一个image文件,而我当时安装的时候只安装了image的那个包(因为image那个包有50多M,而其他两个加一起才3M)然后我突然想是不是内核少了两个文件的原因呢,就又下载了两个headers文件安装之后重启电脑,发现能上网了总结1.ubuntu的系统没有网简直就是一块石头,能气死人2.百度不是那么好用,查的方法不一定就适合3.千万不要乱删旧内核文件,哪怕占地方,一个内核就100M左右,也真的不算什么。而且高版本不好用的话他会自动用低版本的配置,至少系统不会崩掉。4.iphone还是跟mac比较般配,其他的系统想访问一下都难。。真的难。。简直是个大爷。

March 9, 2019 · 1 min · jiezi

安装Docker

用设置 Docker 的镜像仓库并从中进行安装前期准备更新包 $ sudo apt-get update安装软件包,以允许 apt 通过 HTTPS 使用镜像仓库: $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common添加 Docker 的官方 GPG 密钥: $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -验证密钥是否为:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 $ sudo apt-key fingerprint 0EBFCD88设置 stable 镜像仓库,不同的处理器架构不同,详情参见官网,我使用的:$ sudo add-apt-repository \ “deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"开始安装更新包 $ sudo apt-get update安装最新版本的 Docker CE $ sudo apt-get install docker-ce安装特定版本的 Docker CE输出可用版本 $ apt-cache madison docker-ce选择特定版本VERSION为版本号 $ sudo apt-get install docker-ce=<VERSION>检验安装sudo docker run hello-world输出一下信息为正常:Hello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the “hello-world” image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For more examples and ideas, visit: https://docs.docker.com/get-started/ ...

January 11, 2019 · 1 min · jiezi