
linux
文章平均质量分 64
luffy5459
程序猿一枚,喜欢瞎捣鼓。
展开
-
linux上启动两个nginx实例
linux启动两个nginx实例,需要修改配置,指定不同的端口,另一个实例启动的时候,需要指定绝对路径的配置文件,还需要修改静态资源根路径,指定绝对路径,同时修改user属性值为root。原创 2023-06-17 23:09:31 · 3396 阅读 · 0 评论 -
vmware虚拟机与树莓派4B安装ubuntu1804 + ros遇到的问题
ubuntu1804和树莓派4B安装ros遇到的问题总结。原创 2023-03-06 22:34:11 · 1091 阅读 · 1 评论 -
linux奇技淫巧
linux奇技淫巧原创 2022-06-23 17:33:09 · 957 阅读 · 0 评论 -
ubuntu源码编译busybox与linux内核并使用qemu-system-x86_64模拟启动
ubuntu系统源码编译busybox与linux内核,制作根文件镜像,并通过qemu-system-x86_64模拟启动linux。原创 2022-06-21 12:54:12 · 2371 阅读 · 0 评论 -
ubuntu20.04版本安装gcc-4.8
ubuntu2004版本默认已经将gcc支持的版本更新到了gcc-9,如果要降级gcc的版本,需要设置新的源,然后安装指定版本,思路就是这样。 可以看到如下这个图片,4.8版本对应的各个ubuntu版本: 从这个图里面可以看到4.8.5版本支持最高的ubuntu是16.06版本。也就是xenial。并不支持focal,也就是ubuntu2004。其实很多文章提到的安装方法也是基于这个事实来做的安装。 我们找的apt源,也是xeneil的源,如下所示:...原创 2021-12-08 16:29:31 · 13248 阅读 · 3 评论 -
linux下strace命令跟踪java进程
strace命令的使用,是看了马士兵老师讲的netty底层原理课程,里面举了一个例子,使用java程序编写一个简单的socket服务器,然后等待客户端连接。 本身,这个程序很简单,但是通过strace命令跟踪,可以看到,jvm底层调用了linux系统内核的socket,出现了一系列bind,listen,accept等等命令。 strace这个命令并不是linux自带的,需要安装,centos系列可以直接通过yum安装。 下面直接看示例: SocketTes...原创 2021-07-15 14:08:43 · 1764 阅读 · 0 评论 -
minix3下安装libevent
libevent是一个c语言编写的事件框架,支持异步IO、定时器、信号事件。它支持跨平台,大部分都是在linux下安装并使用,今天介绍在unix系统minix3上的安装。 minix3上编译环境是clang,clang++,并不是我们常见的gcc,g++,所以在进行源码编译的时候,需要指定系统编译器。再一个就是minix3上没有/usr/local这个目录,如果直接configure安装不指定libevent安装前缀prefix,那么它就会安装到/usr/local目录下,这个目录并不是系...原创 2021-04-15 10:23:52 · 368 阅读 · 0 评论 -
clang: error: unable to execute command: Executable “ld“ doesn‘t exist!
如题所示,我在minix3中直接安装了clang,然后使用如下命令编译c程序报错。# clang hello.c -o helloclang: error: unable to execute command: Executable "ld" doesn't exist!clang: error: linker command failed with exit code 1 (use -v to see invocation)# 提示说缺少ld,其实需要安装binutils这...原创 2021-04-01 22:34:39 · 3865 阅读 · 0 评论 -
minix3通过pkgin_cd安装二进制包
在安装完minix3虚拟机之后,如果要进行其他工具的安装,默认需要借助pkgin,这个需要先更新(pkgin up),然后安装各种可以被下载的包。 本人试了几次之后,发现pkgin in xxx这种方式是先需要在线下载所需的安装包然后进行安装,如果网速不好,很难安装,尤其在家里的时候,晚上连一个10M的openssh都安装不了。这一度让我很困惑。 pkgin这种方式配置默认的仓库地址根据版本不同,使用的方式不一样,3.2.1好像使用的是ftp地址,而3.3.0使用的是http地址...原创 2021-04-01 11:38:33 · 725 阅读 · 0 评论 -
vmware安装minix并开启x11
最近突然想弄一下minix这个老牌的系统。 vmware安装minix3虚拟机,其实很简单的: 1、新建虚拟机,选择经典。 2、选择客户机操作系统:其他,版本:其他64位,下一步设置虚拟机名称。 3、后面一路默认,内存会设置256M,磁盘8G。(内存可以在后面编辑虚拟机进行自行设置) 4、最后可以指定下载的minix_R3.2.1-972156d.iso。这里的minix3版本需要注意一下,默认3.3.0是不支持x11的。 点击启动虚拟机...原创 2021-03-26 18:23:21 · 1657 阅读 · 0 评论 -
ubuntu1804源码编译jdk8
这里纯粹自己弄着玩,因为以前没有成功过,这里记录一下,就是让遇到问题的人可以规避问题,快速编译自己的jdk。 相信很多学java的人都看过或者了解过一本书《深入理解java虚拟机》,里面就有介绍如何源码编译jdk。而且很多网上的编译都会将这本书里面的截图粘出来。 源码编译jdk,需要的环境如下:gcc,make,低版本的jdk,再就是源码本身了。 一、准备依赖库 所有的准备之前,需要先安装依赖库:sudo apt-get install libx11-d...原创 2021-03-18 16:03:58 · 536 阅读 · 1 评论 -
docker容器改变时区
默认情况下的docker容器启动之后,系统时间是UTC时间,这导致和我们的北京时间相差8小时,会引出很多问题。 有一些容器是和项目一起构建的,我们可以在构建的时候,将系统时区修改为Asia/Shanghai。如下所示,我们在定义Dockerfile的时候,可以直接加上这段指令:RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime; \ echo 'Asia/Shanghai' >/etc/timezone...原创 2021-02-22 15:40:59 · 1796 阅读 · 0 评论 -
quasar构建linux版本electron项目以及如何让electron程序在linux下运行
quasar构建,默认命令是:quasar build -m electron 如果要支持linux,通常是直接加参数--target linux或者简写-T linuxquasar build -m electron --target linux 正常情况下,编译构建可能会遇到网络问题。构建成功的话,会生成zip文件和一个名为linux-unpacked的文件夹。 构建成功,好像在ubuntu下解压zip文件,并不能直接运行,不是因为可执行程序没有+x权限,真...原创 2021-02-18 15:35:21 · 1139 阅读 · 1 评论 -
2020年csdn盘点
十年前就注册了csdn账号,之后一直没有写过博客,都是看别人的博客,等到2015年左右发表了第一篇自己的博客,直到2016年底觉着做技术的就需要记录自己的博客,不仅是自己学习的过程,说不定还可以帮助别人,于是坚持写了差不多四年,平均每年100篇,如今产量已经达到600篇,很多都是很浅显的内容,我刚开始写的时候,一个同事还很瞧不起这种没有技术含量的博客,但是有没有意义,只有自己知道。 每年写博客,这个很容易,每个月写也很容易,但是做到每天坚持却很难,我是做不到的,只能坚持每个月不断的写一些,...原创 2020-12-22 17:28:07 · 260 阅读 · 0 评论 -
[Warning] root@localhost is created with an empty password ! Please consider switching off the解决办法
如题所示,当我们在ubuntu1804中,通过默认的源安装数据库mysql之后,直接就可以通过mysql -uroot就可以登录了,因为他默认生成的密码是空的。 如下所示,ubuntu1804系统自带的默认mysql源就是5.7.30版本: 如果要安装5.7版本的mysql,无需考虑其他,直接apt install mysql-server就完了: 安装过程,会将所需的依赖全部安装上,包括libaio1,无需再手动安装。安装完成即启动成功,生成...原创 2020-07-17 18:26:02 · 18151 阅读 · 0 评论 -
ubuntu20.04安装mysql5.7版本
默认情况下,ubuntu20.04版本自带的mysql是8.0,如果我们需要安装5.7版本,我们需要通过如下的方式来安装。 1、直接下载二进制压缩包进行安装,解压并设置相关的参数就可以运行。 2、下载5.7的源,然后通过apt install mysql-server=5.7.31-1ubuntu18.04的方式进行安装。 3、下载5.7的deb文件,然后通过dpkg -i的方式安装。 这里,主要讲讲后面两种方式的安装,如何通过增加源apt install或者d...原创 2020-07-17 16:47:03 · 37588 阅读 · 8 评论 -
ubuntu系统没有/var/log/messages系统日志文件解决办法
在ubuntu系统中,有时候,我们需要通过journalctl -xe来查看服务启动日志,但是这个日志打印不全,所以还是需要通过/var/log/messages这个文件来看。 在一些新的ubuntu系统中,这个文件是不存在的,我们需要设置,修改文件/etc/rsyslog.d/50-default.conf 我们可以看到,为什么messages文件在/var/log目录下没有,因为被注释掉了,我们根据需要开启,或者新增一行配置即可:*.info;mail.no...原创 2020-06-30 11:15:54 · 14880 阅读 · 3 评论 -
ubuntu server系统通过命令改时区和24小时时间格式
ubuntu server系统安装之后,系统默认是世界时间,在我们东八区,会晚8小时,另外,系统的时间是12小时,通过date命令查看时间,上午显示AM,下午显示PM,如果不习惯,可以修改为24小时时间格式。 如果是ubuntu desktop系统,可以在设置面板界面上操作选择时区和24小时时间格式,很方便。但是作为一般的无界面的server,我们只能在命令行下修改。 修改时区,我们通过拷贝一个时区文件/usr/share/timezone/Asia/Shanghai 到/etc...原创 2020-06-30 09:17:49 · 10554 阅读 · 2 评论 -
docker-compose构建mongodb容器实例
docker-compose可以一次性开启多个docker实例,这一点比Dockerfile来构建docker容器要方便的多。docker-compose的重点是对yml文件的配置。yml文件的配置需要注意的是严格控制缩进。 需要说明的一点是docker-compose命令并不是随着docker安装一起安装的,他需要额外的安装,如果没有安装,可以在github上下载对应系统的版本...原创 2020-03-25 17:14:49 · 7351 阅读 · 0 评论 -
linuxmint下gcc编译报错:zlib version 1.2.1 or higher is required
如题所示,在linuxmint系统上通过gcc编译一个工具,报错: 通过dpkg -l命令查看系统的zlib库,是有zlib1g,这个就是最新的。 很多地方说要安装zlib1g-dev,如是,试着安装: 安装完成,继续编译,竟然通过了。 有点不太明白的是为什么必须要安装zlib1g-dev...原创 2020-01-21 15:03:48 · 1259 阅读 · 0 评论 -
git命令行切换到某一个提交版本的分支
通常,我们需要在命令行下切换 分支,一般而言,我们将远程代码克隆(git clone http://xxx.com/project)到本地之后,切换分支使用git checkout -b branchName即可。如果需要切换到某一个版本,这时候需要做一些改动。 git checkout -b branchName是切换主分支到一个新的分支,如果不指定commitid,就是切换到...原创 2020-01-15 14:20:23 · 7839 阅读 · 0 评论 -
react项目启动报错:Error: ENOSPC: System limit for number of file watchers reached
如题所示,最近在使用npm start启动react项目的时候,经常会报这个错误,出错原因大致意思是文件监控数量超过了系统限制。其实就是打开的文件过多导致的,不管是什么文件,只要有进程在,就是一个file watchers,临时解决办法就是关掉几个进程,再运行npm start,就好了,但是等到系统开启的进程一多起来,再次运行又有可能出现同样的错误,为了永久解决这个问题,必须修改系统参数。...原创 2019-12-31 09:46:52 · 6084 阅读 · 0 评论 -
linuxmint下通过eclipse安装android开发环境sdk,adt并新建与启动项目各种踩坑
最近安装了linuxmint19.2系统,这个系统是ubuntu系列,适合桌面操作系统,据说比ubuntu好。可以先看看系统的一些特征: 这里的系统设置,很像mac系统,有没有? 系统信息如下: 现在进入正题,因为系统自带了openjdk,我们需要通过sudo apt purge openjdk-*来卸载,否则后面可能会出现...原创 2019-12-18 15:43:25 · 655 阅读 · 0 评论 -
centos7下安装gitlab-ci持续集成实战
gitlab提供了ci/cd持续集成/持续部署的功能,当我们安装了gitlab之后,需要单独再安装gitlab-ci-multi-runner,其实就是gitlab-runner,为了试验,我们一次性安装gitlab,gitlab-ci-multi-runner,在centos7下他们需要单独的安装源,可以使用清华的gitlab-ce与gitlab-ci-multi-runner源,如下所...原创 2019-11-22 15:52:04 · 1213 阅读 · 0 评论 -
centos7安装与配置DNS服务器
centos7上安装DNS服务器可以实现域名与IP的双向解析,即通过域名可以找到主机IP,也可以通过IP找到域名。在postfix搭建邮件服务器中,需要用到DNS正向解析与反向解析,因此DNS服务器大有可为。笔者以前几次试图搭建DNS服务器,均以失败告终,其实再回过头来想一想,就差那么一丢丢就可以了。下面给出一个完整的搭建DNS服务器的过程,以及需要注意的事项。 首先需要安装bi...原创 2019-10-23 23:23:41 · 28972 阅读 · 7 评论 -
redhat7挂载新硬盘
我们偶尔会遇到虚拟机磁盘空间不够,这时又不想重新安装虚拟机,可以考虑增加磁盘空间,先需要我们增加物理磁盘,然后利用命令将磁盘建立分区,然后格式化分区,最后挂载到系统目录中,到这一步就已经达到了磁盘挂载,但是他是临时的,下次开机还需要手动挂载该磁盘到系统目录,如果需要永久挂载,那么需要配置/etc/fstab文件。下面介绍如何挂载新的磁盘到redhat7虚拟机1、准备,虚拟机磁盘最初只有10g,在v...原创 2017-05-15 17:11:37 · 9431 阅读 · 0 评论 -
shell脚本获取昨天今天本周周一本周周日本月第一天本月最后一天
偶尔在linux上需要做脚本,并设置脚本按照日期来计算相关数据,这时候就涉及到日期的获取,这里介绍简单的几个重要日期的获取,分别是昨天,今天是本周的第几天,本周周一,本周周日,本月第一天,本月最后一天。脚本获取日期并格式化,思路都是相同的,首先获取日期,然后给出格式化表达式。昨天的获取有两种方式:yesterday=`date -d '1 days ago' +%Y%m%d`yes...原创 2018-11-07 16:49:37 · 6393 阅读 · 2 评论 -
rabbitmq开启webui界面管理
默认情况下,安装完成rabbitmq,启动成功,并不会开启webui的http访问服务。通过rabbitmq-plugins list查看rabbitmq插件,发现rabbitmq_management这里并没有被开启。这里介绍如何开启rabbitmq基于http的webui界面管理。如果需要通过浏览器访问rabbitmq管理界面,需要开启rabbitmq_management插件。操作如...原创 2018-09-10 14:49:32 · 28578 阅读 · 6 评论 -
centos7下设置vi的colorscheme
每次在centos机器上使用vi编辑文件,发现总是默认的黑底白字,效果非常不好,于是,开始着手让vi编辑界面有色彩。开始直接设置/etc/virc修改完成之后,由于系统没有murpy色彩主题,每次vi编辑文件时都提示:Cannot find color scheme 'murphy',需要安装vim才能显示。接下来,开始安装vim运行 yum search vim 命令,发现有如下几个...原创 2018-09-11 17:13:41 · 3177 阅读 · 0 评论 -
centos7源码安装git-2.3.0踩坑记录
下载源码->解压->编译三步曲:我这里下载的是xz格式的文件,第一步需要xz解压为tar格式文件,然后通过tar -xf命令解压。wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.3.0.tar.xzxz -d git-2.3.0.tar.xz tar -xf git-2.3.0.tar cd git-...原创 2018-04-25 15:56:44 · 698 阅读 · 0 评论 -
linux下通过md5sum和sha1sum来校验下载文件的正确性
在linux下,我们经常通过wget,curl等命令在某官方网站下载一个zip或者tar.gz格式文件,有时候,我们不会去关注这个下载文件后面的md5值和sha1值,这两个值其实有很大的用处,他可以帮助我们验证下载的文件是否经过人为篡改,或者下载是否完整。centos默认提供了md5sum,sha1sum方法可以帮助我们校验下载文件的正确性完整性。[root@server software]# m...原创 2018-04-25 15:06:50 · 3026 阅读 · 0 评论 -
SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch问题解决
今天把服务器上的nginx重启一下, 发现了如下问题:[root@PUSH-021 ssl.key]# nginx -c /opt/nginx-conf/poll.conf nginx: [emerg] SSL_CTX_use_PrivateKey_file("/usr/local/nginx/ssl/ssl.key/****.com.20160503.key") failed (SSL: e...原创 2018-05-09 19:44:33 · 27290 阅读 · 0 评论 -
centos7源码编译安装lua:lua5.1升级lua5.3
我们通过yum安装的lua默认是5.1版本,如果不符合我们有的程序需要,可以通过源码编译安装最新版lua。过程记录如下:下载->解压->编译三步曲:wget http://www.lua.org/ftp/lua-5.3.4.tar.gztar -xzf lua-5.3.4.tar.gzcd lua-5.3.4make linux test系统如果没有安装readline依赖包,编...原创 2018-04-25 14:25:07 · 5167 阅读 · 1 评论 -
git clone 报错:Peer reports incompatible or unsupported protocol version解决办法
git通过git clone下载github上的资源到机器上,结果出现如题所示的错误。[root@server data]# git clone https://github.com/pingcap/tidb-docker-compose.gitCloning into 'tidb-docker-compose'...fatal: unable to access 'https://githu...原创 2018-03-31 23:08:07 · 14256 阅读 · 2 评论 -
centos7安装rustup
rust安装,因为被墙的原因,在国内几乎很难安装,需要通过代理安装。但是rustup却很容易,一般在linux下,通过官方指定的下列语句,基本可以安装rustup。curl -sSf https://sh.rustup.rs | sh安装[root@VM_68_155_centos pingcap]# curl https://sh.rustup.rs -sSf | sh -sinfo: dow...原创 2018-03-30 23:23:17 · 7969 阅读 · 0 评论 -
git命令行下回退一个文件到上一个版本
git版本控制在ide中,很方便的回退一个文件,只需要git->revert就可以了。但是有时候,我们会在命令行下操作git。比如部署到生产环境的时候,我们不想打包,而是想通过git pull拉取远程仓库中的文件,但是偶尔需要修改一些文件,这时候如果需要再次拉取,那么就可能会出现冲突错误。修改的文件处于仓库中最新版本和上次拉取的版本之间。这种问题在开发中如果团队分工出现问题,大家同时修改...原创 2019-01-05 19:54:56 · 6241 阅读 · 3 评论 -
sqlite3简单入门
linux上一般默认是自带了sqlite3的,所以学习sqlite3,最好使用linux,这样可以跳过安装这一步。开始,我们可以直接运行sqlite3 testsqlite3.db.databases 可以查看数据库.tables 可以查看表.schema 可以查看建表语句我们的建表语句与mysql有些区别,auto_increment自动增长是连着的,没有下划线隔开。 ...原创 2019-02-22 18:43:08 · 637 阅读 · 2 评论 -
docker私有镜像服务搭建
docker容器技术已经在部署服务上使用的非常普遍,主要是它的隔离性以及快速启动的特性,一般启动一个容器,如果镜像不存在会先去dockerhub仓库下载,然后存储在本地,后续可以继续或者反复使用这个镜像,但是一旦这个镜像被删除了,或者需要一个新的镜像的时候,我们还是需要远程下载,网速如果不给力的话,下载时间就会很漫长,为此就诞生了docker镜像私服这个服务,可以把需要的镜像提交到私服上,...原创 2020-03-26 15:19:56 · 2799 阅读 · 0 评论 -
postgresql导出表结构以及数据到mysql
postgresql导出的表结构在语句上会和mysql有些差异,因此当我们在mysql命令行中执行的时候,会有警告和错误提示,但是最终还是会将表生成成功,这里将表结构和数据分别单独导出,而且使用的语法和方法都不一样。导出表结构直接使用postgresql命令pg_dump,而导出数据使用psql命令的copy。在mysql中导入表结构,我们执行source /path/to/table.sql...原创 2019-07-21 09:47:28 · 6431 阅读 · 0 评论 -
postgresql主从复制配置
postgresql主从复制是一种高可用解决方案,可以实现读写分离。postgresql主从复制是基于xlog来实现的,主库开启日志功能,从库根据主库xlog来完成数据的同步。主从复需要注意的地方:启动从库之前,不能执行初始化。 启动从库之前,需要通过base_backup从主服务器上同步配置与数据。 启动从库之前,需要对同步之后的配置文件进行修改。 启动从库之前,需要设置一个恢复的...原创 2019-07-20 18:51:32 · 10597 阅读 · 4 评论