ข้อผิดพลาดนาโน: ข้อผิดพลาดในการเปิดเทอร์มินัล: xterm-256color


109

หลังจากการติดตั้ง OSX Lion ฉันพยายาม:

nano /etc/apt/sources.list

แต่ฉันได้รับข้อผิดพลาดนี้:

Error opening terminal: xterm-256color

หากฉันพยายามเปลี่ยนการตั้งค่า terminal.app เพื่อเปิดหน้าต่างเทอร์มินัลเป็น "xterm color" แทนxterm-256colorทุกอย่างจะทำงานได้ดี

เกิดอะไรขึ้น?


1
คุณอาจพลาดขั้นตอนบางอย่างที่นี่เช่นคุณเปลี่ยนจาก Mac ไปยังระบบ Debian หรือ Ubuntu ใช่ไหม? อย่างน้อยฉันหวังว่าคุณจะไม่พยายามแก้ไข /etc/apt/sources.list ในระบบ MacOS ... :)
Henning

คำตอบ:


170

ใน Red Hat สิ่งนี้ใช้ได้กับฉัน:

export TERM=xterm

ข้อมูลเพิ่มเติมที่นี่: http://www.cloudfarm.it/fix-error-opening-terminal-xterm-256color-unknown-terminal-type/


ทำงานให้ฉันเมื่อรันบนระบบลบ การเชื่อมต่อจาก OS X -> Ubuntu
Ryan Griffith

ที่น่าสนใจคือฉันมีข้อผิดพลาดนี้ในสภาพแวดล้อม chroot-ed ที่มีโปรแกรมเพียงเล็กน้อยเท่านั้น ฉันคิดว่ามีบางโปรแกรมหายไปที่ทำให้เกิดปัญหานี้ แต่น่าเสียดายที่ nano ไม่ได้ให้ข้อมูลเพิ่มเติมว่าเหตุใดจึงล้มเหลว
shevy

ใช้งานได้เช่นกันเมื่อพยายามใช้ top ภายในระบบ kubernetes ในพื้นที่ของ minikube ที่ทำงานเป็น VM ตาม buildroot ภายใน Virtualbox บน Max OS X (ซึ่งเป็น ssh จาก MacOS ไปยัง VM ที่ใช้ Buildroot และ tgen run top)
Henning

คำตอบนี้ไม่เกี่ยวข้องกับคำถามและควรถูกลบไปแล้ว
Thomas Dickey

ดูเหมือนว่าโซลูชันเดียวกันจะถูกต้องสำหรับระบบต่างๆรวมถึง Ubuntu / Debian และ OSX (ของ OP) เรื่องนี้ไม่เกี่ยวข้องอย่างไร
Meetai.com

28

หลังจากอัปเกรดเป็น OSX Lion ฉันเริ่มได้รับข้อผิดพลาดนี้บนเซิร์ฟเวอร์บางตัว (Debian / Ubuntu) การแก้ไขเป็นเพียงการติดตั้งแพ็คเกจ "ncurses-term" ซึ่งมีไฟล์ / usr / share / terminfo / x / xterm-256color

นี้ทำงานให้ฉันบนเซิร์ฟเวอร์ Ubuntu ผ่านErik Osterman


17

ฉันสามารถยืนยันได้ว่านี่เป็นปัญหาการระบุข้อมูล นี่คือสิ่งที่ได้ผลสำหรับฉัน SSH เข้ากับเครื่องระยะไกลและเรียกใช้

 sudo apt-get install ncurses-term

บูม แก้ไขปัญหา.


ฉันคิดว่านี่อาจเป็นสาเหตุหนึ่งที่บางครั้งนาโนอาจล้มเหลวเช่นหากปัญหาเกิดขึ้นที่ ncurses / terminfo แทน
shevy

6

ฉันมีปัญหานี้ในการเชื่อมต่อกับhttp://sdf.orgผ่าน Mac OS X Lion ฉันเปลี่ยนภายใต้บานหน้าต่างTerminal Preferences( + ,) เป็น> AdvancedDeclare Terminal asVT-100 .

ฉันทำเครื่องหมายด้วยDelete Sends Ctrl-Hเพราะการเชื่อมต่อ Mac เครื่องนี้สับสนzshเพราะการเชื่อมต่อแม็คทำให้เกิดความสับสน

ดูเหมือนว่าจะใช้ได้กับกรณีการใช้งานของฉัน


1
ขอบคุณสำหรับคำตอบที่ไม่เกี่ยวข้องกับการเปลี่ยนเซิร์ฟเวอร์!
DOOManiac

1
สิ่งนี้ไม่ได้ผลสำหรับฉัน ฉันเชื่อมต่อจาก Mac ใน Mavericks กับ Mac ใน Snow Leopard topฉันได้รับข้อผิดพลาดเมื่อฉันเปิด
Nicolas Barbulesco

