Uma pergunta sobre softwares vindos de um novato compleye

1

Tenho quase certeza de que isso será sinalizado como duplicado, mas eu realmente preciso de algumas respostas organizadas.

No Windows, aplicativos vêm em tipo .exe. Simples.

No Ubuntu, eu vi três tipos.

  1. Aplicativos que eu baixei da USC.

  2. Aplicativos passam pelo terminal.

  3. Aplicativos "portáteis" que eu baixo pelo meu navegador.

Qual é a diferença?

Existe uma maneira de ter todos os meus aplicativos em um gerenciador como no Windows?

    
por raudbul 12.08.2015 / 20:47

3 respostas

1

  

No Windows, aplicativos vêm em tipo .exe. Simples.

Deixe-me fazer uma pequena analogia com o Windows. .exe arquivos são arquivos binários e há .bat scripts no windows. A mesma coisa existe em sistemas * nix, no entanto, o Linux / Unix não depende necessariamente de extensões para definir arquivos executáveis. Você pode, ocasionalmente, encontrar .run scripts de wendors de software proprietário, mas sob o capô eles são realmente arquivos de texto. Principalmente, as extensões são a escolha do desenvolvedor. Por exemplo, eu adiciono .sh extension para shell scripts, mas eles não são um requisito - apenas minha própria preferência. Como eu compilo programas em C com gcc compilador, por padrão o arquivo binário sai com .out extensões, mas se eu quisesse eu poderia salvá-lo sem um.

Por exemplo, se você executar o comando ls -l $(which gnome-terminal) no terminal (onde which encontra o gnome-terminal e ls lista suas propriedades), você verá isto:

-rwxr-xr-x 1 root root 3511 Apr 8 10:34 /usr/bin/gnome-terminal*

Nenhuma extensão, mas o arquivo em si é executável. Mais ainda, se tentarmos determinar que tipo de arquivo é esse, encontramos algo interessante:

$ file $(which gnome-terminal)
/usr/bin/gnome-terminal: Python script, ASCII text executable

É um roteiro! É um arquivo de texto que você pode ver!

Mas há outro arquivo, que está sendo chamado no script acima de /usr/bin/gnome-terminal.real . O que file nos diz?

$ file /usr/bin/gnome-terminal.real
/usr/bin/gnome-terminal.real: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3ad9f22b9c39e314bc13cdd74f5917711986ca4d, stripped

Portanto, o script python realmente configura o ambiente para o executável real.

Observe a parte -rwxr-xr-x na saída de 'ls $ (qual gnome-terminal). Veja o rwx? São permissões de leitura e gravação para o proprietário, leitura e execução para o grupo do ower e outros usuários (leitura da esquerda para a direita). Se removermos essas permissões x para o grupo e outros usuários, o aplicativo ainda será um aplicativo funcional, mas ninguém além de seu proprietário (usuário root) poderá executá-lo. Pode ser análogo à Política de Grupo Local no Windows

Quanto ao software da USC e do terminal (suponho que você use apt-get ), eles são praticamente os mesmos, principalmente arquivos binários. Aplicativos portáteis, como plugins e addons para o firefox, provavelmente estão no javascript. Mas eu não tenho conhecimento suficiente disso, então não vou dizer com certeza.

  

Existe uma maneira de ter todos os meus aplicativos em um gerenciador como no Windows?

Tecnicamente, você já tem um gerenciador de programas no Linux - eles são chamados de gerenciadores de pacotes, e.g. apt-get, yum . Com o windows você instala arquivos exe que você baixou da web, certo? Com o Linux você pode fazer isso, mas mais comumente é feito através de ppa repositórios. apt-get tem uma lista de fontes disponíveis na web. Quando você instala algo, como sudo apt-get install someprog , verificamos essas origens e, se o programa existe, apt-get faz o download, assim como as bibliotecas e programas necessários, e os entrega a dpkg , que os instala. O Ubuntu Software Center faz a mesma coisa, na verdade, está usando apt-get nos bastidores. Mas apt-get é coisa do Ubuntu. Se você olhar para a Red Hat ou Fedora, eles usam yum . Mesma ideia - use repositórios para pesquisar e instalar software.

    
por Sergiy Kolodyazhnyy 12.08.2015 / 21:13
0

