Помилка Octave-Gnuplot-AquaTerm: встановити розширений заголовок aqua терміналу "Малюнок 1" ... невідомий тип терміналу "


136

Я встановив Octave та gnuplot через Homebrew та завантажив AquaTerm.dmg. Коли я намагаюся зробити змову, я отримую таке повідомлення:

octave:4> plot(x,y)

gnuplot> set terminal aqua enhanced title "Figure 1" font "*,6"

                  ^
     `line 0: unknown or ambiguous terminal type; type just 'set terminal' for a list`

У Баш терміналі set terminal, set Terminal, set term, (і те ж саме, а потім «аква» теж) і т.д. нічого не дає. Я знову спробував побудувати графік із октави, де "AquaTerm" вже відкритий, але нічого. Я спробував побудувати графік прямо з gnuplot, але та сама проблема .. Як я можу зробити це "встановити термінал aqua"?

Початкове повідомлення Gnuplot говорить " Terminal type set to 'x11'", але не знаю, як це змінити, попередні команди не працювали ні.

Оскільки AquaTerm не був встановлений з Homebrew, можливо, octave / gnupot не може його знайти ... але ідеї немає. Будь-яка здогадка? Дякую!


Що за земля це стосується башти? Вам пропонується ввести set terminalgnuplot, а не bash.
н. 'займенники' м.

1
@nm я спробував у bash, тому що введення rigt "встановити термінал" після повідомлення (і, отже, всередині октави) дав помилку. Тепер я спробував відкрити gnuplot і набрати "встановити термінал", і він спрацював, він показує список, в якому Aqua немає. Дякуємо за посилання! Оскільки я встановив gnuplot, brewя не збирав його безпосередньо. якщо я завантажую і компілюю gnuplot за межами варіння, не знаю, чи виникне конфлікт чи проблема з октавою ...
PGreen

1
Для користувачів Linux: Спробуйте встановити gnuplot-x11та додати setenv("GNUTERM","X11")до свого ~/.octaverc.
Мартін Тома

setenv("GNUTERM","qt")працював на мене.
giapnh

Відповіді:


110

Я повинен був додати setenv("GNUTERM","X11")до OCTAVE_HOME/share/octave/site/m/startup/octaverc(OCTAVE_HOME зазвичай / USR / місцеві) , щоб змусити його працювати на постійній основі .

Знайдено рішення та детальніше про це: http://www.mac-forums.com/forums/os-x-apps-games/242997-plots-octave-dont-work.html


Якщо ви хочете повернути його, початкове значення є aqua. octave:1> getenv GNUTERM ans = aqua
DeepSpace101

8
Якщо ви не хочете оновлювати глобальний octaverc, просто створіть файл ~ / .octaverc і введіть туди команду setenv.
Радж

83
Щойно я встановив Octave 3.8.0 на OS X 10.9 (Mavericks), і пакет Octave, здається, створений для використання Qt для вікон (а не aqua або x11) за допомогою gnuplot_qt. Створення ~ / .octaverc-файлу, що містить setenv("GNUTERM","qt")працював для мене (дякую @Raj та @nightlyop).
tomelgin

якщо ви використовували Homebrew для встановлення Octave, ви знайдете файл octaverc таким чином:usr/local/Cellar/octave/4.0.0_5/share/octave/site/m/startup/octaverc
Кевін Чжао

3
setenv ("GNUTERM", "qt") працював для мене на Сьєррі 10.12.6. "x11" не зробив.
Тревіс Томас

79

Я зіткнувся з подібною проблемою з Octave-cli, версія 3.8.0, в ОС X 10.9.1. Спостерігаючи, як Octave-gui все ще може складати графіки, і читаючи відповідь з octaverc, я отримав змову працювати з Octave-cli, додавши рядок setenv("GNUTERM","qt")до /usr/local/octave/3.8.0/share/octave/ site / m / startup / octaverc

Мені не довелося перевстановлювати gnuplot або інші залежності.


Це прекрасно! Дякую!
Thomas Ingalls

