[Ubuntu] Root PATH

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 21:20
Ik heb een Ubuntu Feisty server.
Op deze server probeer ik een arm-elf crosscompiler te compileren.
Ik heb binutils gecompileerd en vervolgens gcc.
Als ik echter gcc wil compileren zegt hij op een gegeven moment dat hij arm-elf-ranlib niet kan vinden.

Als gewone user kan ik arm-elf-ranlib wel vinden/gebruiken.
Echter als root niet. En aangezien ik installeer met het commando:
code:
1
sudo make install

Neem ik aan dat dat de reden is dat arm-elf-ranlib niet gevonden kan worden. Deze is geinstalleerd in /usr/local/arm7:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
user@server:~$ ls -l /usr/local/arm7/bin/
total 28468
-rwxr-xr-x 1 root root 2057817 2008-06-22 15:58 arm-elf-addr2line
-rwxr-xr-x 2 root root 2035316 2008-06-22 15:58 arm-elf-ar
-rwxr-xr-x 2 root root 2998733 2008-06-22 15:58 arm-elf-as
-rwxr-xr-x 2 root root  300301 2008-06-22 17:33 arm-elf-c++
-rwxr-xr-x 1 root root 2016496 2008-06-22 15:58 arm-elf-c++filt
-rwxr-xr-x 2 root root  300301 2008-06-22 17:33 arm-elf-g++
-rwxr-xr-x 1 root root   15916 2008-06-22 17:33 arm-elf-gccbug
-rwxr-xr-x 1 root root   74763 2008-06-22 17:33 arm-elf-gcov
-rwxr-xr-x 2 root root 2800441 2008-06-22 15:58 arm-elf-ld
-rwxr-xr-x 2 root root 2090808 2008-06-22 15:58 arm-elf-nm
-rwxr-xr-x 1 root root 2563074 2008-06-22 15:58 arm-elf-objcopy
-rwxr-xr-x 2 root root 2817152 2008-06-22 15:58 arm-elf-objdump
-rwxr-xr-x 2 root root 2035315 2008-06-22 15:58 arm-elf-ranlib
-rwxr-xr-x 1 root root  518547 2008-06-22 15:58 arm-elf-readelf
-rwxr-xr-x 1 root root 1942351 2008-06-22 15:58 arm-elf-size
-rwxr-xr-x 1 root root 1923028 2008-06-22 15:58 arm-elf-strings
-rwxr-xr-x 2 root root 2563073 2008-06-22 15:58 arm-elf-strip

Ik heb het geprobeerd op te lossen door /usr/local/arm7/bin/ aan PATH toe te voegen in /etc/enviroment.
code:
1
2
3
user@server:~$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm7/bin"
LANG="en_US.UTF-8"


Maar dit heefst schijnbaar nog steeds niet geholpen.
code:
1
2
3
4
5
6
7
8
9
10
11
user@server:~$ arm-elf-ranlib
Usage: arm-elf-ranlib [options] archive
 Generate an index to speed access to archives
 The options are:
  @<file>                      Read options from <file>
  -h --help                    Print this help message
  -V --version                 Print version information
arm-elf-ranlib: supported targets: elf32-littlearm elf32-bigarm elf32-little elf32-big srec symbolsrec tekhex binary ihex

user@server:~$ sudo arm-elf-ranlib
sudo: arm-elf-ranlib: command not found

Hoe ga ik oplossen dat de server arm-elf-ranlib ook als sudo uit kan voeren?

Acties:
  • 0 Henk 'm!

Verwijderd

En heb je al opnieuw ingelogd na het wijzigen van /etc/environment? Wat is de output van
echo $PATH

Desnoods even een
which arm-elf-ranlib

Sowieso moet de executable met het gehele pad aanroepen altijd werken.

Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

sudo stript een berg enviroment vars weg voordat ie het commando uitvoerd.

man sudo:
quote: man sudo
There are two distinct ways to deal with environment variables. By
default, the env_reset sudoers option is enabled. This causes commands
to be executed with a minimal environment containing TERM, PATH, HOME,
SHELL, LOGNAME, USER and USERNAME in addition to variables from the
invoking process permitted by the env_check and env_keep sudoers
options. There is effectively a whitelist for environment variables.

We are pentium of borg. Division is futile. You will be approximated.


Acties:
  • 0 Henk 'm!

  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 21:20
code:
1
2
3
4
user@server:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm7/bin
user@server:~$ which arm-elf-ranlib
/usr/local/arm7/bin/arm-elf-ranlib


Ik heb de hele server opnieuw opgestart. Dit leek me wel voldoende.
Het gaat er uiteindelijk om dat het make script goed uitgevoerd word.
Hier een stukje van de output zodat te zien is waar het fout gaat.
GCC is zonder problemen gecompileerd en moet nu nog geinstalleerd worden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
make[4]: Entering directory `/home/joost/ARM/build-gcc/gcc'
make[4]: `thumb/crtend.o' is up to date.
make[4]: `thumb/crti.o' is up to date.
make[4]: `thumb/crtn.o' is up to date.
make[4]: Leaving directory `/home/joost/ARM/build-gcc/gcc'
/usr/bin/install -c -m 644 ./libgcc.a /usr/local/arm7/lib/gcc/arm-elf/4.1.1/
arm-elf-ranlib /usr/local/arm7/lib/gcc/arm-elf/4.1.1/libgcc.a
make[3]: arm-elf-ranlib: Command not found
make[3]: *** [install] Error 127
make[3]: Leaving directory `/home/joost/ARM/build-gcc/gcc'
make[2]: *** [install-multilib] Error 2
make[2]: Leaving directory `/home/joost/ARM/build-gcc/gcc'
make[1]: *** [install-gcc] Error 2
make[1]: Leaving directory `/home/joost/ARM/build-gcc'
make: *** [install] Error 2

Rainmaker uit jouw reactie blijkt dat PATH gewoon beschikbaar hoort te zijn in de Sudo enviroment?

[ Voor 3% gewijzigd door Gehakt op 22-06-2008 19:10 ]


Acties:
  • 0 Henk 'm!

  • Tuxie
  • Registratie: Augustus 2003
  • Laatst online: 10-09 09:52

Tuxie

En WeL nU!

ldconfig gedraaid?

Acties:
  • 0 Henk 'm!

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 09-09 23:05

smokalot

titel onder

is het niet de taak van het configure-script om de locatie van de juiste binaries te vinden en in de makefile te zetten?

Het zou ook aan make kunnen liggen, die start natuurlijk ook een nieuw proces met een nieuwe environment. Je zou dat kunnen checken door eens te proberen naar een andere prefix te installeren, een waar je user schrijfrechten heeft, ergens in je $HOME dus. Als dat dan ook niet werkt ligt het aan sudo.

Je kunt met sudo -s of sudo su overigens ook gewoon een shell krijgen als root, dat is iets makkelijker om te onderzoeken hoe je environment eruit ziet en wat er mis gaat.

It sounds like it could be either bad hardware or software


Acties:
  • 0 Henk 'm!

  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 21:20
Ik heb nu het hele process gevolgd en als prefix mijn home directory gebruikt. Make install van gcc werkt dan wel zonder problemen.

Nu zit ik niet zo in het hele compileer wereldje van Maar zou ik nu ook gewoon die hele map naar /usr/local/arm7 kunnen verplaatsen en werkt alles dan nog gewoon?
Pagina: 1