源码编译tmux
(1)clone 源代码仓库:
$ git clone https://github.com/tmux/tmux.git
(2) 编译之前先安装libevent,去官网下载tar包:
http://libevent.org
选择需要下载的版本复制链接地址,使用wget下载到本地(图形化的也可以直接下载),如(选择合适的版本,一般选stable即可):
wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
tar -xzf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable/
$ ./configure && make
$ sudo make install
(3) 编译tmux:
cd tmux/
sh autogen.sh
./configure && make
安装编译过程可能会提示一些错误:
1)aclocal command not found
原因:自动编译工具未安装,安装上即可:
centOS: yum install automake
- configure: error: "curses or ncurses not found"
ubuntu:apt-get install libncurses5-dev
centos: yum install ncurses-devel
(4) 编译成功之后会在tmux下生成一个可执行程序:tmux
./tmux
执行的时候可能会出现找不到库的情况:
./tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
把安装好的libevent库的路径使用软链接到对应的目录:
64位:
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
32位:
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
(5)设置环境变量
export PATH=xxx
(6)常用的tmux配置:
[root@c936a812-4ccb-491f-8eee-1dd4f670494b ~]# cat .tmux.conf
set -g prefix C-x
unbind C-b
setw -g mode-keys vi
#允许用鼠标切换窗口/调节分屏大小
setw -g mouse-resize-pane on
setw -g mouse-select-pane on
setw -g mouse-select-window on
setw -g mode-mouse on set-option -g history-limit 5000 bind -t vi-copy 'v' begin-selection # Begin selection in copy mode.
bind -t vi-copy 'C-v' rectangle-toggle # Begin selection in copy mode.
bind -t vi-copy 'y' copy-selection # Yank selection in copy mode. bind Left swap-window -t -1
bind Right swap-window -t +1 bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}" bind k selectp -U
bind j selectp -D
bind h selectp -L
bind l selectp -R bind ^k resizep -U 10
bind ^j resizep -D 10
bind ^h resizep -L 10
bind ^l resizep -R 10 bind ^u swapp -U
bind ^d swapp -D bind ^a last
bind ^q killp set-window-option -g window-status-current-bg yellow
set-window-option -g window-status-current-fg black # Plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum' # Plugin configure
set -g @continuum-restore 'on' run '~/.tmux/plugins/tpm/tpm'
You have new mail in /var/spool/mail/root
其中需要用到插件管理,需要先安装插件管理器:
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
源码编译tmux的更多相关文章
- debian下如何源码安装tmux
一.源码安装ncurses库 1.1 获取源码 wget https://invisible-island.net/datafiles/release/ncurses.tar.gz tar xvf n ...
- Android 5.0源码编译问题
如果是自己通过repo和git直接从google官网上download的源码,请忽略这个问题,但是由于google在国内被限制登录,通过这一种方法不是每个人都能download下来源码,通常的做法就是 ...
- Android stdio Apktool源码编译
Android Apktool源码编译 标签(空格分隔): Android Apktool 源码编译 需求 习惯NetBeans调试smali需要用Apktool反编译apk,需要用-d的参数才能生成 ...
- SSH/SSL 源码编译安装简易操作说明
环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...
- Hadoop源码编译过程
一. 为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...
- World Wind .NET源码编译问题处理
World Wind .NET源码编译问题处理 下载了World_Wind_1.4.0_Source源码(http://worldwindcentral.com/wiki/NASA_World_W ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- Linux 安装node.js ---- 源码编译的方式
一 : 普通用户: 安装前准备环境: 1.检查Linux 版本 命令: cat /etc/redhat-release 2.检查 gcc.gcc-c++ 是否安装过 命令: rpm -q gcc rp ...
- 烂泥:mysql5.5数据库cmake源码编译安装
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...
随机推荐
- Http:设置 浏览器中MIME 类型
http://www.163ns.com/zixun/post/4602.html 自定义MIME类型支持FLV的相关设置 网络空间支持FLV的相关设置其实很简单,就是自定义一个MIME类型 一般虚拟 ...
- Python3.x:遍历select下拉框获取value值
Python3.x:遍历select下拉框获取value值 Select提供了三种选择方法: # 通过选项的顺序,第一个为 0 select_by_index(index) # 通过value属性 s ...
- 照着官网来安装openstack pike之nova安装
nova组件安装分为控制节点和计算节点,还是先从控制节点安装 1.前提条件,数据库为nova创建库和账户密码来连接数据库 # mysql -u root -p MariaDB [(none)]> ...
- JAVA多线程本质分析
多线程是Java开发中的重中之重,其重要性和难度,可见一斑.掌握并精通多线程开发,是每一个程序员的必修之课.哪怕中间的过程很痛苦,只要坚持了,并最终豁然开朗了,都是一种升华. 多线程的优化:合理利用C ...
- Docker run 挂载 volume 记录
docker run -i -t -v /f/a:/f/ centos:7 /bin/bash -v 本地路径 : 挂载到 centos 中 f 文件夹 中 windows10 中 不能使用 f ...
- linux一键安装mysql脚本
#!/bin/sh if [ -s /etc/my.cnf ];then rm -rf /etc/my.cnf fi echo "------------------------------ ...
- spring boot 笔记--第三章
spring boot 笔记 第三章,使用Spring boot 构建系统: 强烈建议支持依赖管理的构建系统,Maven或Gradle 依赖管理: Spring Boot的每版本都会提供它支持的依赖列 ...
- synchornized实现原理
synchronized是基于Monitor来实现同步的. Monitor 的工作机理: 线程进入同步方法中. 为了继续执行临界区代码,线程必须获取 Monitor 锁.如果获取锁成功,将成为该监视者 ...
- ng-options 如何实现其中一项option禁选
<select class="form-control" ng-model="functionPaymentMethod" ng-options=&quo ...
- 毕业设计总结(1)-canvas画图
去年6月底完成的毕业设计,到现在也才开始给它做个总结,里面有很多可以学习和借鉴的东西. 我的毕业设计的题目是“一种路径规划算法的改进与设计”,具体的要求可参见下面的表格: 题目 一种路径规划算法的改进 ...