6
Налаштування GNUTERM на qt працювало на мене (не X11), але я помістив його у свій домашній каталог (~ / .octaverc), а не у вказаний вище каталог. Я не знаю, в чому різниця, але домашній каталог здається більш нейтральним при установці.
sepans

3
Я також додав setenv ("GNUTERM", "qt") у свій домашній каталог ~ / .octaverc, і змова з октавою зараз працює як шарм. Дякую
chekkal

Дякую. Працює для Ель-Капітан!
Рохан

70

Встановлення типу терміналу на x11 вирішило б проблему, але якщо ви хочете, щоб AquaTerm працював з gnuplot, ось як:

Спочатку нам потрібно видалити існуючу установку gnuplot, відкрити термінал і запустити цю команду.

brew uninstall gnuplot

Завантажте AquaTerm звідси: http://sourceforge.net/projects/aquaterm/ та встановіть, як і будь-яке додаток OSX.

З цього моменту є два способи задовольнити gnuplot задоволеним aquaterm. Метод 1 простіше, але не працює для мене, оскільки моя установка AquaTerm не створила правильних посилань у / usr / local / lib, метод 2 - це той, який працював на мене, і я ділюсь кроками, які я вжив, щоб його працювати.

Спосіб 1: Просто перевстановіть gnuplot після встановлення AquaTerm, здається, вирішити цю проблему для людей.

brew install gnuplot

Перейдіть до кроку перевірки, щоб побачити, чи все спрацювало, якщо ні, дотримуйтесь метод 2

Спосіб 2: Цей метод є більш досконалим, але він гарантовано працює, якщо ви маєте терпіння.

По суті, gnuplot не може знайти файли бібліотеки AquaTerm, тому aqua не відображається як опція типу терміналу після того, як ми встановили gnuplot. Нам потрібно змінити рецепт домашнього приготування для gnuplot, щоб активувати підтримку Aquaterm, відкрити рецепт заварки для gnuplot, ввівши:

brew edit gnuplot

І додайте ці рядки, як показано в цьому повідомленні фіксації github, це дозволить опції варити для gnuplot включення aquaterm https://github.com/mxcl/homebrew/isissue/14647#issuecomment-21132477

Перевірте, чи існують відповідні посилання бібліотеки AquaTerm, виконавши ці перевірки:

