Можно ли поставить и рабоать с gcc предыдущих версий?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
MiK13
Сообщения: 1164
ОС: Linux Debian

Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение MiK13 »

Здравствуйте! Такая проблема
Возникла задача корректировать программы прямо у заказчика, причём там, где нет инструментальных средств. Приходится брать с собой нетбук.
На рабочем компьютере стоит Debian 7. На нём компилирую программы.

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

$ gcc --version
gcc (Debian 4.7.2-5) 4.7.2
На целевом компьютере стоит Debian 6. Проблем с компиляцией нет.
Но дома на нетбук поставил Debian 9. А там gcc версии, по-моему, 6 с чем-то. Пытался скомпилированную на нём программу запустить у заказчика -- выскакивает сообщение "Убито" и программа завершает работу.
Предполагаю, что можно поставить ещё gcc-4.7, но возникает вопрос: как указывать, что нужно компилировать программу именно этим?
И будет ли это решением проблемы? Может быть возникнут проблемы с библиотеками?
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение devilr »

Можно поставить кучу разных версий GCC и переключаться между ними. Иногда это даже бывает полезно.
А насчет "убито" - надо смотреть, что именно не понравилось вашей программе.Допустим, запустив из консоли...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение Bizdelnick »

Понижение версии компилятора не поможет. У Вас в системе более новые библиотеки, без них собранная программа работать не сможет. Странно ещё, что у Вас при переносе с Debian 7 на 6 что-то работает, кроме как везением это не объяснишь.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1164
ОС: Linux Debian

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение MiK13 »

Bizdelnick писал(а):
13.12.2017 19:52
Понижение версии компилятора не поможет. У Вас в системе более новые библиотеки, без них собранная программа работать не сможет.
Вот это меня и беспокоит больше всего.

Bizdelnick писал(а):
13.12.2017 19:52
Странно ещё, что у Вас при переносе с Debian 7 на 6 что-то работает, кроме как везением это не объяснишь.
Сейчас проверил: запустил скомпилированную gcc 4.7.2 программу на сервере, на котором стоит Debian 5.0.3 (gcc 4.3.2).
Отработала нормально.
Скорее всего дело в том, что программа чисто расчётная -- читает числа из файла, рассчитывает таблицы и записывает результат в разделяемую память.

Похоже, единственный выход -- подключаться нетбуком к планшету, через него выходить в интернет и потом выходить на свой компьютер. Только вот как это сделать, пока не представляю. Может быть через TeamViewer, а может быть ещё как-то. Да ещё надо будет при этом обеспечить безопасность...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение Bizdelnick »

MiK13 писал(а):
13.12.2017 20:57
Похоже, единственный выход -- подключаться нетбуком к планшету, через него выходить в интернет и потом выходить на свой компьютер.

Запустить на нетбуке виртуалку/контейнер не вариант? Или он совсем "нет"? Контейнер (или даже просто chroot) на чём угодно будет работать.

MiK13 писал(а):
13.12.2017 20:57
Может быть через TeamViewer

ssh же есть.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение devilr »

А как относится TeamViewer к GCC?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
MiK13
Сообщения: 1164
ОС: Linux Debian

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение MiK13 »

Bizdelnick писал(а):
13.12.2017 21:19
MiK13 писал(а):
13.12.2017 20:57
Похоже, единственный выход -- подключаться нетбуком к планшету, через него выходить в интернет и потом выходить на свой компьютер.

Запустить на нетбуке виртуалку/контейнер не вариант? Или он совсем "нет"? Контейнер (или даже просто chroot) на чём угодно будет работать.
Нет достаточного опыта работы с виртуалками. А про контейнер и chroot пока не могу понять. Установить ещё одну систему?
Bizdelnick писал(а):
13.12.2017 21:19
MiK13 писал(а):
13.12.2017 20:57
Может быть через TeamViewer

ssh же есть.
А как им воспользоваться? Все компьютеры отдела представлены в интернете одним адресом. Разделение идёт на сервере через iptables. Как проложить путь к моему компьютеру? И как узнать адрес для подключения?
Спасибо сказали:
Аватара пользователя
ieleja
Сообщения: 307
ОС: Debian 9, macOS, Windows
Контактная информация:

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение ieleja »

- port forwarding

- внешний адрес меняется?
ad infinitum
Спасибо сказали:
MiK13
Сообщения: 1164
ОС: Linux Debian

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение MiK13 »

ieleja писал(а):
14.12.2017 04:37
- port forwarding
В принципе понятно. Осталось разобраться как это реализовать.
ieleja писал(а):
14.12.2017 04:37
- внешний адрес меняется?
К сожалению да. Но думаю, что и с этим можно разобраться -- спросить у тех, кто остался на работе, какой внешний адрес.
Ну или вариант без интернета: установить на флешку небольшой линукс, но с редактором и компилятором, и, как был совет выше, монтировать его и делать chroot.
А может быть можно его полностью записать в какой-то каталог и потом делать chroot на него?
Правда, вариант с port forwarding тоже может быть полезным для других целей.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение Bizdelnick »

