Новый улучшенный способ установки PascalABC.NET под linux

PascalABC.NET - он спрашивает путь куда ставить, а dotnet - установка идет автоматом с помощью winetricks dotnet*

1 лайк

Я бы был Вам очень признателен если бы Вы записали и выложили видео установки. Мы бы тогда начали пробовать на различных устройствах и определять типичные глюки и проблемы.

хорошо, постараюсь сделать запись в ближайшее время

Благодаря наводкам @zhurlik получилось запустить PascalABC.NET в Linux с помощью wine.

Компилятор работает без ошибок. В среде разработки не работает справка “Образцы кода” и требуются кое-какие доп. настройки. Остальное работает отлично (в том числе, процесс дебага, ссылки, подсказки, графические модули и т.д.).

Шаги:

  1. sudo apt install wine winetricks.
  2. winecfg → Библиотеки → в списке выбираем mscoree и указываем Сторонняя (Windows) → Нажимаем Применить, закрываем.
  3. winetriсks dotnet471. Процесс довольно длительный, друг за другом будет установлено несколько версий dotnet. Ошибки, в том числе об отсутствии Mono, можно игнорировать и смело жать Далее, Ок и т.д.
  4. Скачиваем PascalABC.NET StandardPack.
  5. wine ~/PascalABCNETSetup.exe (выбираем путь до файла установки) → Снимаем галочку с Microsoft .NET Frameword (мы его уже установили) → Выбираем куда устанавливать (лучше всего прямо на C:/, чтобы в пути не было пробелов) → После установки жмем Закрыть.
  6. wine ~/.wine/drive_c/PascalABC.NET/PascalABCNET.exe → Сервис → Настройки → Снимаем галочку с Выходные файлы генерировать в папку и Удалять EXE файл после выполнения. Иначе, после компиляции кода с ошибкой не получится скомпилировать его вновь после исправления, будет ошибка о том, что файл .exe уже используется другим процессом, хотя после перезапуска и отмены настроек всё стало работать нормально.
1 лайк
1 лайк

А есть ли какие-то планы для полноценной работы в линукс нативно без wine?

Что компилятор запускается через mono, я читал, но ведь компилятор не адаптирован под линукс, и половина всего не работает, нужно переписывать графические примитивы например на Gtk# вместо WPF или что-то подобное делать. И даже с консолью и кодировкой файлов исходников есть вопросы. Например, при выводе в консоль в линуксе через writeln, программа не должна в конце выплёвывать лишних \r, должно быть только \n.

Да и зависимость от mono — это тоже не особо хорошо. Хотя от неё вы, к сожалению, вряд ли сможете избавиться.

Планы есть. Но что вы имеете в виду? На сайте например описан рабочий алгоритм встраивания консольного компилятора в Geany. И в VS Code есть плагин PascalABC.NET - абсолютно рабочий. Устанавливай под Linux и программируй.

Есть планы переписать оболочку во что то кроссплатформенное.

Пока нет сильной нужды в этом - подавляющее большинство компьютеров дома - под Windows. И существенно меньшая часть - под IOS.

Что касается меня, то я преследовал лишь одну цель - как запустить PascalABC.NET на Linux для школьника. Получается, на данный момент, я нашел только следующие варианты:

  1. Virtualbox + Windows + PascalABC.NET (ресурсоемко, хотя все и работает)

  2. VS Code + mono + PascalABC.NET (все просто и казалось бы работает, но нету основных возможностей для школьной программы: робот и прочие графические модули)

  3. wine + PascalABC.NET (требует меньше ресурсов, чем 1 и больше возможносте, чем в 2, есть пару нерабочих моментов, на которые можно закрыть глаза)

Мой выбор остановился на 3, хотя если бы в пунтке 2 были решены вопросы по использованию материалов для обучения в школе, я бы выбрал 2.

1 лайк

2 сообщения были перенесены в новую тему: Free Pascal и надо ли переходить на него с PascalABC.NET

16 сообщений были перенесены в новую тему: Длинный троллинг про UTF-8 без BOM и Free Pascal

Сообщение было перемещено в эту тему: Длинный троллинг про UTF-8 без BOM и Free Pascal

Спасибо вам за эксперимент! Когда я пробовал эту связку лет восемь назад, Вайн слабо поддерживал дот-нет у себя внутри. Здорово, что времена поменялись!

У меня один вопрос: а зачем устанавливать Паскаль совмещённый с ДотНет (PascalABCNETWithDotNet40Setup.exe) если вы уже установили ДотНет с помощью вайнтрикс? Может быть, логичней было бы использовать инсталлятор без ДотНет?