ls /usr/local/lib/libaquaterm*
ls /usr/local/include/aquaterm/*

Перший рядок повинен повернути деякі * .dylib файли, другий рядок вище повинен повернути деякі * .h файли, якщо їх немає, запустіть ці команди з терміналу:

sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm /usr/local/lib/libaquaterm.dylib
sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm /usr/local/lib/libaquaterm.1.0.0.dylib
sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/Headers/* /usr/local/include/aquaterm/.

Іноді це необхідно, оскільки інсталятор AquaTerm не може створити посилання в потрібних місцях через проблеми з дозволом. Після створення / usr / local / символьних посилань перевстановіть gnuplot так:

brew install gnuplot --with-aquaterm # (formerly --aquaterm in old versions)

Переконайтесь, що gnuplot може бачити aquaterm, виконуючи наведені нижче кроки та щасливі змови!


Перевірте: чи правильно налаштовано gnuplot за допомогою AquaTerm, запустивши gnuplot в терміналі

gnuplot

Введіть це в термінал gnuplot

gnuplot> set term

Шукайте лінію

Available terminal types:
         aqua  Interface to graphics terminal server for Mac OS X
         ...

Якщо ви бачите цей рядок вище, тоді ви закінчили, gnuplot налаштований правильно і всі радіють.


Спосіб 2 повністю!
Бен Міллер

2
FYI: мені не потрібно було оновлювати рецепт gnuplot; просто додавання посилань перед встановленням gnuplot зробив свою справу. Схоже, що будь-які проблеми з боку домашньої мови були вирішені. Ура!
Арон

3
brew reinstall gnuplot --aquatermпрацював як шарм ... aquaterm, мабуть, уже був встановлений на той момент.
Піклер

6
з моєю установкою мені довелося brew install gnuplot --with-aquaterm; Мабуть, заварений рецепт gnuplot для 4.6.6 використовує "--with-aquaterm" зараз: немає потреби редагувати рецепт або створювати ці посилання, але вам потрібно явно додати --with-aquaterm при встановленні gnuplot.
Майк Соколов

Дякую за велику допомогу ... Мені це спрацювало добре за допомогою 2-го методу
minhas23

47

Я знайшов спосіб генерувати сюжети з октавою, хоча використовує не AquaTerm, а x11. Проблема полягала в тому, що Октава "змушував" гнуплот використовувати акватерм для побудови сюжету. Замість установки та інтеграції Aquaterm в Gnuplot, в октаві надрукував: setenv GNUTERM x11. При цьому графіки генеруються з x11, який вже є у списку терміналів gnuplot ( set terminal). Я знаю, що це патч, але нарешті я не проти aquaterm або x11, я просто хочу, щоб генерувалися сюжети


1
Дякую, ваша відповідь допомогла мені після того, як я спробував принаймні півдесятка окремих рішень
Кім Стек

2
Якщо використовується Linux Mint 16, можливо, вам доведеться встановити gnuplot-x11. sudo apt-get install gnuplot-x11 Потім зробіть так, як сказав PGreen, я виявив, що мій файл conf був у /etc/octave.conf. Сподіваюся, що це допомагає.
користувач1153623

24

set terminalабо set termце команда gnuplot.

Вам просто потрібно запустити gnuplotз командного рядка, щоб отримати доступ до оболонки gnuplot.

Однак це не спрацювало для мене, як і setenv("GNUTERM","x11")в, /usr/local/share/octave/site/m/startup/octavercабо ~/.octaverc(обидва робили те саме).

Тож я біг set termу оболонці gnuplot, як не бачив x11у списку. Я використовував homebrew для встановлення gnuplot, тому спершу видалив його brew uninstall gnuplot, а потім встановив за x11допомогою --with-xпрапора для цього:

brew install gnuplot --with-x

Це вирішило для мене питання. Використовуйте brew info gnuplotдля перегляду списку прапорів для встановлення gnuplot.

PS І так, я завантажив X11 dmg і встановив його за допомогою інсталятора пакета, все ще gnuplot не мав x11 у списку підтримуваних терміналів.


2
Дуже корисний. Зауважте, що графіка мені здається більш чистою, використовуючи термінали QT або WxWindows, які можна встановити (якщо потрібно, за бажанням), використовуючи відповідно параметри встановлення --qtі --wxварити.
Брайан П

1
Замість цього brew install gnuplot --with-xвикористовуйте brew reinstall gnuplot --with-x11(якщо gnuplot уже встановлений; --with-x здається більше не підтримується)
Tushar

10

Ви можете спробувати це:

>> brew reinstall gnuplot --with-aquaterm

або

>> brew uninstall gnuplot
>> brew install gnuplot --with-aquaterm

Можна використати ще одне пояснення.
Єнс

3
Зауважте, що вам потрібно встановити aquaterm перед перевстановленням gnuplot. aquaterm.github.io
Лі Авітал

НЕ with-aquatermбільше не є допустимим варіантом для Gnuplot: github.com/Homebrew/homebrew-core/issues/46923
Ty Hitzeman

8

Створіть файл .octavercу своєму домашньому каталозі та встановіть GNUTERM на X11

echo "setenv('GNUTERM','X11')" > ~/.octaverc

Відкрийте октавний термінал і введіть, sombreroщоб перевірити, чи працює змова

octave:1> sombrero

6

Це працювало для мене:

  1. Видалити gnuplot

    заваріть видалення gnuplot

  2. Встановіть AquaTerm. Завантажити його можна звідси: http://sourceforge.net/projects/aquaterm/

  3. Перевстановіть gnuplot

    варити встановити gnuplot


Якщо ви все ще отримуєте "Помилка сегментації: 11" та "не можете завантажити відповідний шрифт", ці команди працювали для мене: brew uninstall fontconfig && brew install fontconfig --universal
Julian

6

Антон прав. Тепер ви можете просто встановити gnuplot за допомогою параметра --with-aquaterm. Я б підтримав його відповідь, якби у мене було достатньо балів репутації, щоб це зробити.

$ brew uninstall gnuplot
$ brew install gnuplot --with-aquaterm

Макунту згадував вище, що це питання обговорювалося на Github.

https://github.com/mxcl/homebrew/isissue/14647#issuecomment-21132477

Але він порадив використовувати варіант --aquaterm. Якщо ви уважно подивіться на посилання github, то побачите, що варіант - with-aquaterm. Перевстановлення gnuplot за допомогою цього параметра сьогодні дозволило мені запустити старий код октави, який використовує gnuplot для побудови графіків на ОС X.


5

У мене є відповідь, яка повинна вирішити проблему, з якою ви стикаєтесь. По суті, для мене проблема полягала в тому, що збірка gnuplot не знаходила належних бібліотек AquaTerm. Перевірте посаду, яку я зробив:

http://deveneezer.blogspot.com/2013/06/octave-gnuplot-and-aquaterm.html


1
Дякую за ваше рішення! :)
PGreen

4

У моєму випадку, на Mas OS Mojave, рішення, яке працювало на мене, було дещо іншим (це могло бути лише питанням синтаксису). Після обговорення цієї теми я прийшов із рішенням, яке працювало на мене - можливо, важливо відзначити, що для мене можна було побудувати графік із командного рядка Octave, а не з командного рядка Octave безпосередньо в терміналі.

Тому я створив ˜/.octavercфайл і додав до нього таку команду:

setenv GNUTERM qt

Просто вийдіть із командного рядка з октави та ввійшли знову та змогли побудувати графік.


4

Для мене працювало наступне:

setenv("GNUTERM","qt")

Можна або запустити його на кліпі октави, для локального запуску, або встановити у файлі запуску октави для постійного.

/usr/local/octave/3.8.0/share/octave/site/m/startup/octaverc

Просто пам’ятайте, якщо ви зміните файл octaverc, вам потрібно мати права на запис.


2

Що для мене працювало - це встановити gnuplot-nox. Також дивіться https://bugs.mageia.org/show_bug.cgi?id=4866

Здається, найкращий спосіб встановити gnuplot-nox - це встановити фінк. http://sourceforge.net/projects/fink/?source=dlp

fink install gnuplot-nox

начебто добре справляється. Однак установка провалилася в один момент. Тож я встановив gnuplot-minimal, потім знову запустив gnuplot-nox, і все працювало чудово.

fink install gnuplot-minimal
fink install gnuplot-nox

gnuplot-nox install, здавалося, встановив aqua як термінал за замовчуванням для gnuplot. Перевірте це, перейшовши в оболонку gnuplot. Щоб перевірити, чи працює змова, введіть plot (1) в оболонку. Він повинен показувати сюжет у вікні.

Сподіваюся, що працює для вас.

Як і запропоновано в інших публікаціях, встановлення GNUTERM на X11 не вирішило для мене цю проблему. Також пряма установка AquaTerm для Mac OSX не вирішила цю проблему.


2

Відповідь вже міститься у вищесказаному, але я думаю, що це простіше:

nano ~/.octaverc

додати це:

setenv("GNUTERM", "X11")

Ось це перезапуск октави.


0

Ось рішення, яке працювало для мене (на основі різних частин коментаря mackuntu)

Gnuplot, ймовірно, вже встановлений для вас командою brew install octave, тому нам потрібно його видалити спочатку

brew uninstall gnuplot

Потім потрібно встановити aquaterm ( http://sourceforge.net/projects/aquaterm/ )

Після завершення встановлення вам потрібно встановити gnuplot знову. Це тому, що Brew виявляє присутність aquaterm під час установки та не проводитиме жодних перевірок на це після.

brew install gnuplot --with-aquaterm

Якщо ви запускаєте gnuplot після встановлення, він повинен показувати, що aquaterm підтримується. І вся графіка в октаві буде працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.