Como deve (não como pode) um programa estar disponível de qualquer lugar no CentOS / Fedora?

0

Eu estava lendo este link do MySQL: link

shell> cp support-files/mysql.server /etc/rc.d/init.d/
shell> chmod +x /etc/rc.d/init.d/mysql.server
shell> chkconfig --add mysql.server

No arquivo mysql.server , o conteúdo diz:

PATH=$PATH:/usr/local/SomeDir/mysql/bin
export PATH

Mas, ao verificar a variável $ PATH , o / usr / local / SomeDir / mysql / bin não foi adicionado.

Agora, eu estava procurando a solução adequada para isso.

Encontrei estes links:

  • link

    Edit your .bashrc to add the desired directory on the PATH environmental variable.
        export PATH=/usr/local/google_app_engine/bin:$PATH
    then, either start new terminal or do,
        source ~/.bashrc
    Now try to run the script from anywhere.
    
  • Como posso tornar um programa executável em qualquer lugar?

    If you just export PATH=$PATH:. at the command line it will only last for the length of the session though.
    If you want to change it permanently add export PATH=$PATH:. to your ~/.bashrc file (just at the end is fine).
    
  • link

    Create a file with the name of mysql.sh at the path /etc/profile.d/
    # vi /etc/profile.d/mysql.sh
        #!/bin/sh
        PATH=$PATH:/usr/local/mysql/bin
        export PATH
    
  • link

    [root@CentOS ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
    [root@CentOS ~]# source /etc/profile
    

Pergunta

No CentOS 6.x, qual é o local apropriado (caminho ou localização) para colocar este arquivo com instruções?

Comentário: Talvez antes que as soluções funcionem, minha pergunta é: como devo colocar minhas instruções. Minha pergunta é sobre estilos ...

Obrigado

    
por chepe lucho 17.06.2015 / 04:09

1 resposta

1

A primeira parte desta questão refere-se a como, que NÃO está tornando o programa disponível em qualquer lugar - está disponibilizando o programa a partir desse script de init específico, que é a solução correta para tal tarefa.

A segunda parte lista a solução correta para disponibilizá-la de qualquer lugar. Se você vir páginas de manual para bash(1) , poderá ver a diferença na descrição:

/etc/profile
    The systemwide initialization file, executed for login shells
~/.bashrc
    The individual per-interactive-shell startup file

Então a diferença é

  • quando o arquivo é carregado: inicialização do shell OU login
  • se estiver disponível para o usuário específico OU para todos os usuários

A diferença profile.d version é apenas que você escreve em outro arquivo, mas eu acho que você pode inventar que tem o mesmo significado que colocar em /etc/profile .

    
por 06.07.2015 / 09:08