Por que alguns pacotes usam 'make install' enquanto outros usam 'sudo make install'

8

Eu instalei recentemente o codificador LAME no meu servidor para converter wav em mp3 e com o qual funcionou ./configure; make; make install.

Tentei instalar o codificador OGG e isso requer './configure, make, sudo make install' - o que não posso fazer, pois não tenho um VPS (e prefiro não pagar US $ 15 por mês por uma VPN apenas). para instalar um codec).

Sou novo em tudo isso e entendo que o sudo lhe concede permissões - mas tenho tentado descobrir por que exatamente alguns make installs requerem acesso ao sudo e outros não. Ainda não encontrei a resposta.

alexbooots
fonte
Você deve poder alterar o Makefile (ou algum modelo do qual o Makefile é gerado) ou passar opções da linha de comando para algo (provavelmente ./configure) para instalá-lo em um diretório diferente (presumivelmente um que você não precisa sudoacessar) )

Respostas:

7

Normalmente, eu tento executá-lo de sudoqualquer maneira - às vezes funciona. Às vezes, os criadores de pacotes acham que sudoé necessário, eles o usam devido à sua preferência ou optam por instalar coisas em áreas não-usuários do sistema. Às vezes isso é necessário, mas muitas vezes não é.

O outro motivo comum que eu vejo para o uso sudoé nas postagens de blog de terceiros que explicam como instalar o software e, em vez de ir além e explicam como instalá-lo sem sudoprivilégios, eles dizem para você usar sudoporque a pessoa escrever o post simplesmente usa sudopara tudo, o que não é realmente uma boa ideia.

Teoricamente, a única razão pela qual um pacote deve exigir sudoé se ele precisa (ou decide) se instalar em / modificar áreas do sistema que só podem ser modificadas através do acesso do administrador.

De um modo geral, cada vez menos pacotes ainda estão fazendo isso, pois a necessidade de os usuários instalarem algum software sem sudoacesso está aumentando.

jefflunt
fonte
2
A maioria dos pacotes deve ter opções de configuração em algum lugar para que você possa instalá-los em outros locais. Usá-los pode exigir um pouco mais de esforço, mas se você não puder, é com sudoisso que você está preso.
6

Depende se você estiver instalando para você ou para todos os usuários. (Principalmente. Algumas coisas como módulos do kernel exigirão acesso root, independentemente de quem usará os recursos finais.)

A maioria dos programas que fornecem um ./configurescript também aceita um --prefix=~/binou --prefix=~/Local/para que você possa instalá-lo em seu diretório pessoal. Nem todos os programas fornecem um ./configure, mas a maioria fornece algum mecanismo Makefileque permite configurar o destino da instalação.

Então: as suas bibliotecas / programas são para você ou para todos os usuários do seu sistema?

sarnold
fonte
Eles são apenas para eu usar .. e, brill! .. Eu usei ./configure --exec-prefixo = / home / nome de usuário / pasta --prefix = / home / nome de usuário / pasta e parece ter passado ok sem o sudo (que não usava apenas ./configure) para libogg, libvorbis, tem alguns problemas com libtheora e vorbis-tools, mas ainda não sabe o que é isso. Eu deveria ser capaz de obtê-lo embora. Obrigado!
3
Pode ser necessário usar uma opção de linha de comando, como --theora-path=/home/username/folderao compilar outros programas - leia os READMEarquivos ou semelhantes para saber quais variáveis ​​podem precisar ser alteradas.
precisa saber é o seguinte
0

Tudo se resume a ler / gravar / executar permissões de arquivo principalmente. Sudo não tem direitos restritos.

Pense em uma conta de administrador no Windows, em comparação com uma conta de usuário ou convidado com direitos restritos. Mesma coisa.

Pratos
fonte