PascalABC.NET - он спрашивает путь куда ставить, а dotnet - установка идет автоматом с помощью winetricks dotnet*
Я бы был Вам очень признателен если бы Вы записали и выложили видео установки. Мы бы тогда начали пробовать на различных устройствах и определять типичные глюки и проблемы.
хорошо, постараюсь сделать запись в ближайшее время
Благодаря наводкам @zhurlik получилось запустить PascalABC.NET в Linux с помощью wine.
Компилятор работает без ошибок. В среде разработки не работает справка “Образцы кода” и требуются кое-какие доп. настройки. Остальное работает отлично (в том числе, процесс дебага, ссылки, подсказки, графические модули и т.д.).
Шаги:
-
sudo apt install wine winetricks
. -
winecfg
→ Библиотеки → в списке выбираемmscoree
и указываемСторонняя (Windows)
→ Нажимаем Применить, закрываем. -
winetriсks dotnet471
. Процесс довольно длительный, друг за другом будет установлено несколько версийdotnet
. Ошибки, в том числе об отсутствии Mono, можно игнорировать и смело жать Далее, Ок и т.д. - Скачиваем PascalABC.NET StandardPack.
-
wine ~/PascalABCNETSetup.exe
(выбираем путь до файла установки) → Снимаем галочку с Microsoft .NET Frameword (мы его уже установили) → Выбираем куда устанавливать (лучше всего прямо на C:/, чтобы в пути не было пробелов) → После установки жмем Закрыть. -
wine ~/.wine/drive_c/PascalABC.NET/PascalABCNET.exe
→ Сервис → Настройки → Снимаем галочку сВыходные файлы генерировать в папку
иУдалять EXE файл после выполнения
. Иначе, после компиляции кода с ошибкой не получится скомпилировать его вновь после исправления, будет ошибка о том, что файл .exe уже используется другим процессом, хотя после перезапуска и отмены настроек всё стало работать нормально.
А есть ли какие-то планы для полноценной работы в линукс нативно без wine?
Что компилятор запускается через mono, я читал, но ведь компилятор не адаптирован под линукс, и половина всего не работает, нужно переписывать графические примитивы например на Gtk# вместо WPF или что-то подобное делать. И даже с консолью и кодировкой файлов исходников есть вопросы. Например, при выводе в консоль в линуксе через writeln, программа не должна в конце выплёвывать лишних \r, должно быть только \n.
Да и зависимость от mono — это тоже не особо хорошо. Хотя от неё вы, к сожалению, вряд ли сможете избавиться.
Планы есть. Но что вы имеете в виду? На сайте например описан рабочий алгоритм встраивания консольного компилятора в Geany. И в VS Code есть плагин PascalABC.NET - абсолютно рабочий. Устанавливай под Linux и программируй.
Есть планы переписать оболочку во что то кроссплатформенное.
Пока нет сильной нужды в этом - подавляющее большинство компьютеров дома - под Windows. И существенно меньшая часть - под IOS.
Что касается меня, то я преследовал лишь одну цель - как запустить PascalABC.NET на Linux для школьника. Получается, на данный момент, я нашел только следующие варианты:
-
Virtualbox + Windows + PascalABC.NET (ресурсоемко, хотя все и работает)
-
VS Code + mono + PascalABC.NET (все просто и казалось бы работает, но нету основных возможностей для школьной программы: робот и прочие графические модули)
-
wine + PascalABC.NET (требует меньше ресурсов, чем 1 и больше возможносте, чем в 2, есть пару нерабочих моментов, на которые можно закрыть глаза)
Мой выбор остановился на 3, хотя если бы в пунтке 2 были решены вопросы по использованию материалов для обучения в школе, я бы выбрал 2.
Спасибо вам за эксперимент! Когда я пробовал эту связку лет восемь назад, Вайн слабо поддерживал дот-нет у себя внутри. Здорово, что времена поменялись!
У меня один вопрос: а зачем устанавливать Паскаль совмещённый с ДотНет (PascalABCNETWithDotNet40Setup.exe) если вы уже установили ДотНет с помощью вайнтрикс? Может быть, логичней было бы использовать инсталлятор без ДотНет?
@Ulysses Насколько, я помню, пробовал разные варианты и мог запутаться, что лучше и что хуже. По логике, конечно кто-то один должен установить необходимый дотнет, тем более, я не силен в них, но как я понял, для установки PascalABCNet уже нужен какой-то дотнет (4.0), а он уже в свою очередь доставляет следующую версию (4.7) необходимую для работы. Хотя, я могу ошибаться…
Хм, интересно, спасибо большое за ответ. Если найду минутку, попробую на своих машинах с Убунту и НиксОС.
Добрался, получилось воспроизвести на NixOS (это такой линукс), заработало. Пошаговое руководство написано очень круто, его стоило бы сохранить где-то на вики, наверное.
Вот мои замечания по этому процессу и результату.
-
Установка дотнета (шаг 3) во время установки очередной версии (всего оно их штук пять поставило, причём время от времени надо нажимать на кнопки инсталятов дотнета — морока) вошло в дедлок и исправно писало об этом в терминале: что так де и так, жду критическую секцию, но ничего не происходит, подожду ещё 60 секунд… и так бесконечно. После убийства и перезапуска началось примерно с того же места и успешно завершилось.
-
Желательно указать версии wine с которыми пробовалось. Первая попавшаяся мне версия 6.0.6 оказалась несовместимой с каким-то из дотнетов, который он собирася ставить. Хорошо, что в репозитории оказалась и “staging” (экспериментальная) версия 7.0-rc5 – с ней-то и заработало. Ещё пробовал wine64 — 64-разрядную версию. Под ней не захотел дотнет ставиться.
-
У меня не получилось найти графического приложения, которое бы работало. Пробовал недавно опубликованный Админом ray-tracer, ещё что-то из примеров с формами и с Graph3d (отдельно) — без толку. Текущая ценность этого способа установки, таким образом, какмне кажется, это только Робот и Чёртёжник. Так ли это у всех?
-
Редактор работает не в идеальной форме: дрожжит курсор, исчезают открытые меню в панели меню, если долго выбирать нужный пункт, шрифты грустные (как обычно в Вайне). В режиме автодополнения кода если зайти в круглые скобки вызова функции и дождаться выпадающей подсказки по аргументам, всё замирает (нужно отключить режим автодополнения, чтобы всё вернулось).
-
Кириллица во многих местах работает, но в некоторых нет.
В общем, если нужен Робот и Чертёжник, то да. По графике – интересно если что-то всё же работает. А так, VS Code плагин мне больше нравится, и Робот с Чертёжником туда было бы не так уж и трудно пернести, наверное. Впрочем переписать всё на что-то кросс-платформенное наверное лучшее приложение ресурсов.
А брать версию для Windows XP где дотнет уже встроен или ставить mono (вроде вайн его умеет подхватывать) не вариант?
Всё же ставить много версий дотнета как-то глупо.
Я думаю, что графические модули переписываются под что то кроссплатформенное. У меня после удаления из GraphABC нескольких вызовов WPF он кстати отлично заработал.
Насчет версий - версия NET 4.0 хотя и старая, но вполне рабочая - и наверняка её mono хорошо эмулирует. Так что можно ставить версию для Windows XP. В версии для NET 4.7 самое основное - это возможность работать с HighDPI.
То есть, надо специально заняться адаптацией под Линукс - были бы свободные руки и осознанная необходимость. В школах России стали активно выгребать Паскаль в пользу Python и C++ - по существу запрет на остальные языки. Так что вкладывать существенные силы в разработку не хочется.
А для себя мы всё это конечно подстроим и перепишем.
Не вижу никакой проблемы в том, что ставится несколько версий дотнета. Значительно большие проблемы описаны в последующих пунктах. Всё остальное, что вы пишите, это сырые идеи. Сверху дали пошаговое рабочее руководство – это было полезно. Если вы сможете сделать подобное и проверить, будет здорово.
Я бы не был настолько оптимистичен. Насколько я помню, ряд вещей не поддерживался годами иногда принципиально иногда просто потому что это очень сложно сделать. И тут уже не важно насколько старая версия .НЕТ. И ещё раз повторю, что установить НЕТ 4.7 не проблема на самом деле. Проблема в том, что всё равно что-то нереализовано, плюс редактор не вполне стабилен (скорее всего, из-за Вайна).
Я не оптимистичен. У меня не получилось установить по указанному алгоритму.
Общая проблема - wine слабо поддерживает wpf. Вообще удивительно, что она поддерживает. А в оболочке редактор и куча компонент - это все wpf