No Linux, a executabilidade (o que você provavelmente chamaria de "appiness") de qualquer arquivo em particular NÃO é codificada no nome do arquivo ( .exe ), mas sim nos bits de permissão do arquivo. Por favor, aprenda mais sobre o Linux.

Se você se restringir a aplicativos instalados usando o sistema de gerenciamento de pacotes Debian / Ubuntu (por exemplo, dpkg , apt-get , synaptic são ferramentas que o usam), o mesmo conjunto de ferramentas pode listar o que você instalou usando as ferramentas. Se, no entanto, você fizer o download de algo de evil.example.org e instalá-lo (ou, seguindo as instruções incluídas, fazer sudo alguma coisa), estará por conta própria. Você terá que acompanhar essas coisas sozinho.

Existem ferramentas que permitem monitorar coisas como a adição de executáveis a diretórios em seu $PATH , como o Bastille-Linux leia isso mas também leia este ou Lynis aqui , mas eles parecem fora do escopo para essa resposta.

    
por waltinator 12.08.2015 / 21:14
0

No Ubuntu (e basicamente em todos os outros aspectos do Linux), a maioria dos softwares é instalada por meio de repositórios de software, que é apenas um local unificado do qual você pode fazer download de software. O Ubuntu extrai pacotes de software de vários repositórios por padrão, mas você também pode adicionar ou remover repositórios manualmente do terminal ou do programa Configurações do Sistema. Toda vez que você executar sudo apt-get install <package name> , estará baixando e instalando a partir de um repositório. Mesma história se você baixar do Ubuntu Software Center, que eu considero como uma representação gráfica dos repositórios do Ubuntu, embora eu tenha certeza que é diferente em alguns aspectos. Ambos trazem uma série de benefícios, especialmente software mais seguro que é revisado antes da publicação, e atualizações entregues diretamente com todas as suas outras atualizações de software. Em outras palavras, usar o USC ou apt-get no terminal realmente não é diferente.

Mas nem todo software está disponível em um repositório de software. Ou às vezes é mais fácil baixar um arquivo e instalá-lo dessa maneira. Eu penso em um .deb como a coisa mais próxima de um instalador do .exe no Ubuntu. Mas é um pouco diferente. Um .deb abrirá o USC para instalação e, pelo menos em alguns casos, referenciará um repositório de software para que ele também seja atualizado com todos os outros softwares. O Google Chrome é um exemplo perfeito disso.

Infelizmente, nem todos os softwares estão disponíveis com um instalador .deb amigável ao Debian ou em um repositório de software. Eles estão freqüentemente disponíveis como .tar.gz, que é apenas um formato de pasta compactado. Estes exigem que o usuário compile o código-fonte manualmente a partir do terminal, usando make se bem me lembro. Eu não instalei muitos, se algum, programas usando este método, então eu não sei muito sobre isso, mas eu não esperaria que eles atualizassem através do atualizador de software.

No que diz respeito à organização de seus aplicativos, todos os seus programas devem aparecer no Unity Dash (ativado pela tecla "Super", que provavelmente tem um logotipo do Windows). Como tal, qualquer programa pode ser fixado no Launcher ou no dock. No entanto, na medida em que uma lista abrangente com um botão "desinstalar" agradável e amigável, eu não sei de qualquer maneira de unificar o software que você instalou de todas essas fontes diferentes sob o mesmo teto. O USC tem uma guia "Instalado" na qual você pode visualizar todo o seu software instalado, classificado por repositórios listados no menu suspenso. Mas qualquer software que você tenha compilado provavelmente estará ausente dessa lista.

Espero que esta explicação seja útil. Eu também espero que eu não esteja enchendo sua cabeça com desinformação, então todos vocês gurus do Linux por aí, por favor corrija-me se eu estiver enganado quando se trata de qualquer dessas coisas.

    
por Stephen Kendall 12.08.2015 / 21:46