Я в SUSE 11.4 без прав root. Мне нужно использовать gcc
а не тот, который пришел с системой (4.3). Тот, который я хочу использовать (6.2), находится в другой папке: /path/to/gcc-6.2.0
,
Просто чтобы избежать возможных проблем в будущем, я сделал следующее:
export LD_LIBRARY_PATH=/lib:/lib64:/path/to/gcc-6.2.0/lib:/path/to/gcc-6.2.0/lib64:/usr/lib:/usr/lib64:$LD_LIBRARY_PATH
В ~
папку, я сделал hello_world.cpp
файл и запустил следующее:
/path/to/gcc-6.2.0/bin/g++ hello_world.cpp -o hw
Тогда я получил эту ошибку:
/path/to/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/cc1plus: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory
Затем я пошел после libmpc.so.3
, Я видел, что я зависел от libgmp.so.10
: Я пошел на это сайт, загрузил .rpm
файл с wget
на ~
папку и запустил эту команду:
rpm -ivh -r /home/unix/me/foo libgmp10-32bit-6.1.2-2.11.x86_64.rpm
Получил эти ошибки:
error: Failed dependencies:
/bin/sh is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6 is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.0) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.1.3) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.3) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.3.4) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.4) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.7) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
Я не знаю почему libc.so.6
ошибка, потому что это в /usr/lib
папка (устанавливается в первой команде экспорта, которую я сделал на LD_LIBRARY_PATH
вар). За /bin/sh
ошибка, я побежал /bin/sh
, задавать export SHELL=/bin/sh
и снова запустил это (теперь с --nodeps
):
rpm -ivh --nodeps -r /home/unix/me/foo libgmp10-32bit-6.1.2-2.11.x86_64.rpm
Теперь получаю эту ошибку:
error: unpacking of archive failed on file /usr/lib/libgmp.so.10;5aa15ea0: cpio: symlink failed - Permission denied
Обратите внимание, что есть Permission denied
там, я думаю, это потому, что я не могу писать на /usr/lib
папка. Может быть, изменить эту папку, распаковать в другом месте … если возможно, как?
Ну, я совсем заблудился … Я новичок во всем этом.
Q: Как я могу использовать это gcc-6.2.0
?
Просто информация, ldd
командовать в cc1plus
:
linux-vdso.so.1 => (0x00007fff987bc000)
libmpc.so.3 => not found
libmpfr.so.4 => not found
libgmp.so.10 => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00002b782f503000)
libstdc++.so.6 => /path/to/gcc-6.2.0/lib64/libstdc++.so.6 (0x00002b782f708000)
libm.so.6 => /lib64/libm.so.6 (0x00002b782fa91000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b782fd0a000)
libc.so.6 => /lib64/libc.so.6 (0x00002b782ff22000)
/lib64/ld-linux-x86-64.so.2 (0x00002b782f2e1000)
la
команда на gcc-6.2.0/bin
:
drwxr-xr-x 2 pbsadmin pbsusers 4096 Dec 15 2016 .
drwxr-xr-x 8 pbsadmin pbsusers 4096 Dec 15 2016 ..
-rwxr-xr-x 4 pbsadmin pbsusers 2868174 Dec 15 2016 c++
-rwxr-xr-x 1 pbsadmin pbsusers 2862280 Dec 15 2016 cpp
-rwxr-xr-x 4 pbsadmin pbsusers 2868174 Dec 15 2016 g++
-rwxr-xr-x 3 pbsadmin pbsusers 2859868 Dec 15 2016 gcc
-rwxr-xr-x 2 pbsadmin pbsusers 67083 Dec 15 2016 gcc-ar
-rwxr-xr-x 2 pbsadmin pbsusers 67067 Dec 15 2016 gcc-nm
-rwxr-xr-x 2 pbsadmin pbsusers 67087 Dec 15 2016 gcc-ranlib
-rwxr-xr-x 1 pbsadmin pbsusers 1666022 Dec 15 2016 gcov
-rwxr-xr-x 1 pbsadmin pbsusers 1673624 Dec 15 2016 gcov-tool
-rwxr-xr-x 4 pbsadmin pbsusers 2868174 Dec 15 2016 x86_64-pc-linux-gnu-c++
-rwxr-xr-x 4 pbsadmin pbsusers 2868174 Dec 15 2016 x86_64-pc-linux-gnu-g++
-rwxr-xr-x 3 pbsadmin pbsusers 2859868 Dec 15 2016 x86_64-pc-linux-gnu-gcc
-rwxr-xr-x 3 pbsadmin pbsusers 2859868 Dec 15 2016 x86_64-pc-linux-gnu-gcc-6.2.0
-rwxr-xr-x 2 pbsadmin pbsusers 67083 Dec 15 2016 x86_64-pc-linux-gnu-gcc-ar
-rwxr-xr-x 2 pbsadmin pbsusers 67067 Dec 15 2016 x86_64-pc-linux-gnu-gcc-nm
-rwxr-xr-x 2 pbsadmin pbsusers 67087 Dec 15 2016 x86_64-pc-linux-gnu-gcc-ranlib
Я использую OpenSUSE, но редко использую RPM. Может быть, это может помочь вам:
rpm -ivh -nodeps --prefix=/some/other/path/ libgmp10-32bit-6.1.2-2.11.x86_64.rpm
Других решений пока нет …