@Ulysses Насколько, я помню, пробовал разные варианты и мог запутаться, что лучше и что хуже. По логике, конечно кто-то один должен установить необходимый дотнет, тем более, я не силен в них, но как я понял, для установки PascalABCNet уже нужен какой-то дотнет (4.0), а он уже в свою очередь доставляет следующую версию (4.7) необходимую для работы. Хотя, я могу ошибаться…

Хм, интересно, спасибо большое за ответ. Если найду минутку, попробую на своих машинах с Убунту и НиксОС.

Добрался, получилось воспроизвести на NixOS (это такой линукс), заработало. Пошаговое руководство написано очень круто, его стоило бы сохранить где-то на вики, наверное.

Вот мои замечания по этому процессу и результату.

  1. Установка дотнета (шаг 3) во время установки очередной версии (всего оно их штук пять поставило, причём время от времени надо нажимать на кнопки инсталятов дотнета — морока) вошло в дедлок и исправно писало об этом в терминале: что так де и так, жду критическую секцию, но ничего не происходит, подожду ещё 60 секунд… и так бесконечно. После убийства и перезапуска началось примерно с того же места и успешно завершилось.

  2. Желательно указать версии wine с которыми пробовалось. Первая попавшаяся мне версия 6.0.6 оказалась несовместимой с каким-то из дотнетов, который он собирася ставить. Хорошо, что в репозитории оказалась и “staging” (экспериментальная) версия 7.0-rc5 – с ней-то и заработало. Ещё пробовал wine64 — 64-разрядную версию. Под ней не захотел дотнет ставиться.

  3. У меня не получилось найти графического приложения, которое бы работало. Пробовал недавно опубликованный Админом ray-tracer, ещё что-то из примеров с формами и с Graph3d (отдельно) — без толку. Текущая ценность этого способа установки, таким образом, какмне кажется, это только Робот и Чёртёжник. Так ли это у всех?

  4. Редактор работает не в идеальной форме: дрожжит курсор, исчезают открытые меню в панели меню, если долго выбирать нужный пункт, шрифты грустные (как обычно в Вайне). В режиме автодополнения кода если зайти в круглые скобки вызова функции и дождаться выпадающей подсказки по аргументам, всё замирает (нужно отключить режим автодополнения, чтобы всё вернулось).

  5. Кириллица во многих местах работает, но в некоторых нет.

В общем, если нужен Робот и Чертёжник, то да. По графике – интересно если что-то всё же работает. А так, VS Code плагин мне больше нравится, и Робот с Чертёжником туда было бы не так уж и трудно пернести, наверное. Впрочем переписать всё на что-то кросс-платформенное наверное лучшее приложение ресурсов.

1 лайк

А брать версию для Windows XP где дотнет уже встроен или ставить mono (вроде вайн его умеет подхватывать) не вариант?

Всё же ставить много версий дотнета как-то глупо.

Я думаю, что графические модули переписываются под что то кроссплатформенное. У меня после удаления из GraphABC нескольких вызовов WPF он кстати отлично заработал.

Насчет версий - версия NET 4.0 хотя и старая, но вполне рабочая - и наверняка её mono хорошо эмулирует. Так что можно ставить версию для Windows XP. В версии для NET 4.7 самое основное - это возможность работать с HighDPI.

То есть, надо специально заняться адаптацией под Линукс - были бы свободные руки и осознанная необходимость. В школах России стали активно выгребать Паскаль в пользу Python и C++ - по существу запрет на остальные языки. Так что вкладывать существенные силы в разработку не хочется.

А для себя мы всё это конечно подстроим и перепишем.

Не вижу никакой проблемы в том, что ставится несколько версий дотнета. Значительно большие проблемы описаны в последующих пунктах. Всё остальное, что вы пишите, это сырые идеи. Сверху дали пошаговое рабочее руководство – это было полезно. Если вы сможете сделать подобное и проверить, будет здорово.

Я бы не был настолько оптимистичен. Насколько я помню, ряд вещей не поддерживался годами иногда принципиально иногда просто потому что это очень сложно сделать. И тут уже не важно насколько старая версия .НЕТ. И ещё раз повторю, что установить НЕТ 4.7 не проблема на самом деле. Проблема в том, что всё равно что-то нереализовано, плюс редактор не вполне стабилен (скорее всего, из-за Вайна).

Я не оптимистичен. У меня не получилось установить по указанному алгоритму.

Общая проблема - wine слабо поддерживает wpf. Вообще удивительно, что она поддерживает. А в оболочке редактор и куча компонент - это все wpf