ejudge 3.3.1 #3 (2015-01-23 18:21:43).
Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-35-generic x86_64)
Проблемы
1. Интерфейс. В интерфейсе участника выпадающее меню называется Language, хотя это, очевидно, компиляторы.
2. GNU fortran (/usr/bin/gfortran).
2.1 запускаем ejudge-compilers-control и обнаруживаем компилятор GNU fortran (gfortran). Нажимаем любую клавишу.
2.2 видим, что gfortran disabled.
2.3 запускаем serve-control (web) в контесте фортран выбрать нельзя.
2.4 редактируем serve.cfg руками добавляя language с id=6. При запуске serve-control (web) на странице Languages видим ошибку (invalid language id)
Хочу фортран! Что делать?
3. Ruby 1.9.3.
3.1 запускаем serve-control (web) в контесте ruby выбран. В ejudge-compilers-control он тоже есть и enabled.
3.2 check contest settings - success
3.3 запускаем интерфейс Master (web), жмем reload config files, отправляем решение на ruby и получаем check failed (invalid language id)
3.4 руками как в 2.4 тоже не помогает
Хочу руби! Что делать?
Проблемы с компиляторами
Re: Проблемы с компиляторами
1. ...или интерпретаторы. В любом случае, «языки программирования» тут звучит чуть лучше.
2-3. Сделайте так, чтобы ваши языки программирования появились в списке с помощью программы /bin/ejudge-configure-compilers в установочном каталоге ejudge. Эта программа проверяет доступность языков программирования с помощью скриптов из /libexec/ejudge/lang/in/языкпрограммирования-version.in -r. Если соответствующий скрипт не находит язык программирования, то имеет смысл его изучить и посмотреть, чего не хватает в вашей установке.
Кроме того, может быть необходимо перезапустить ejudge после добавления нового языка программирования с помощью ejudge-configure-compilers.
2-3. Сделайте так, чтобы ваши языки программирования появились в списке с помощью программы /bin/ejudge-configure-compilers в установочном каталоге ejudge. Эта программа проверяет доступность языков программирования с помощью скриптов из /libexec/ejudge/lang/in/языкпрограммирования-version.in -r. Если соответствующий скрипт не находит язык программирования, то имеет смысл его изучить и посмотреть, чего не хватает в вашей установке.
Кроме того, может быть необходимо перезапустить ejudge после добавления нового языка программирования с помощью ejudge-configure-compilers.
Re: Проблемы с компиляторами
Считаю, что надпись "g++ GNU C++ 4.8.2" никак не похоже на название ЯП. Это очевидно компилятор. Кроме того, в списке м.б. несколько компиляторов одного ЯП. Про интерпретаторы замечание справедливое, можно говорить о трансляторах, но, мне кажется, слово компилятор большинству будет понятнее.apathism wrote:1. ...или интерпретаторы. В любом случае, «языки программирования» тут звучит чуть лучше.
Этот не документированный шаг, помог решить проблему 3, но не 2.apathism wrote: Кроме того, может быть необходимо перезапустить ejudge после добавления нового языка программирования с помощью ejudge-configure-compilers.
О каком списке речь? где посмотреть? В lang_ids.cfg есть и руби и фортран.apathism wrote: 2-3. Сделайте так, чтобы ваши языки программирования появились в списке с помощью программы /bin/ejudge-configure-compilers в установочном каталоге ejudge.
Re: Проблемы с компиляторами
Если в списке языков gfortran в состоянии disabled, это значит что данный компилятор не может быть использован. Скорее всего, не хватает статической библиотеки libgfortran. Попробуйте установить пакет libgfortran-static
Re: Проблемы с компиляторами
libgfortran 4.8 установлен. Программа, содержащая write скомпилировалась c флагом -static и выполнилась. Полагаю проблема не в этом.cher wrote:Если в списке языков gfortran в состоянии disabled, это значит что данный компилятор не может быть использован. Скорее всего, не хватает статической библиотеки libgfortran. Попробуйте установить пакет libgfortran-static
Re: Проблемы с компиляторами
Попробуйте вот эту версию скрипта gfortran-version.in. Ее нужно скопировать в каталог scripts.
Re: Проблемы с компиляторами
Подменил скрипт, перезапустил ejudge-configure-compilers. Фортан найден, но disabled. Нужно ejudge рестартить? Или еще что-то?cher wrote:Попробуйте вот эту версию скрипта gfortran-version.in. Ее нужно скопировать в каталог scripts.
Может надо как-то из консоли посмотреть почему он disabled? Есть какая-то диагностика?
Re: Проблемы с компиляторами
disabled для языка программирования означает, что он не найден.
Скрипт нужно скопировать в каталог scripts в каталоге с исходными кодами, после чего не забыть сделать make install.
Посмотреть, что происходит при работе скрипта можно, запустив его вручную, например, так:
Скрипт нужно скопировать в каталог scripts в каталоге с исходными кодами, после чего не забыть сделать make install.
Посмотреть, что происходит при работе скрипта можно, запустив его вручную, например, так:
Code: Select all
bash -x ./gfortran-version.in -r
Re: Проблемы с компиляторами
Повторюсь. При поиске языка (1-й этап ejudge-configure-compilers) система выдала диагностику "GNU Fortran is available, yes ... gfortran 4.8.2". А надпись disabled была на втором этапе. Я из этой надписи сделал вывод, что фортран все таки был найден.cher wrote:disabled для языка программирования означает, что он не найден.
В любом случае, после Вашего последнего указания, я выполнил make install (с новым скриптом), повторил поиск компиляторов (фортран появился!), рестартнул ejudge, и фортран появился в web-интерфейсе.
Спасибо! проблемы 2,3 решены.
Re: Проблемы с компиляторами
Не понял тогда, в какой момент gfortran стал disabled.