Czy mogę użyć polecenia (takiego jak „drzewo”) bez instalowania go w całym systemie?


4

Jestem podłączony do Linux-a przez SSH, na którym nie mam uprawnień administracyjnych. Polecenie, którego chcę użyć, zostało wywołane tree, ale nie zostało zainstalowane.

Czy jest jakiś sposób, aby załadować treeprogram do mojego katalogu domowego i uruchomić go bez konieczności instalowania go w całym systemie?

Odpowiedzi:


3

treewydaje się nie mieć szczególnych zależności (libc6), więc myślę, że możesz po prostu skopiować plik wykonywalny (znajdujący się w which treeinnym systemie z treezainstalowanym lub alternatywnie możesz go skompilować ze źródła, oto strona główna projektu) w katalogu powiedzmy na Linux-ie ~/bin/, po prostu musisz zaktualizować $PATHzmienną środowiskową, aby dodać ten katalog.

Jeśli używasz, Bashumieść to w ~/.bashrc:

PATH=$PATH:~/bin/

Uwaga: pamiętaj, aby dopasować architekturę i system operacyjny.


Mogę powiedzieć, że działa na Linuksie, wywołując „echo $ (uname)”, ale jak mam ustalić architekturę?
Corey T Foote,

Pokaż mi wynik działania uname -m.
cyr

Który daje nazwę sprzętową komputera (np x86_64, i686...).
cyr

1
@Corey: echojest niepotrzebny. uname(i większość innych) wykonują własne wyniki.
Dennis Williamson,

3

Zwykle kompilujesz go i instalujesz na prefiksie $HOME. Oznacza to, że plik binarny wejdzie do $HOME/bin, biblioteki do $HOME/libi tak dalej. Następnie należy upewnić się, że te katalogi pojawiają się na $PATH, $LD_LIBRARY_PATH, $MAN_PATH, etc (przeważnie przez editting pliki startowe powłoki) i będzie działać w sposób przejrzysty.

Oto przepis, który będzie działał z wieloma programami

$ cd $HOME
$ mkdir src
$ cd src
$ wget http://host.name/path/to/program.tgz
$ tar xzfv program.tgz
$ cd program
$ ./configure --PREFIX=$HOME
$ make
$ make install

Zauważ, że w przeciwieństwie do instalacji, /usr/localnigdy nie potrzebujesz uprawnień administratora.


Sugeruję umieszczenie rzeczy w $ HOME / local /, aby folder główny był nieco bardziej uporządkowany.

@mankoff: Nigdy o tym nie myślałem. Po prostu przestałem widzieć te katalogi.
dmckee,

3
cd $HOME
# download latest tree source to home directory
wget http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz
# unpack
tar xzfv tree-1.7.0.tgz
cd tree-1.7.0/
make
# install to $HOME directory
make install prefix=$HOME/bin
# this will create folders bin, and man
cd $HOME
# remove original source folder
rm -rf tree-1.7.0

# run tree
$HOME/bin/tree
# view man page
$HOME/man tree

Czy w prefiksie nie ma excedent / bin? Otrzymuję plik wykonywalny /home/[myUsername]/bin/bin/tree.
Najważniejsze
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.