Gdzie moje oprogramowanie jest zainstalowane w systemie Linux?

8

Używam whereis matlabi znajduję:, /usr/local/bin/matlab który jest bardzo długim plikiem bash.

Jak mogę sprawdzić, gdzie jest zainstalowany Matlab, mam na myśli jego zainstalowany folder.

EDYTOWAĆ:

Użyłem następującej metody: otwórz matlab i użyj edit svds.m, aby otworzyć plik svds.m, a edytor pokaże folder :)

Yin Zhu
źródło
1
Jaka jest twoja dystrybucja linux? Czy Matlab jest zainstalowany jako pakiet RPM lub z source / tarball?
Dmitrij Yudakov

Odpowiedzi:

12

Próbować

locate MATLAB

Plik binarny jest pisany wielkimi literami. W moim systemie plik wykonywalny MATLAB jest zainstalowany /usr/local/matlab/r2009b/bin/glnxa64/MATLAB(co jest nieco dziwnym miejscem). Korzeń Matlab byłby wtedy/usr/local/matlab/r2009b

Oczywiście normalnie uruchamiasz Matlaba za pomocą skryptu z długą powłoką ...

rescdsk
źródło
1
Uwaga: może być konieczne sudo updatedbjednokrotne uruchomienie przed uruchomieniem locate(możliwe, że w przeciwnym razie nie znajdzie prawie tyle).
ChristopheD
3

Zrobiłem

cat `which matlab` | grep matlab

z wyjściem

exec /usr/local/bin/matlab64 -r maxNumCompThreads=4 $*
    echo "   qsub -I -V -l nodes=1,matlab=1"
            exec /usr/local/bin/matlab64 $*
            exec /usr/local/bin/matlab32 $*

Następnie

$ ls -ld /usr/local/bin/matlab64
lrwxrwxrwx 1 root root 30 May  4 12:08 /usr/local/bin/matlab64 -> /usr/local/matlab64/bin/matlab
$ ls -ld /usr/local/bin/matlab32
lrwxrwxrwx 1 root root 28 May  4 12:08 /usr/local/bin/matlab32 -> /usr/local/matlab/bin/matlab
$ ls -ld /usr/local/matlab64 
lrwxrwxrwx 1 root root 27 May  4 12:01 /usr/local/matlab64 -> /usr/local/matlab_2010a-64/
$ ls -ld /usr/local/matlab 
lrwxrwxrwx 1 root root 23 May  4 12:01 /usr/local/matlab -> /usr/local/matlab_2010a

EDYCJA : Lepszym sposobem jest zrobienie tego z wiersza poleceń matlab za pomocą matlabroot .

>> matlabroot

ans =

/usr/local/matlab_2010a-64
Fuj
źródło
2
Bezużyteczne użycie cat:grep matlab $(which matlab)
Wstrzymano do odwołania.
1

W przypadku dystrybucji opartych na RPM możesz użyć

rpm -ql <package_name>

Wyświetli wszystkie pliki z pakietu

# rpm -ql wget
/etc/wgetrc
/usr/bin/wget
/usr/share/doc/wget-1.10.2
/usr/share/doc/wget-1.10.2/AUTHORS
....

Jeśli nie masz pewności, jak wywoływany jest pakiet, możesz użyć czegoś takiego jak rpm -qa | grep -i matlabznaleźć jego nazwę

Dmitrij Judakow
źródło
0

Lokalizacja będzie zależeć (jak sugerował Dmitry) od sposobu zainstalowania pakietów. Zwykle instalacja ze źródła zrzuca pliki binarne i powiązane pliki /usr/local. Aby uzyskać szczegółowe informacje na temat tego, gdzie standardowe dystrybucje (takie jak Debian i inne umieszczają pliki), zapoznaj się z Standardem hierarchii systemów plików .

Noufal Ibrahim
źródło
0

Twój menedżer pakietów może ci powiedzieć. YAST w opensuse ma zakładkę plików, która pokazuje wszystkie pliki i lokalizację, w której zostaną zainstalowane. Nie mogę mówić za innymi dystrybucjami.

alpha1
źródło
0

W środowisku Linux można uruchomić następujący kod, aby uzyskać ścieżki MATLAB

matlab -e | sed -n 's/MATLAB=//p'

gdzie matlab -ewyświetli wiele informacji do uruchomienia MATLAB. Musimy więc potokować je, aby sed -n 's/MATLAB=//p'wybrać tylko katalog główny MATLAB. Używam tego w moim dokumencie Makefile, aby znaleźć ścieżkę do mexkompilatora bez uruchamiania MATLAB. To bardzo szybkie polecenie. Oto, czego użyłem w moim dokumencie Makefile dla wygody:

MATLAB = $(shell matlab -e | sed -n 's/MATLAB=//p')
MEX = $(MATLAB)/bin/mex
antyk
źródło