MiK13 писал(а):
14.12.2017 16:46
становить на флешку небольшой линукс, но с редактором и компилятором, и, как был совет выше, монтировать его и делать chroot.

Такие сложности ни к чему, chroot-окружение готовится debootstrap в любом каталоге.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1164
ОС: Linux Debian

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение MiK13 »

Bizdelnick писал(а):
14.12.2017 16:47
MiK13 писал(а):
14.12.2017 16:46
становить на флешку небольшой линукс, но с редактором и компилятором, и, как был совет выше, монтировать его и делать chroot.
Такие сложности ни к чему, chroot-окружение готовится debootstrap в любом каталоге.
А можно немного подробнее, как это сделать?

У меня, правда, возникла ещё одна мысль. Использовать "малиновый" компьютер. Он гораздо меньше нетбука. Экран и клавиатура не нужны -- можно с рабочего по ssh подключаться. И система rasbian на основе Debian'а
Только не знаю, насколько реально поставить на него компилятор gcc 4-й версии чтобы он создавал программы для i386 -- там, ведь, архитектура ARM.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение Bizdelnick »

MiK13 писал(а):
30.12.2017 18:26
А можно немного подробнее, как это сделать?

Можно: https://wiki.debian.org/ru/Debootstrap
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1164
ОС: Linux Debian

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение MiK13 »

Bizdelnick писал(а):
30.12.2017 18:44
MiK13 писал(а):
30.12.2017 18:26
А можно немного подробнее, как это сделать?

Можно: https://wiki.debian.org/ru/Debootstrap

Спасибо. Попробую разобраться.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение s.xbatob »

Если программа успешно компилируется, загружается, но потом падает -- это проблемы её автора, а вовсе не компилятора, платформы или кого-либо ещё. Ищите у себя! А "раньше работало" - это не аргумент. Наоборот, проявилась неочевидная ошибка.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение Bizdelnick »

s.xbatob писал(а):
30.12.2017 20:30
Если программа успешно компилируется, загружается, но потом падает -- это проблемы её автора, а вовсе не компилятора, платформы или кого-либо ещё.

Если программа компилируется в одном окружении, а запускается в другом, то это проблемы того, кто так делает.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение s.xbatob »

Bizdelnick писал(а):
30.12.2017 20:36
s.xbatob писал(а):
30.12.2017 20:30
Если программа успешно компилируется, загружается, но потом падает -- это проблемы её автора, а вовсе не компилятора, платформы или кого-либо ещё.

Если программа компилируется в одном окружении, а запускается в другом, то это проблемы того, кто так делает.

Не запустится она! А если кто-то где-то сменил API не меняя версию разделяемой библиотеки -- это уже большие вопросы к дистрибуторам.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2600
ОС: Gentoo

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение ormorph »

Прогоните программу через strace определите по выводу из за чего конкретно падает.

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

$ strace -o trace_output.log program_name

Останется курить лог.
Возможно просто нужны библиотеки от вашей ОС, тогда просто копируешь их и переносишь на другой комп и запускаешь программу скриптом, в котором указывается путь к каталогу с локальными библиотеками:

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

LD_LIBRARY_PATH=

Не забыть ещё в скрипте эту переменную сделать глобальной.
Способов решения проблемы несколько, это один из них.
Узнать библиотеки от которых зависит программа: ldd в помощь...
Спасибо сказали:
MiK13
Сообщения: 1164
ОС: Linux Debian

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение MiK13 »

ormorph писал(а):
31.12.2017 08:01
Прогоните программу через strace определите по выводу из за чего конкретно падает.

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

$ strace -o trace_output.log program_name

Останется курить лог.
У меня была такая мысль. Только времени тогда на такую проверку не было. Ещё надо будет как-то и strace поставить,

ormorph писал(а):
31.12.2017 08:01
Возможно просто нужны библиотеки от вашей ОС, тогда просто копируешь их и переносишь на другой комп и запускаешь программу скриптом, в котором указывается путь к каталогу с локальными библиотеками:

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

LD_LIBRARY_PATH=

Не забыть ещё в скрипте эту переменную сделать глобальной.
Способов решения проблемы несколько, это один из них.
Узнать библиотеки от которых зависит программа: ldd в помощь...
Собственно, примерно так и делаем. Только без LD_LIBRARY_PATH=.
Основной АРМ написан на Qt, компилируем, несём на целевой, а при установке на целевом системы, в /usr/lib копируем дополнительно библиотеки, которые требует АРМ при запуске.
Правда, я не предполагал, что такое потребуется для простой "сишной" программы. Но как-нибудь проверю.
Спасибо сказали:
Аватара пользователя
Kido
Сообщения: 949
Статус: Космический Засланец
ОС: ArchLinux x86_64 Current
Контактная информация:

Re: Можно ли поставить и рабоать с gcc предыдущих версий?

Сообщение Kido »

Может быть вам в сторону flatpack посмотреть?
Спасибо сказали:
Ответить