@NicolasBarbulesco อ่าตกลง Nicolas ขอโทษนะ แต่ฉันไม่ได้ใช้ Mac แล้วฉันจึงไม่สามารถทดสอบสิ่งนี้กับคุณได้
isomorphismes

5

ฉันก็มีปัญหานี้ใน Mac รุ่นเก่าที่ฉันอัปเกรดเป็น Lion

ก่อนที่จะอ่านคำแนะนำ terminfo ฉันสามารถรับ vi และทำงานได้น้อยลงโดยทำ "export TERM = xterm"

หลังจากอ่านเคล็ดลับแล้วฉันก็คว้า /usr/share/terminfoจาก Mac รุ่นใหม่ที่มีการติดตั้ง Lion ใหม่และไม่มีปัญหานี้

ตอนนี้แม้ว่าจะecho $TERMยังคงให้ผลตอบแทนxterm-256colorแต่ตอนนี้ vi และน้อยลงก็ใช้ได้ดี


สำหรับใครก็ตามที่พยายามเรียกใช้ chroot บน macOS การดำเนินการนี้จะแก้ไขปัญหา "Error opening terminal:" ภายใน chroot

3

อย่างไรก็ตามและบางครั้งโฟลเดอร์ "terminfo" เกิดความเสียหายหลังจากการติดตั้งใหม่ ฉันไม่รู้ว่าทำไม แต่ปัญหาสามารถแก้ไขได้ด้วยวิธีนี้:

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

หวังว่ามันจะช่วยได้


ฉันพบข้อผิดพลาดเดียวกันและลองทำตามขั้นตอนที่คุณแนะนำ ฉันพบข้อผิดพลาดในการปฏิเสธการอนุญาตจำนวนหนึ่งขณะแกะกล่องด้วย unkg โฟลเดอร์ BSD ปรากฏบนเดสก์ท็อปของฉันและฉันรัน "sudo mv ~ / Desktop / BSD / usr / share / terminfo / usr / share / terminfo" จากนั้นรีสตาร์ทเทอร์มินัล แต่ฉันยังคงได้รับ "Error opening terminal: xterm-256color "ข้อผิดพลาด.
Mike Lawrence

1
บางทีคุณอาจลองใช้sendpace.com/file/hc2dusซึ่งเป็นโฟลเดอร์ terminfo ของฉัน หลังจากเปลี่ยนแล้วอย่าลืม chmod 555 / usr / share / terminfo
Luke

2
  1. แก้ไข.bash_profileไฟล์ของคุณ

    vim .bash_profile

  2. commnet

    #export TERM=xterm-256color

  3. เพิ่มสิ่งนี้

    export TERMINFO=/usr/share/terminfo

    export TERM=xterm-basic

    ไปยังไฟล์ .bash_profile

  4. ในที่สุด

    วิ่ง:

    source .bash_profile


1

เหมืองเป็นกรณีที่ไม่เหมือนใคร แต่สิ่งนี้สามารถช่วยใครบางคนได้ บน Android ฉันพยายามคัดลอก nano จากโฟลเดอร์ไบนารี termux ไปยัง / system / xbin วางการอ้างอิงไลบรารีทั้งหมดใน / system / lib และได้รับข้อผิดพลาดนี้ ไฟล์ libncurses.so.6 ที่ฉันคัดลอกมาจาก termux มีไฟล์ TERMINFO ยังคงชี้ไปที่ /data/data/com.termux/files/usr/share/terminfo

ดูเส้นทางชี้ด้วยคำสั่ง

สตริง path-to-libncurses.so | grep / terminfo

เมื่อต้องการแก้ไขให้ทำให้ termux terminfo dir และ subdirs สามารถอ่านและเรียกใช้งานได้โดยผู้ใช้ nano หรือคัดลอกโฟลเดอร์ terminfo ที่อื่นและใช้ hexeditor เพื่อแก้ไขเส้นทางข้อความธรรมดาในไฟล์ไลบรารีที่แบ่งใช้

ลิงก์ไปยังโฟลเดอร์ terminfo ที่บีบอัดไว้ https://drive.google.com/file/d/1m1tfHgkGRehBGh1jPMK4EaTgQb9EyCG7/view?usp=drivesdk


ฉันพบสถานการณ์ที่คล้ายกันเมื่อทำการกำหนดค่า chroot ssh และฉันแก้ไขมันเนื่องจาก @Fortune มี menstioned ค้นหาและคัดลอกโฟลเดอร์ terminfo ไปยังโครงสร้างโฟลเดอร์ chroot
Gayan Kavirathne

0

ฉันได้ยินมาว่าสิ่งนี้สามารถแก้ไขได้โดยการเขียนทับ/usr/share/terminfoด้วยตัวคุณเองจากคอมพิวเตอร์ของใครบางคนที่ติดตั้ง Lion ที่ใช้งานได้ ฉันไม่สามารถยืนยันได้ว่าจะใช้งานได้หรือไม่และขออภัยที่ฉันยังไม่ได้อัปเกรดจึงไม่สามารถให้ไฟล์นั้นแก่คุณได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.