ranger没有那个文件或目录: ‘screen‘: ‘screen‘

背景

首先ranger是正常安装,正常环境下也是可以正常使用的。当我在tmux中使用ssh远程,然后使用ssh远程的机器中的ranger,就发现ranger打开报错了。

嵌套层级:
tmux →ssh→ranger

报错信息

# ranger
                                                                            [13:37:03]
ranger version: ranger 1.9.3
Python version: 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
Locale: zh_CN.UTF-8

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/ranger/core/main.py", line 171, in main
    fm.initialize()
  File "/usr/local/lib/python3.6/site-packages/ranger/core/fm.py", line 132, in initialize
    self.ui.initialize()
  File "/usr/local/lib/python3.6/site-packages/ranger/gui/ui.py", line 127, in initialize
    self.handle_multiplexer()
  File "/usr/local/lib/python3.6/site-packages/ranger/gui/ui.py", line 500, in handle_multiplexer
    ['screen', '-Q', 'title']).strip()
  File "/usr/local/lib/python3.6/site-packages/ranger/ext/spawn.py", line 35, in check_output
    process = Popen(popenargs, stderr=fd_devnull, **kwargs)
  File "/usr/lib64/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] 没有那个文件或目录: 'screen': 'screen'

ranger crashed. Please report this traceback at:
https://github.com/ranger/ranger/issues

解决过程

我本来并没有打算解决这个问题,既然tmux ssh远程无法使用的话,好我就不在tmux中ssh中使用ranger就是了。
后来发我现,在此环境下的nvim中既然可以正常使用。也就是嵌套的层级更多了,反而可以使用了。

tmux → ssh→neovim→ranger

这样就激起了我的好奇心。看来这个问题是可以解决的。

对比了一下环境变量的不同,后来发现是因$TERM变量的值不同导致的。

检查$TERM变量的值
tmux中我的执行结果如下:

 # echo $TERM
screen-256color

不在tmux中的值是:

echo $TERM
xterm-256color

这样就发现了两者的区别了。

解决方法

运行ranger之前执行以下语句:

export TERM=xterm-256color

然后在运行ranger就可以正常打开了。

参考文献

https://github.com/ranger/ranger/issues/1805

Supongo que te gusta

Origin blog.csdn.net/lxyoucan/article/details/121590347
Recomendado
Clasificación