無気力生活 (ノ ´ω`)ノ ~゜

脱力系エンジニア。てきとーに生きてます。

WSLのzsh、tmuxのコピペが動いてなかった(´・ω・`)

そういえば動いてないな~と放置していたんですが、最近本格的に触っている時間が増えてしまい、困っていたので対応しました。Macではreattach-to-user-namespaceを使いますがwslでは"win32yank.exe”ってのが該当します。Macで使っていたtmux.confの部分をこれに差し替えて再読込させてみたんです。

shinoyu/.tmux/tmux-Windows_Linux.conf:1: command not found: bind-key
shinoyu/.tmux/tmux-Windows_Linux.conf:2: command not found: unbind
shinoyu/.tmux/tmux-Windows_Linux.conf:3: command not found: bind-key
shinoyu/.tmux/tmux-Windows_Linux.conf:4: command not found: bind-key
shinoyu/.tmux/tmux-Windows_Linux.conf:5: command not found: unbind-key
shinoyu/.tmux/tmux-Windows_Linux.conf:6: command not found: bind

なんでや( ゚д゚)

Macだとbrew使うと普通に新し目(2.7とか)入るんですよ。もともとターミナル環境はMac先行で整備していたので、新し目バージョンの設定に沿ってconf書いてました。しかしwsl環境では読めず。

おもむろにtmux -VするとこのときのTmuxは2.1(´・ω・`)

# tmux -V
tmux 2.1
# sudo apt install tmux                                                                                                     
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
tmux はすでに最新バージョン (2.1-3build1) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

最新なんですよねぇ。どうもこのバージョンが引っ張っているパッケージは古いらしく。まあバージョン古いですからね、仕方ないですね。

# cat /etc/os-release                                                                                                         NAME="Ubuntu"
VERSION="16.04.5 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.5 LTS"
VERSION_ID="16.04"

どうやらtmuxは2.4くらいから設定の記法に破壊的変更が加わっているらしく、2.7に合わせてた設定を2.1で読もうとすると、そんなコマンドねぇ!エラーが出てくるわけです。(´・ω・`) https://qiita.com/akinoriikeda/items/867b9d9a074538815886

おそらく、Macと同じく2.7以降に上げれば解決するはず。ただしUbuntuの向いてる先が古い、ということでtmuxを自前でビルドしてしまいます。

https://github.com/tmux/tmuxをcloneします。git tagを叩くと、2.8のタグが切られていたので、ブランチをこれに切り替えてビルド。

手順

  1. sh autogen.shを実行
 autogen.sh: 15: autogen.sh: aclocal: not found
  1. ビルド失敗したので足りないライブラリ入れる
sudo apt-get install autoconf autogen
  1. sh autogen.shをして次は成功
  2. ./configureを叩いて、configure: error: "libevent not found"
  3. sudo apt install libevent-devで依存パッケージ追加して再度./configure。正常に終わる
  4. make実行。エラーtty-term.c:24:21: fatal error: ncurses.h: No such file or directory
  5. 調べてみると、これも必要らしいsudo apt install libncurses5-dev
  6. パッケージ入れてmake。通った。そのままsudo make install

一度tmuxのセッション落として、

# tmux -V
tmux 2.8

ここまでやって、最新入りましたね(`・ω・´) 一度すべてのtmux落として再度上げ直したら正常にtmuxでコピペができるようになりました。