компиляция старых программ

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

planeswalker
Сообщения: 8
ОС: Manndriva 2009 spring

компиляция старых программ

Сообщение planeswalker »

Доброго времени суток!
При компиляции программы (http://www.crystal.chem.uu.nl/~vaneyck/upack.html) столкнуся с проблемой - скрипт для компиляции
настроен под какую-то старую версию linux, я не могу его запустить под Mandriva 2009 spring.
Скрипт собственно выглядит так:
#!/bin/csh -f
f2c -c -C -Wall -72 y*.f
f2c -c -O2 yopth.f
f2c -c -O2 ynonbe*.f
f2c -c -O2 ylist*.f
f2c -c -O2 ykwald.f
f2c -c -O2 ysort.f
f2c -c -O2 ydlist.f
f2c -c -O2 ydclus.f
f2c -c -O2 ylatvib.f
f2c -c -C -Nn802 -Wall -72 yprep.f
f2c -c -C -Nn802 -Wall -72 ypack3.f
echo Now compiling gcc ...
gcc -c -O2 *.c
echo Now linking object files ...
link1
link2
link3
linkclus
linkcodes
linkprep
linkmd
linkdist
link12
при запуске вылезает ошибка: bad identifer: отказано в доступе.
После того как я заменил в первой строке csh на sh скрипт, заработал, но половина команд оказались "незнакомыми",
в итоге исполняемые файлы так и не были созданы. Подскажите пожалуйста, в чем тут проблема.
Заранее спасибо!
Спасибо сказали:
Аватара пользователя
Atolstoy
Сообщения: 1655
Статус: Tux in the rain
ОС: Linux x86_64

Re: компиляция старых программ

Сообщение Atolstoy »

1. "Нет доступа" - может нет прав на запись файла? Попробуй под рутом.
2. проверь, всё ли поставлено для сборки
3. если действительно не собирается из-за возраста, то проще собрать в виртуалке под старым дистром.
Всего лишь 26 литров пива достаточно человеку для удовлетворения ежедневной потребности в кальции. Здоровое питание - это так просто!
http://atolstoy.wordpress.com
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: компиляция старых программ

Сообщение sciko »

planeswalker писал(а):
04.02.2010 10:14
После того как я заменил в первой строке csh на sh скрипт, заработал, но половина команд оказались "незнакомыми"
И не удивительно. Тут идёт попытка использовать нецелевой шелл. Т.е. скрипту нужен csh, а в Мандряве, как и в большинстве Линуксов, по умолчанию стоит bash.
Варианты решения:
1. установить csh,
2. переписать скрипт на bash.

ЗЫ. По умолчанию csh обычно стоит ОС типа BSD.
Спасибо сказали:
planeswalker
Сообщения: 8
ОС: Manndriva 2009 spring

Re: компиляция старых программ

Сообщение planeswalker »

под рутом пробовал, файлы вроде все на месте.
to sciko: а как можно установить csh? переписать скрипт я вряд ли смогу..
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: компиляция старых программ

Сообщение drBatty »

sciko писал(а):
04.02.2010 10:41
1. установить csh,
2. переписать скрипт на bash.

ЗЫ. По умолчанию csh обычно стоит ОС типа BSD.

насколько я понял, у ТС уже есть csh.

planeswalker можно увидеть полное сообщение об ошибке?


planeswalker писал(а):
04.02.2010 10:46
а как можно установить csh

для начала rpm -qa | grep "csh"
если у вас его нет, то
urpmi csh от рута.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: компиляция старых программ

Сообщение sciko »

planeswalker писал(а):
04.02.2010 10:46
а как можно установить csh?
Я же написал: разрешаю. Добавлю, что рекомендую воспользоваться репами Мандрявы.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: компиляция старых программ

Сообщение drBatty »

sciko писал(а):
04.02.2010 11:04
Я же написал: разрешаю. Добавлю, что рекомендую воспользоваться репами Мандрявы.


planeswalker писал(а):
04.02.2010 10:14
#!/bin/csh -f

с такой строчкой bash (который по умолчанию) вызовет для выполнения скрипта csh, и если-бы у TC его небыло-бы, то bash-бы выругался примерно так:

Код: Выделить всё

bash: ./ZZZ: /bin/ZZZ: bad interpreter: Нет такого файла или каталога

т.к. bash так не сказал, то у ТС уже есть csh.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
planeswalker
Сообщения: 8
ОС: Manndriva 2009 spring

Re: компиляция старых программ

Сообщение planeswalker »

to drBatty: да, именно такое сообщение и выходит (нет такого файла или каталога), прошу прощения, в первом посте я ошибся.
в bin такой папки (csh) действительно нет, видимо придется установить csh.

спасибо за помощь!
Спасибо сказали:
planeswalker
Сообщения: 8
ОС: Manndriva 2009 spring

Re: компиляция старых программ

Сообщение planeswalker »

после rpm -qa | grep "csh" вылазит несколько сообщений типа:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Нет такого файла или каталога

после urpmi csh :
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Нет такого файла или каталога

устанавливается tcsh-6.15-5mdv2009.1.i586.rpm из /media/cdrom/i586/media/main
Подготовка... ################################################################################
##########
1/1: tcsh ################################################################################
##########
ошибка: распаковка архива не удалась на файле /bin/csh: cpio: renameне удалось - Это каталог
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: компиляция старых программ

Сообщение drBatty »

planeswalker писал(а):
04.02.2010 11:45
в bin такой папки (csh) действительно нет, видимо придется установить csh.

это не каталог, это файл, или ссылка на файл.
planeswalker писал(а):
04.02.2010 11:54
ошибка: распаковка архива не удалась на файле /bin/csh: cpio: renameне удалось - Это каталог

может вы ручками сделали каталог /bin/csh/ ?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
planeswalker
Сообщения: 8
ОС: Manndriva 2009 spring

Re: компиляция старых программ

Сообщение planeswalker »

:wacko: Точно, это я его создал...
csh установился, но скрипт все равно не работает:
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
f2c: Command not found.
Now compiling gcc ...
gcc: No match.
Now linking object files ...
link2: Command not found.
link3: Command not found.
linkprep: Command not found.
linkmd: Command not found.
link12: Command not found.
наверно дело в том что у меня другой компилятор (надо будет сменить название), но что делать с командами link2, link3 итд?
и еще вопрос, после установки csh мне не надо менять текущую оболочку? скрипт я запускал из терминала, той ошибки больше не было
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: компиляция старых программ

Сообщение drBatty »

planeswalker писал(а):
04.02.2010 12:18
csh установился, но скрипт все равно не работает:
f2c: Command not found.

вот что пишет вика:
f2c is the name of a program to convert Fortran 77 to C code, developed at Bell Laboratories. The standalone f2c program was based on the core of the first complete Fortran 77 compiler to be implemented, the "f77" program by Feldman and Weinberger. Because the f77 compiler was itself written in C and relied on a C compiler back end to complete its final compilation step, it and its derivatives like f2c were much more portable than compilers generating machine code directly.

The f2c program was released as free software (open-source software) and subsequently became one of the most common means to compile Fortran code on many systems where native Fortran compilers were unavailable or expensive. Several large Fortran libraries, such as LAPACK, were made available as C libraries via conversion with f2c. The f2c program also influenced the development of the GNU g77 compiler, which uses a modified version of the f2c runtime libraries.

т.е. теперь вам нужно поставить конвертор из фортрана в си. может он есть в репах, поищите, где-то в "разработка" был (ЕМНИП, никогда не юзал).
planeswalker писал(а):
04.02.2010 12:18
но что делать с командами link2, link3 итд?

сначала поставьте конвертор.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: компиляция старых программ

Сообщение sciko »

drBatty писал(а):
04.02.2010 12:29
т.е. теперь вам нужно поставить конвертор из фортрана в си. может он есть в репах, поищите, где-то в "разработка" был (ЕМНИП, никогда не юзал).
Да, всё проще. Мандрява -- пакетный дистр, а значит программы для компиляции и разработки по умолчанию не установлены. Надо бы их установить. Пакет не подскажу.
Спасибо сказали:
planeswalker
Сообщения: 8
ОС: Manndriva 2009 spring

Re: компиляция старых программ

Сообщение planeswalker »

Поставил конвертор, файлы компилируются, но link... все равно не выполняется.
по той же вике вроде нужна еще программа - linker или что-то типа того, пока что ищу...
Спасибо сказали:
planeswalker
Сообщения: 8
ОС: Manndriva 2009 spring

Re: компиляция старых программ

Сообщение planeswalker »

planeswalker писал(а):
04.02.2010 13:07
Поставил конвертор, файлы компилируются, но link... все равно не выполняется.
по той же вике вроде нужна еще программа - linker или что-то типа того, пока что ищу...

На самом деле, эти "линки" относятся к скриптам самой программы. Всем большое огромное спасибо за помощь, тему можно закрывать..
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: компиляция старых программ

Сообщение drBatty »

sciko писал(а):
04.02.2010 13:01
Да, всё проще. Мандрява -- пакетный дистр, а значит программы для компиляции и разработки по умолчанию не установлены. Надо бы их установить. Пакет не подскажу.

это понятно что пакетный... я не предлагал ТС ставить из сырцов, перечитайте мои посты.
planeswalker писал(а):
04.02.2010 14:03
На самом деле, эти "линки" относятся к скриптам самой программы.

я так и думал. программа-то поставилась? и как называется пакет?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
planeswalker
Сообщения: 8
ОС: Manndriva 2009 spring

Re: компиляция старых программ

Сообщение planeswalker »

да, поставилась :drinks: , пакет вроде так и называется f2c,
к нему идут еще 2 библиотеки - libf2c-devel и libf2c0, я устанавливал ч/з "установку программ"...
еще раз спасибо...
Спасибо сказали: