IDE, VCS и прочее
Модератор: Модераторы разделов
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch
Сообщение
kerogaz » 06.02.2019 09:02
Поставил я gcc 7.3.0 ( Install GCC from source) по ссылке :
https://linuxhostsupport.com/blog/how-to-install-gcc-on-centos-7/
И у меня получилось что под рутом остался gcc 4.8.5 а у пользователя 7.3.0. Как такое может быть?
Код: Выделить всё
root@bear ~]# mc
# gcc -v
Используются внутренние спецификации.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Целевая архитектура: x86_64-redhat-linux
Параметры конфигурации: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Модель многопоточности: posix
gcc версия 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
Copyright (C) 2015 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая
коммерческую ценность и применимость для каких-либо целей.
Код: Выделить всё
[pol@bear ~]$ gcc -v
Используются внутренние спецификации.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper
Целевая архитектура: x86_64-pc-linux-gnu
Параметры конфигурации: ./configure --disable-multilib --enable-languages=c,c++
Модель многопоточности: posix
gcc версия 7.3.0 (GCC)
ormorph
Сообщения: 2913
ОС: Gentoo
Сообщение
ormorph » 06.02.2019 10:08
kerogaz писал(а): ↑ 06.02.2019 09:02
Как такое может быть?
Легко, переменное окружение разное и все тут.
Достаточно выполнить под рутом и пользователем:
which gcc
как увидишь что они находятся в разных каталогах.
Подробнее:
и
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch
Сообщение
kerogaz » 06.02.2019 10:31
Это понятно. Но почему ? Ведь я компилировал под рутом а поменялось окружение (пути) у пользователя а у рута остались предыдущие
Vascom
Сообщения: 1699
ОС: Fedora 32
Сообщение
Vascom » 06.02.2019 10:46
Посмотри какой PATH у рута и у пользователя и где он задаётся. Всё станет понятно.
ormorph
Сообщения: 2913
ОС: Gentoo
Сообщение
ormorph » 06.02.2019 11:01
kerogaz писал(а): ↑ 06.02.2019 10:31
Но почему ?
Окружение не менялось. Просто в окружении рута не прописаны пути в /usr/local, они прописаны только у пользователя. Просто ваш gcc-7.3.0 был установлен в /usr/local, по этому под пользователем он виден а под рутом нет.
Если в системе присутствует директория
/etc/profile.d/
То можно в нее добавить файл
gcc7.sh со следующим содержимым:
Код: Выделить всё
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
PATH="/usr/local/bin:$PATH"
fi
По идее после перезагрузки этот файл должен подхватится.
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch
Сообщение
kerogaz » 06.02.2019 11:07
В том то и дело что в обоих случаях пути одинаковые
Код: Выделить всё
[root@bear pol]#
# which gcc
/usr/local/bin/gcc
И по дате создания файла это именно gcc 7.3.0
Последний раз редактировалось kerogaz 06.02.2019 11:32, всего редактировалось 1 раз.
ormorph
Сообщения: 2913
ОС: Gentoo
Сообщение
ormorph » 06.02.2019 11:28
kerogaz писал(а): ↑ 06.02.2019 11:07
В том то и дело что в обоих случаях пути одинаковые
Если пути одинаковые, то gcc -v должен показать уже другое.
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch
Сообщение
kerogaz » 06.02.2019 11:34
Код: Выделить всё
gcc -v
Используются внутренние спецификации.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Целевая архитектура: x86_64-redhat-linux
Параметры конфигурации: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Модель многопоточности: posix
gcc версия 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
Добавлено (11:46):
Добавлено (11:48):
Отличаются пути g++ и сс
Код: Выделить всё
pol@bear ~]$ which g++
/usr/local/bin/g++
[root@bear ~]# which g++
/bin/g++
Код: Выделить всё
pol@bear ~]$ which cc
/usr/bin/cc
[root@bear ~]# which cc
/bin/cc
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 06.02.2019 14:55
kerogaz писал(а): ↑ 06.02.2019 09:02
Поставил я gcc 7.3.0 ( Install GCC from source) по ссылке
Ох…
https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/
kerogaz писал(а): ↑ 06.02.2019 09:02
под рутом остался gcc 4.8.5
А зачем запускать компилятор под рутом?
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch
Сообщение
kerogaz » 07.02.2019 09:34
Вопрос в другом, почему пути пользователя и рута одинаковы а gcc -v разные разные версии показывает
Код: Выделить всё
[root@bear pol]#
# which gcc
/usr/local/bin/gcc
И по дате создания файла это именно gcc 7.3.0
s.xbatob
Сообщения: 1139
ОС: Fedora
Сообщение
s.xbatob » 07.02.2019 12:12
Наверное, потому, что gcc фактически расположен в /usr/bin/x86_64-redhat-linux-gcc, /usr/libexec/gcc/ и /usr/lib/gcc/
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch
Сообщение
kerogaz » 07.02.2019 13:06
Тогда с каким gcc работает по умолчанию например конкретная прикладная программа у пользователя : 7.3.0 или 4.8.5 ?
s.xbatob
Сообщения: 1139
ОС: Fedora
Сообщение
s.xbatob » 07.02.2019 13:22
kerogaz
Не знаю, я зоопарки стараюсь не разводить. Разбирайтесь сами.
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 07.02.2019 13:58
kerogaz писал(а): ↑ 07.02.2019 09:34
Вопрос в другом, почему пути пользователя и рута одинаковы а gcc -v разные разные версии показывает
Пути разные. Вам давно сказали: смотрите
echo $PATH под пользователем и под рутом.
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
s.xbatob
Сообщения: 1139
ОС: Fedora
Сообщение
s.xbatob » 07.02.2019 14:09
Bizdelnick
Всё хуже. Свой gcc скомпилирован с prefix, смотрящим тужа же, где он у штатного.
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 07.02.2019 14:24
s.xbatob писал: ↑ 07.02.2019 14:09
Свой gcc скомпилирован с prefix, смотрящим тужа же, где он у штатного.
У штатного — /usr, у самосборного — /usr/local.
Но таки использование scl избавляет от путаницы раз и навсегда.
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch
Сообщение
kerogaz » 07.02.2019 17:10
А почему gcc -v в обоих случаях указывает один и тот же путь?
А which правильно показывает:здесь видны разные пути
Значит программы юзеря будут работать с 7.3.0 а рут с 4.8.5
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 07.02.2019 17:23
kerogaz писал(а): ↑ 07.02.2019 17:10
А почему gcc -v в обоих случаях указывает один и тот же путь?
Где Вы там увидели этот путь?
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch
Сообщение
kerogaz » 07.02.2019 17:34
Извиняюсь перепутал. Это вчера which показывал один и тот же путь, а gcc -v различные версии (смотрите мои предыдущие сообщения)
Код: Выделить всё
[root@bear pol]#
# which gcc
/usr/local/bin/gcc
А сегодня после перезагрузки уже разные, соответствующие действительности Наверное где-то глюкнуло звонко
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 07.02.2019 18:09
kerogaz писал(а): ↑ 07.02.2019 17:34
Наверное где-то глюкнуло звонко
Звонкие глюки бывают только в головах. Вангую
su vs.
su - или логина.
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик