Como dizer ao Ubuntu onde instalar um programa e como saber onde um programa existente foi instalado?

10

Sou totalmente novo no Ubuntu / Linux, usando o Ubuntu Server no momento. Apenas tentando descobrir algo básico.

Como você pode dizer onde você está instalando um programa? Por exemplo, instalei o mecanismo de pesquisa Sphinx colocando o tarball que baixei do site deles para o meu:

/home/sphinx
diretório

. Eu criei o diretório sphinx para colocar o tarball. Então eu executei estes comandos:

tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql

e depois estes:

make
sudo make install

Agora, tenho muitos arquivos no diretório onde executei esses comandos. Esta é a minha instalação do Spynx ou foi instalada em algum outro lugar?

No Windows, se você executar um instalador (arquivo .exe) em qualquer lugar, o programa ainda será instalado no diretório C: \ Arquivos de Programas. Será que algo semelhante se aplica ao Linux, onde todos os programas são instalados em um local central, ou você pode instalar programas em qualquer lugar no sistema.

Perguntas

  1. Eu preferiria manter todos os meus programas instalados em um único lugar qual é o lugar certo para isso em termos de melhores práticas. Dentro outras palavras, qual é o equivalente em Linux de C: \ Program Files?

  2. E como é que um instala sempre neste local, é apenas uma questão de colocar o tarball e de executar os comandos de instalação a partir desta localização?

  3. E se eu usar o sudo apt-get para instalar um pacote? Como posso apontar para este local para dizer ao apt-get para sempre instalar lá?

por JakeRow123 14.06.2012 / 04:16

3 respostas

15
  

Será que algo semelhante se aplica ao Linux, onde todos os programas são instalados em um local central

Aproximado equivalentes dos diretórios de instalação do Windows no Linux

  • \Windows = /bin
  • \Windows\System32 = /lib e /sbin
  • \Program Files = /usr/bin e /usr/lib
  

Eu preferiria manter todos os meus programas instalados em um só lugar, então qual é o lugar certo para isso em termos de melhores práticas. Em outras palavras, qual é o equivalente em Linux de C: \ Arquivos de Programas?

Esses seriam os diretórios em /usr , especificamente /usr/bin e /usr/lib .

  

E como se instala sempre neste local, é apenas uma questão de colocar o tarball e executar os comandos de instalação a partir desta localização?

  • Não. Onde você está quando executa os comandos de instalação, quase nunca importa.

  • Os programas que você instala por meio de apt-get (ou aptitude ) quase sempre terminarão apropriadamente em /usr . MAS os programas que você compila da fonte e make install terminarão com mais frequência em /usr/local/bin , /usr/local/lib , etc, e você pode ter problemas com isso já que o caminho instalado pelo usuário no Debian / Ubuntu é /usr e não% código%.

  • Ao compilar a partir da fonte, adicione essa opção para configurar: /usr/local . Desta forma, quando você ./configure --prefix=/usr os arquivos vão acabar no diretório correto

  • Veja também o programa make install , que controla os arquivos compilados a partir das instalações de origem, cria um arquivo deb e permite a fácil desinstalação / reinstalação.

  

E se eu usar o sudo apt-get para instalar um pacote? Como posso apontar para este local para dizer ao apt-get para sempre instalar lá?

checkinstall / apt-get cuida disso automaticamente. Você pode usar dpkg para ver todos os arquivos instalados por um pacote e onde eles foram instalados.

    
por ish 14.06.2012 / 04:29
4

Normalmente, o programa é instalado em alguns diretórios em um diretório top , chamado de prefixo . O diretório top a ser usado depende de quem está instalando, para quem deseja e quem gerenciará o software.

O prefixo /usr é o software usado pela sua distribuição. Você deve não instalar qualquer outro software lá, porque irá confundir a distribuição ao instalar e atualizar o software empacotado pela distribuição. Então por favor não instale o seu próprio software compilado lá. Isso é não uma boa ideia, a menos que você realmente saiba o que faz. E a menos que você seja um desenvolvedor Debian ou Ubunut, você normalmente não o faz. Eu não faria isso de qualquer maneira.

Para software comercial, o prefixo /opt é usado. É reservado para eles interferirem menos nas distribuições e no administrador do sistema local.

Para o software que o administrador do sistema instala para todos os usuários, o prefixo /usr/local é usado. Lá está fora do caminho da instalação comercial ou de distribuição e não irá interferir com eles. Então, como administrador do sistema, você usa isso (se você tem privilégios de root, você é um administrador do sistema).

Se você é um usuário comum que instala o software para si mesmo, pode usar seu diretório inicial como prefixo, usando a opção --prefix para configure com o diretório de prefixo " ~/ " ou $HOME/ . Eu usei muito isso quando eu era estudante. : -)

Geralmente, o software faz a coisa certa quando você executa configure com a opção --prefix com o valor correto e, em seguida, make; make install .

Em qualquer um desses prefixos, você geralmente encontra esses diretórios em uma instalação padrão.

  • bin - os programas executáveis, binários.
  • sbin - binários do sistema, que geralmente não devem ser executados por usuários comuns.
  • man - páginas de manual para programas, bibliotecas e arquivos de configuração, etc.
  • etc - arquivos de configuração com valores padrão para o software.
  • lib - bibliotecas de programas e arquivos de dados dependentes da arquitetura (como a CPU) em seu computador.
  • share - arquivos de dados que não são diferentes em arquiteturas diferentes e podem ser compartilhados entre diferentes computadores.
  • var - diretórios com dados que mudam durante a execução do programa. Como arquivos de log, etc.

A maioria desses diretórios pode ser usada com sistemas de arquivos protegidos contra gravação para aumentar a segurança. O único que os usuários precisam gravar é o diretório var/ . Quando o software é atualizado, esses diretórios obviamente (?) Precisam ter privilégios de escrita. Isso pode ser feito com uma remontagem com privilégios de gravação durante a instalação e depois remontado com leitura somente após a instalação. Mas isso é avançado, e eu só dou isso como um exemplo de gerenciamento avançado de pacotes.

Existem também alguns diretórios diretamente em / (o diretório raiz) que não existe em nenhum outro prefixo, como /dev , /tmp , /proc e /srv (para diretórios de dados do servidor, mas eles geralmente estão sob /var/lib ou /var/www e diretórios como esse, então você precisa alterar a configuração para usar este diretório.Eu recomendo que você faça isso quando estiver executando um servidor.Utilize somente /var/ para testar uma instalação padrão).

  1. O Linux não é o MS Windows. Existem muitos lugares para colocar programas que você instala. Depende quem instala e para quem. Leia no meu post. Aviso prévio. RedHat usa /usr como o Debian / Ubuntu usa /usr/local . Aprenda sua distribuição.
  2. Programas diferentes possuem métodos de instalação diferentes. --prefix são úteis para programas que usam configure . A melhor maneira de saber é provavelmente ler o arquivo README.txt ou algo assim, o qual você provavelmente é fornecido no arquivo tar. O arquivo tar pode ser extraído em qualquer lugar, como o seu diretório pessoal. Depois que a etapa de instalação estiver concluída, você poderá remover o arquivo tar extraído, se tiver pouco espaço de armazenamento. Mas não faça isso cedo, a menos que você tenha testado sua instalação corretamente.
  3. Os programas instalados com apt-get ou aptitude são sempre instalados no local adequado para a distribuição. Você não pode mudar esse lugar.
por Anders 15.06.2012 / 00:08
2

Quando você instala programas de um repositório usando a instalação normal, ele é instalado no local correto, cria arquivos de configuração no lugar certo (funcionalmente semelhante ao registro do Windows) e cria entradas de menu automaticamente.

Quando você faz o download de um arquivo (não preferido, mas geralmente necessário quando o aplicativo não está em um repositório), a primeira coisa que você fez foi executar o tar, o equivalente a descompactar o Windows. Isso cria os arquivos que você provavelmente está vendo.

Então, quando você executa o comando make install, ele geralmente coloca os resultados no lugar certo, talvez crie menus, mas ele não apaga os arquivos não compactados. É muito provável que você faça isso, mas talvez queira salvá-los temporariamente apenas por precaução.

Aqui está um artigo interessante sobre a Estrutura de Diretório Debian .

    
por Marty Fried 14.06.2012 / 04:30