Установка и настройка ObjectIcon.Часть I : Установка из исходников в обход Portage.

Всем привет !!! Недавно мне пришлось снова устанавливать ObjectIcon (т.е объектно-ориентированную версию языка программирования Icon) - и надо сказать, что на русском подробной инструкции по этому вопросу не существует. Как следствие, у меня возникла мысль сделать такую инструкцию :slight_smile:
Вот собственно и вся вводная :slight_smile:
# Скачиваем последнюю версию ObjectIcon http://code.google.com/p/objecticon/downloads/list.
# Распаковываем в домашнюю папку, получив в итоге папку с примерно таким именем: objecticon-2.9 (2.9 - это текущая версия ObjectIcon. В вашем названии могут быть другие цифры).
# Далее входим в режим суперпользователя (su или sudo su - у кого как )
# В этом режиме переходим в папку с ObjectIcon: cd /home/имя_пользователя/objecticon-2.9/ (в случае необходимости - исправьте путь к папке на свой).
Набираем в терминале ./configure
После запуска этого скрипта (и после всех его длительных проверок) получаем длиннющий текст, в конце которого будут вот такие строки:

Summary:-
Installation prefix : /usr/local
X11 graphics : yes
jpeg library : yes
png library : yes
Xft anti-aliased fonts : yes
zlib compression : yes
dynamic loading : yes
mysql lib : no
ssl lib : yes

Эти строки, говорят о том, что местом установки выступит папка /usr/local (параметр prefix) и далее идет информации о наличии некоторых библиотек (которые в принципе, не являются необходимыми). Причем слово “yes” говорит о том, что скрипт-конфигуратор нашел эту библиотеку, а слово “no” - соотвественно говорит об отсутствии некоторой библиотеки. Параметр dynamic load говорит о том, что после компиляции в ObjectIcon будет доступна динамическая загрузка сторонних библиотек.
# Если вы довольны вариантом, который предложил конфигуратор и после первого раза сборки не было ошибок - то переходите к следующему шагу.
Иногда, так бывает, что ObjectIcon не нравятся какие-то библиотеки или же вы хотите исключить некоторые библиотеки из сборки - тогда будет полезен повторный запуск конфигуратора с параметрами --without-некоторая_библиотека.
Например, моя система (Calculate Linux Gnome 13) при попытке сборки с включенными библиотеками png и openssl, и я запускаю конфигуратор вот так: ./configure --without-png --without-openssl
Полный список ключей конфигуратора с подробным описанием можно получить командой ./configure --help (или посмотрев вложение к этой статье)
# Далее набираем make.
# А теперь протестируем полученные исполняемые файлы и библиотеки. Для этого набираем команду make test.
В случае успешной сборки в конце вывода скрипта получаем фразу Testing successful, а если не получаем - то все fail (ищем где слажа - и исправляем, на крайний случай можете написать нам )
# Устанавливаем ObjectIcon командой make-install.
# Также (если хочется) можно установить сгенерированную автоматически документацию по ObjectIcon. Чтобы это сделать наберите в терминале make install-libref
Документация весит около 25 Мб
(Чтобы получить к ней доступ наберите в браузере file:///usr/local/share/doc/objecticon/objecticon-libref-2.9/index.html )
# Установка окончена. Но это не все! Нужно настроить переменные среды, для чего в файл .bashrc (если такого в домашней папке нет - создаем такой файл) или подобный вносим строку ./usr/local/lib/objecticon/path.sh
# Покидаем режим суперпользователя и перезапускаем терминал.

А теперь самое веселое )))
Тем пользователям у которых gnome-terminal я сочувствую (блин, а у меня ведь тоже - он !!!) - ибо в нем даже после 6-ого шага, проблемы с запуском интерпретатора ObjectIcon - не находиться путь к интерпретатору ). К счастью, мне случайно удалось найти решение этой проблемы. Для работы с ObjectIcon установите lxterminal (часть LXDE. Небольшой и удобный терминал) - и все !
Как использовать ObjectIcon ? Очень просто - также как Icon, только вместо команд icont и iconx используются команды oit и oix соответственно (небольшой нюанс - обе команды требуют указания пути для транслируемого файла, даже если тот в домашней папке !!!). Также можно выполнить команду ieval, которая вызывает интерактивный интерпретатор ObjectIcon.
Во второй части я специально расскажу о написании ебилда, локальном оверлее и прочих вещах (не забуду и про грабли на которые я наступил!) :slight_smile: До скорого!!!)))

А почему бы не написать для этого дела ebuild? Ставить что бы то ни было в обход portage - зло!

А я во второй части расскажу про написание ебилда)

Стоит упомянуть, что в архиве с исходными кодами чаще всего стоит поискать текстовый файл, в котором указаны конкретные версии требуемых библиотек, а так же возможные отклонения от стандартного варианта установки

Артём Власов писал(а):

А почему бы не написать для этого дела ebuild? Ставить что бы то ни было в обход portage - зло!

Истина ваша, однако допустимо в случае:
1 - вы осознаете ,что делаете
2 - устанавливаемый пакет не конфликтует с установленными версиями бибилиотек/не портит зависимости
3 - вы очень хорошо осознаете, что делаете

Ждем продолжения полезной темы

Продолжение безусловно будет. :slight_smile:
В исходном коде есть файл с описанием какие библиотеки нужны, но кое что там на этот счет не прописано (а именно конфликт с библиотеками jpeg, которые старше чем версия 1.12)… Но автор этого проекта обещал это исправить - и к тому же сегодня вышла версия 2.10 ObjectIcon …

Поправьте название поста на:
Установка и настройка ObjectIcon.Часть I : Установка из исходников в обход Portage, или как делать нельзя.


Истина ваша, однако допустимо в случае:
1 - вы осознаете ,что делаете
2 - устанавливаемый пакет не конфликтует с установленными версиями бибилиотек/не портит зависимости
3 - вы очень хорошо осознаете, что делаете

недопустимо, поскольку:

# среднестатистический пользователь слабо осознает что он делает
# вы не можете отследить какие файлы куда прописались, даже если все префиксы четко указаны, бывают “приятные неожиданности”
# даже продвинутый пользователь не может предсказать в какой библиотеке в следующий раз обнаружат ошибку, и ее придется срочно обновлять.
# вообще, компьютер лучше помнит то что ему сказали помнить, а человек имеет свойство забывать даже то, что, кажется, никогда не забудет.
# система портежей сама следит за битыми зависимостями всех установленных через нее пакетов, если вы ставили вручную - по итогу у вас будет либо очень устаревшая система, либо много неочевидного гемора во время обновления (особенно если у вас в зависимостях куча графических библиотек).
# за примерами ebuild-ов далеко ходить не надо mc /usr/portage, за манами тоже
# в один прекрасный момент вы осознаете, что лучше и проще было-бы сразу написать ebuild(тем более это совсем не сложно, т.к. зависимости обычно берутся из INSTALL, а ключи из ./configure --help) где максимум названий вынесены в переменные (вроде PN PV, PVF, MY_PN, и т.п.) и при обновлении, скорее всего, вам даже не придется ничего переписывать в ebuild-е, просто скопируете с новым названием