prefix

Linux 7上使用源码编译安装PostgreSQL和生成RPM安装包

北城余情 提交于 2020-02-08 09:40:14
原创文章,转载须注明出处。访问我的Github(地址: https://guobo507.github.io )查看最新文章列表。 目录 编译和安装PostgreSQL 创建PostgreSQL RPM安装包 PGDG 中提供了针对多个系统版本都提供了多个版本的 PostgreSQL 的 RPM 安装包,在生产中使用PGDG安装PostgreSQL数据库软件包是非常方便的途径。 在如今国产化、自主可控的浪潮之下,很多时候我们想要在国产的平台、(所谓)国产的操作系统中使用PostgreSQL数据库,大多数时候系统中自带的PostgreSQL版本很可能不符合我们的要求。因此,本文的目的是演示如何在指定平台上编译安装想要的 PostgreSQL 版本?如何使用 PG 源代码在指定的硬件平台上创建该平台专用的 PostgreSQL 的 RPM 安装包? 编译和安装PostgreSQL 本文讨论的是针对RedHat系列Linux(我是用的是 CentOS 7)上的实践,使用的平台也是 x86_64 平台。虽然在该平台可以直接从 PGDG 进行安装,但本文的目的在于演示整个操作的过程。我将以安装PG 12.1版本为例说明。 首先,我的系统环境如下: [root@pgbuild ~]# cat /etc/centos-release CentOS Linux release 7.6.1810

Tmux和一点nohup

旧时模样 提交于 2020-02-05 23:05:14
1.当我们用ssh连接服务器时,只有一个终端,但有时候我们希望有多个。 2.有些程序需要运行一些时间,在这个时间里,我们希望可以去做其他的事情。 3.有的程序要跑好几个小时,这时候,我们希望断开远程连接后,它可以在服务器上继续运行。 nohup 刚开始,尝试的方法是 使用 nohup 命令 这个命令可以使程序在后台运行,即使你断开了远程连接,它也会继续运行 用法: nohup <命令> & 它会自动创建一个文件,把运行结果输出到这个文件 当我们要杀死这个程序的时候,就要用kill kill -9 <进程号> 可以通过 ps 命令,查看进程号 这个方法显然不太好用,本来要用screen,但是偶然间看到Tmux更强大,就直接使用了Tmux Tmux  Ubuntu环境下的安装 sudo apt-get install tmux基本用法 # 启动tmux $ tmux # 退出 $ exit 或 Ctrl+D # 新建 $ tmux new -s <name> # 分离会话 $ tmux detach #查看所有窗口 tmux ls # 重接会话 使用伪窗口编号 $ tmux attach -t 0 # 重接会话 使用伪窗口名称 $ tmux attach -t xiaoqi # 杀死会话,使用会话编号 $ tmux kill-session -t 0 # 杀死会话,使用会话名称 $

tmux 快捷操作

会有一股神秘感。 提交于 2020-02-05 17:27:29
tmux 默认的快捷键前缀是Ctrl+b(下文用prefix指代),按下前缀组合键后松开,再按下命令键进行快捷操作,比如使用prefix d分离会话(应该写作prefix d而不是prefix+d,因为d键不需要与prefix同时按下)。 会话 tmux new -s mysession  创建名为mysession的会话 tmux a  连接上一个会话 tmux a -t mysession  连接指定会话 prefix d  分离当前会话 窗口 prefix c  创建一个新窗口 prefix &  关闭当前窗口 prefix w  列出所有窗口,可进行切换 prefix n  进入下一个窗口 prefix p  进入上一个窗口 面板 prefix %  水平方向创建窗格 prefix "  垂直方向创建窗格 prefix x  关闭当前窗格 prefix Up|Down|Left|Right  根据箭头方向切换窗格 prefix space(空格键)  重新排列当前窗口下的所有窗格 prefix z  放大当前窗格(再次按下将还原) 来源: CSDN 作者: iotisan 链接: https://blog.csdn.net/iotisan/article/details/104182509

SpringBoot加载静态资源的问题

好久不见. 提交于 2020-02-05 06:11:44
SpringBoot在加载静态资源时,与之相关的配置项主要有四个 spring.mvc.view.prefix=/static/ spring.mvc.view.suffix=.html spring.mvc.static-path-pattern=/static/** spring.resources.static-locations=classpath:/static/page/ 其中: 1. spring.mvc.view.prefix和spring.mvc.view.suffix两者是前缀与后缀,需要注意的是,这里说的前缀与后缀是相对于Controller层返回的String或者ModelAndView里面的viewName的。例如,配置文件用的是上面的配置文件,Controller层如下: @Controller @RequestMapping("/page") public class PageController { @RequestMapping("/index") public String index(){ return "index2"; } } 此时,会返回的是存储静态资源目录下的static目录下的index2.html文件。 2.spring.resources.static-locations: 这个就是配置上面讲的静态资源配置目录

7-5 服务器统一出错处理2

霸气de小男生 提交于 2020-02-03 03:22:35
代码: https://github.com/NIGHTFIGHTING/go_learning/tree/master/src/errhandling/filelistingserver 运行:go run web.go 打开chrome: http://localhost:8888/li ,此时server并没有挂掉 原因:panic运行defer遇见recover 修改版本1:加入defer recover处理 // 函数式编程 func errWrapper( handler appHandler) func( http.ResponseWriter,*http.Request) { return func(writer http.ResponseWriter, request *http.Request) { // 防止访问这种地址出错,http://localhost:8888/li defer func() { if r := recover(); r != nil { log.Printf("Panic: %v", r) http.Error(writer, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) } }() err := handler

linux下源码安装

本秂侑毒 提交于 2020-02-01 20:22:26
●源码的安装(./configure –prefix 命令用法) 一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。 Configure是一个可执行脚本,它有很多选项,使用命令./configure –help输出详细的选项列表,如下: -bash-3.00# ./configure --help Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: --cache-file=FILE cache test results in FILE --help print this message --no-create do not create output files --quiet, --silent do not print `checking...' messages --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX [/usr

JS 优雅指南 2

天涯浪子 提交于 2020-01-31 22:46:15
1. 富有准确性的命名 事实上,你完全可以使用 doSomeThing 代替所有的函数,毕竟它们真的只是提供某些微不足道的功能,但当你有了多个甚至是成百上千的函数时,这是一个灾难。这是一个浅显易懂的道理,即便是毫无经验的开发人员也会意识到命名爆炸的问题,他们隐约明白了什么是好的编程风格,但最后,甚至是大多数都止步于 doSomeThing 到 “优美” 的某一站上。 例 1, 命名只需要有必要的词,除非有必要,否则不要堆砌 // bad const theBook = {} const _b = {} const bookObj = {} const newBook = {} // good const book = {} 例 2,可读的条件判断 // bad if (username && username.includes('prefix-')) {} // bad const prefix = username && username.includes('prefix-') // bad const availableName = username && username.includes('prefix-') // good const hasPrefixName = username && username.includes('prefix-') 例 3,可读的函数

linux安装php & nginx

我怕爱的太早我们不能终老 提交于 2020-01-29 10:58:44
1.安装libxml2 地址: http://ftp.gnome.org/pub/GNOME/sources/libxml2/ wget http://caesar.acc.umu.se/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.30.tar.gz ./configure --prefix=/usr/local/libxml2 make make install 失败的话执行 make clean,再重复上述操作 2.安装php -下载php ... ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2 make make install 也可以使用yum安装软件包: yum list | grep xxx yum install -y libpng-devel libjpeg-devel freetype-devel libmcrypt-devel ... ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/usr/local/php5.6/etc --enable-fpm --with-libxml-dir=

rpm包的rpmbuild spec文件详解

守給你的承諾、 提交于 2020-01-26 01:08:21
http://machael.blog.51cto.com/829462/213477 上一篇日志写到,为什么要制作rpm包,以及如何使用.src.rpm文件生成rpm包。最后部分还看到.src.rpm的内容,实际上 就是由.tar.gz源码、补丁软件和.spec脚本组成的。由此知道,使用.spec生成rpm包是比较简单的,因为.src.rpm通常都是由软件开 发者或者第三方的专业制作人根据源码调试好的,所以,只要处理好平台兼容性和相关的版本,不会遇到太大的问题。 但我觉得单纯明白用.spec生成rpm是不够的。常见有两个原因值得我们去了解用如何用源码制作rpm: 引用 1、并不是所有的软件都提供.rpm方式的。 这是最常见的原因。负责任的开发者应提供rpm方式的二进制软件包,以便用户选择使用。但也很常见就是软件作者只是发布了源码,最后一部分的编译和安装需要用户自行解决。我不想深究对错问题,反正知道有这样的情况就可以了; 2、自行打包一些文件或自己开发了一套软件 当 然,使用tar包或cpio等也可以打包文件,甚至比制作rpm要简单很多。但如果您想在安装的过程中就把一套额外的软件部署完毕,那使用rpm方式通常 是是唯一的方法。而且rpm还有数据库协助软件升级、文件校验等,结合yum升级方式,没有理由不选择rpm,特别是对于最终用户,我认为提供rpm包是 最佳的方法。 一

Flume六:自定义 Sink

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-25 08:22:48
案例 自定义实现类 package com.flume.sinks; import org.apache.flume.*; import org.apache.flume.conf.Configurable; import org.apache.flume.sink.AbstractSink; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Created by HP on 2020/1/19. */ public class MySink extends AbstractSink implements Configurable{ //定义logger对象 Logger logger; //定义两个属性 private String prefix; private String subfix; @Override public void configure(Context context) { //获取logger对象,用于将数据打印到控制台,方便测试查看数据输出的效果 logger=LoggerFactory.getLogger(MySink.class); //读取配置文件,为参数赋值 prefix=context.getString("prefix","prefix"); subfix