GNU/Linux >> Linux Esercitazione >  >> Linux

Creazione di un programma in bin

Esistono due modi per consentirti di eseguire il binario senza specificarne il percorso (esclusa la creazione di alias o funzioni di shell per eseguirlo con un percorso assoluto per te):

  1. Copialo in una directory che si trova nel tuo $PATH .
  2. Aggiungi la directory in cui si trova al tuo $PATH .

Per copiare il file in una directory nel tuo percorso, ad esempio /usr/local/bin (dove dovrebbe andare il software gestito localmente), devi avere i privilegi di superutente, il che di solito significa usare sudo :

$ sudo cp -i mybinary /usr/local/bin

Bisogna fare attenzione a non sovrascrivere alcun file esistente nella directory di destinazione (questo è il motivo per cui ho aggiunto -i qui).

Per aggiungere una directory al tuo $PATH , aggiungi una riga nel tuo ~/.bashrc file (se stai usando bash ):

PATH="$HOME/bin:$PATH"

... se il binario è in $HOME/bin .

Ciò ha il vantaggio che non è necessario disporre dei privilegi di superutente o modificare/aggiungere nulla nel sistema di base sulla propria macchina. Devi solo spostare il binario nel bin directory della tua home directory.

Nota, modifiche a .bashrc ha effetto quando il file viene prelevato la volta successiva, il che accade se apri un nuovo terminale o ti disconnetti e rientri o esegui source ~/.bashrc manualmente.


Dovresti leggere di più sulla variabile PATH. Sospetto fortemente che dovresti usarlo (o modificarlo) in modo appropriato.

Voglio essere in grado di inserirlo nella directory bin

Immagino tu intenda /bin/ o /usr/bin/ . Non sono sicuro che sia saggio aggiungere i tuoi programmi lì. Forse sarebbe meglio inserire un collegamento simbolico al loro interno (ad esempio utilizzando qualcosa come ln -sv $(realpath foobar.out) /usr/bin/ ), se vuoi assolutamente che il tuo programma appaia lì (il che IMHO è probabilmente un errore dato che stai facendo confusione con il gestore di pacchetti della tua distribuzione).

Probabilmente sta installando il tuo programma in /usr/local/bin/ è molto più saggio (lasciare sia /bin/ e /usr/bin/ intatto, come fornito e gestito dalla tua distribuzione Linux). Consulta LSB e leggi ulteriori informazioni sullo standard di gerarchia dei file.

... come i comandi a livello di sistema, ad esempio .... cd

Questo è un forte malinteso da parte tua (nella variante originale della tua domanda, hai giustamente rimosso cd dopo). cd non è e non può essere un eseguibile, è (e deve essere) un comando integrato della tua shell.

Potresti voler leggere la Programmazione Linux avanzata scaricabile gratuitamente per capire perché cd non può essere un eseguibile (la directory di lavoro corrente fa parte dello stato di ogni processo, e ogni processo ne ha una propria e potrebbe cambiarla usando chdir(2)...)


install /path/to/oobar.out /usr/local/bin/

Linux
  1. Esclusione della directory durante la creazione di un file .tar.gz

  2. Creazione di una nuova directory in C

  3. Determina se percorso relativo o assoluto nel programma shell

  4. file_put_contents non crea file txt

  5. Creazione di un albero di directory completo in una sola volta

Come aggiungere una directory a PATH in Linux

CD in una directory con nome sconosciuto in un percorso noto?

Linux:aggiungi una directory a PATH

Impedisci alla versione 10.2 di creare la directory Wolfram Mathematica su Linux

Posso aggiungere un collegamento per sostituire un percorso in Linux?

Uso di / quando si usa cd