lỗi nano: Lỗi khi mở thiết bị đầu cuối: xterm-256color


109

Sau khi cài đặt OSX Lion, tôi đã cố gắng:

nano /etc/apt/sources.list

Nhưng tôi gặp lỗi này:

Error opening terminal: xterm-256color

Nếu tôi cố gắng chuyển tùy chọn terminal.app để mở cửa sổ đầu cuối bằng "màu xterm" thay vì xterm-256colormọi thứ đều hoạt động tốt.

Chuyện gì đang xảy ra vậy?


1
Bạn có thể thiếu một số bước ở đây - giống như bạn đã chuyển từ máy Mac sang một hệ thống Debian hoặc Ubuntu nào đó, phải không? Ít nhất tôi hy vọng bạn đã không cố gắng chỉnh sửa /etc/apt/sources.list trong Hệ thống MacOS ... :)
Henning

Câu trả lời:


167

Trên Red Hat, điều này đã làm việc cho tôi:

export TERM=xterm

thêm thông tin tại đây: http://www.cloudfarm.it/fix-error-opening-terminal-xterm-256color-unknown-terminal-type/


Làm việc cho tôi khi chạy trên hệ thống loại bỏ. Kết nối từ là OS X -> Ubuntu
Ryan Griffith

Thật thú vị, tôi đã gặp lỗi này trong một môi trường chroot-ed chỉ có các chương trình tối thiểu cho đến nay. Tôi giả định rằng có một số chương trình bị thiếu gây ra điều này, nhưng tiếc là nano không cung cấp thêm thông tin về lý do tại sao chính xác nó không thành công.
shevy

Cũng làm việc khi cố gắng sử dụng hàng đầu bên trong một hệ thống minikube kubernetes địa phương chạy như một máy ảo dựa trên buildroot bên trong VirtualBox trên Max OS X. (đó là ssh từ hệ điều hành MacOS vào một Buildroot dựa VM và tgen chạy trên cùng)
Henning

Câu trả lời này không liên quan đến câu hỏi, và đáng lẽ phải bị xóa.
Thomas Dickey

Giải pháp tương tự có vẻ đúng cho các hệ thống khác nhau, bao gồm Ubuntu / Debian và OSX (của OP). Làm thế nào là điều này không liên quan?
Meetai.com 22/09/17

28

Sau khi nâng cấp lên OSX Lion, tôi bắt đầu gặp lỗi này trên một số máy chủ (Debian / Ubuntu). Cách khắc phục đơn giản là cài đặt gói “ncurses-term” cung cấp tệp / usr / share / terminfo / x / xterm-256color.

Điều này làm việc cho tôi trên máy chủ Ubuntu, thông qua Erik Osterman .


17

Tôi có thể xác nhận đây là một vấn đề về cổng cuối. Đây là những gì làm việc cho tôi. SSH vào máy từ xa và chạy

 sudo apt-get install ncurses-term

Bùng nổ. Vấn đề đã được giải quyết.


Tôi nghĩ rằng đây có thể là một lý do tại sao nano đôi khi có thể bị lỗi - ví dụ: nếu sự cố xảy ra tại ncurses / terminfo thay thế.
shevy

6

Tôi gặp sự cố này khi kết nối với http://sdf.org thông qua Mac OS X Lion. Tôi đã thay đổi trong ngăn Terminal Preferences( + ,) > Advanced, Declare Terminal asthành VT-100.

Tôi cũng đã đánh dấu Delete Sends Ctrl-Hvì kết nối Mac này khó hiểu zsh.

Nó dường như đang hoạt động cho trường hợp sử dụng của tôi.


1
Cảm ơn câu trả lời KHÔNG liên quan đến việc thay đổi máy chủ!
DOOManiac

1
Điều này không làm việc cho tôi. Tôi kết nối từ máy Mac trong Mavericks với máy Mac trong Snow Leopard. Tôi gặp lỗi khi khởi chạy top.
Nicolas Barbulesco

@NicolasBarbulesco Ah ok Nicolas, xin lỗi nhưng tôi không còn sử dụng Mac nữa nên không thể cùng bạn test cái này được.
isomorphismes

5

Tôi cũng gặp sự cố này trên máy Mac cũ hơn mà tôi đã nâng cấp lên Lion.

Trước khi đọc mẹo về terminfo, tôi đã có thể kiếm được vi và ít làm việc hơn bằng cách thực hiện "export TERM = xterm".

Sau khi đọc mẹo, tôi lấy /usr/share/terminfotừ một máy Mac mới hơn có cài đặt mới của Lion và không có vấn đề này.

Bây giờ, mặc dù echo $TERMvẫn có sản lượng xterm-256color, vi và ít hơn bây giờ hoạt động tốt.


Đối với bất kỳ ai đang cố gắng lấy chroot chạy trên macOS, điều này sẽ khắc phục sự cố "Lỗi khi mở thiết bị đầu cuối:" bên trong chroot.

3

bằng cách nào đó và đôi khi thư mục "terminfo" bị hỏng sau khi cài đặt mới. tôi không biết tại sao, nhưng vấn đề có thể được giải quyết theo cách này:

1. Download Lion Installer from the App Store
2. Download unpkg: http://www.macupdate.com/app/mac/16357/unpkg
3. Open Lion Installer app in Finder (Right click -> Show Package
Contents)
4. Open InstallESD.dmg (under SharedSupport)
5. Unpack BSD.pkg with unpkg (Located under Packages)   Term info
will be located in the new BSD folder in /usr/share/terminfo

hy vọng nó giúp.


Tôi gặp phải lỗi tương tự và đã thử các bước bạn đề xuất. Tôi đã gặp phải một số lỗi bị từ chối quyền khi giải nén bằng unkg. Thư mục BSD xuất hiện trên màn hình của tôi và tôi đã chạy "sudo mv ~ / Desktop / BSD / usr / share / terminfo / usr / share / terminfo", sau đó khởi động lại thiết bị đầu cuối, nhưng tôi vẫn nhận được "Lỗi khi mở thiết bị đầu cuối: xterm-256color " lỗi.
Mike Lawrence,

1
có thể bạn có thể thử sendspace.com/file/hc2dus này là thư mục cuối cùng của tôi. sau khi thay thế nó, đừng quên chmod 555 / usr / share / terminfo
Luke

2
  1. chỉnh sửa .bash_profiletệp của bạn

    vim .bash_profile

  2. mạng chung

    #export TERM=xterm-256color

  3. thêm điều này

    export TERMINFO=/usr/share/terminfo

    export TERM=xterm-basic

    cho bạn .bash_profile

  4. cuối cùng

    chạy:

    source .bash_profile


1

Trường hợp của tôi là một trường hợp khá độc đáo nhưng điều này có thể giúp ích cho ai đó. Trên Android, tôi đã cố gắng sao chép nano từ thư mục nhị phân termux của mình sang / system / xbin. Đã đặt tất cả các phụ thuộc thư viện trong / system / lib và gặp lỗi này. Tệp libncurses.so.6 tôi đã sao chép từ termux có tệp TERMINFO của nó vẫn được trỏ đến /data/data/com.termux/files/usr/share/terminfo

Xem đường dẫn nhọn bằng lệnh

chuỗi path-to-libncurses.so | grep / terminfo

Để khắc phục, hãy làm cho dir và subdirs termux có thể đọc và thực thi được bởi người dùng nano hoặc sao chép thư mục terminfo ở một nơi khác và sử dụng một trình hexeditor để sửa đổi đường dẫn văn bản thuần túy trong tệp thư viện được chia sẻ.

Liên kết đến thư mục terminfo đã nén https://drive.google.com/file/d/1m1tfHgkGRehBGh1jPMK4EaTgQb9EyCG7/view?usp=drivesdk


Tôi đã gặp phải tình huống tương tự khi viết cấu hình chroot ssh. Và tôi đã sửa nó vì @Fortune đã được bán lại. tìm và sao chép thư mục terminfo vào cấu trúc thư mục chroot
Gayan Kavirathne

0

Tôi nghe nói rằng điều này có thể được khắc phục bằng cách ghi đè của bạn /usr/share/terminfobằng một từ máy tính của ai đó có cài đặt Lion. Tôi không thể xác nhận xem điều này có hoạt động hay không và rất tiếc là tôi chưa nâng cấp nên không thể cung cấp cho bạn tệp đó.


0

Bạn có thể thêm phần sau vào .bashrc của mình

if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.