📀Instalando softwares e atualizando o sistema

Um sistema operacional 100% estático não é muito útil nem seguro para o cotidiano. É necessário uma maneira de instalar novos softwares, atualizá-los para obter novas funcionalidades e correções, e removê-los quando não são mais necessários.

No universo do Linux há diversas formas para se instalar e atualizar softwares, e muitas delas dependem da distribuição. Abaixo estão algumas das formas mais comuns de instalação de softwares no Ubuntu.

  • Loja Software - um aplicativo gráfico presente em ambientes GNOME e KDE principalmente que permite a instalação facilitada de softwares via GUI.

  • Repositórios/apt/apt-get/aptitude - é a forma de distribuição padrão de distros baseadas no Debian. Há um arquivo em /etc/apt/sources.list que lista sources (HTTP, DVDs etc) que chamamos de repositórios. Esses repositórios contém os softwares podem ser pesquisados/indexados/instalados via gerenciadores de pacotes como o apt. Já o apt-get e o aptitude são versões mais antigas do apt, que ainda funcionam nos sistemas atuais, mas aos poucos estão sendo substituídos pelo apt.

Exemplo de parte de um arquivo de lista de repositórios
  • Pacotes .deb - são pacotes de distribuição de softwares para distros baseadas no Debian, geralmente baixados da internet para instalação manual. É possível instalá-los via dpkg ou apt, como veremos nessa página.

  • Arquivos flatpak/snap - esses novos formatos encapsulam o código e suas dependências em pacotes flatpak/snap e contam com repositórios e ferramentas para facilitar a instalação e atualização dos softwares. Pacotes e ferramentas snap estão por padrão no Ubuntu e contém um confinamento nas versões mais atuais do snap, provendo segurança ao custo da velocidade inicial de execução. Devido às possibilidades de confinamento e de não necessitar da instalação de dependências, programas empacotados como snaps/flatpaks estão cada vez mais sendo utilizados em detrimento de outras formas de distribuição de pacotes.

Página principal do Flathub

Página principal do snapcraft

  • Arquivos AppImage - é um formato de pacotes portátil que permite encapsular o código em um único arquivo AppImage, que pode ser distribuído e executado por qualquer sistema que contenha os pacotes necessários para rodá-lo.

Páginas principal appimage.org
  • PPA - Personal Package Archive é uma forma de distribuir software na internet, compatível especialmente com sistemas Ubuntu. Geralmente, PPAs continham versões mais recentes dos softwares (mais funcionalidades, menos estável). Está sendo substituído por formatos mais inteligentes, como o flatak/snap.

Página principal do launchpad.net da Canonical, contendo PPAs
  • Compilação manual: esse é o método mais complicado para leigos e que pode resultar em mais problemas. Para compilar manualmente um programa, vai depender da linguagem utilizada e do sistema de construção empregado, logo não há um tutorial que funcione para todos os casos. Entretanto, para pacotes Linux geralmente segue-se a execução de um script configure, compilação via instruções de um Makefile via make, e instalação no sistema com make install.

Tipos de distros

Ubuntu é uma distro chamada de fixed release, pois a atualização do sistema vêm ao público em datas fixas. No caso específico do Ubuntu, nos meses 04 (abril) e 10 (outubro) - por isso que as versões seguem o padrão numero_do_ano.numero_do_mes.

Além disso, a cada dois anos é lançado uma versão de longo suporte, a Long Term Support (LTS). É uma versão mais estável por ter sido mais testada e possui mais tempo de suporte por parte da Canonical. A mais recente LTS é a 22.04.

Vamos, agora, entender como instalar, remover e atualizar nossos softwares dentro de um sistema Ubuntu.

Caso encontre algum erro ao executar os comandos abaixo, utilize sudo, pois vários deles necessitam de privilégios root

apt

O apt é o programa principal para gerenciamento de softwares no Ubuntu. Ele irá ler as fontes de repositório, disponíveis em /etc/apt/sources.list e realizar as ações abaixo a partir daí. A vantagem de se usar o apt é que ele já realiza a instalação automática das dependências do pacote.

Muitos dos parâmetros abaixo aceitam a opção -y (yes) para não necessitar de confirmação manual do usuário.

update

Atualiza os índices do sources.list. Recomenda-se sempre ser executado antes da instalação de um pacote, em especial quando os índices não são atualizados há muito tempo. Esse parâmetro irá buscar pelos IPs mais novos em fontes HTTP, buscar novos softwares e versões etc.

Uso do apt update

Para procurar por pacotes, utilize o search passando um termo para pesquisar, como "browser". Desssa forma, o apt irá retornar todos os pacotes que tem alguma relação com o termo (a lista pode ser imensa).

Uso do apt search

show

O apt show irá retornar informações do pacote, como versão, descrição, categoria, mantenedor etc.

Uso do apt show

download/source

Os pacotes instaláveis pelo apt são no formato .deb. O comando apt download nomedopacote permite realizar o download local do .deb, para instalação manual. Abaixo está o download do pacote screenfetch, um software que mostra uma arte ASCII e informações gerais do sistema.

Download de um pacote .deb via apt

Com a filosofia opensource em mente, o apt contém um parâmetro específico para realizar o download do código-fonte de um pacote: apt source. Entretanto, isso só será possível caso o software seja opensource e tenha uma entrada deb-src (de repositório de código-fonte) no /etc/apt/sources.list que o contenha. Caso não existam repositórios de códigos-fonte, o apt irá retornar um erro:

Erro ao realizar o download de código-fonte via apt source

Para solucionar isso, podemos editar o arquivo de fontes com um editor, com privilégios de root. Pode ser utilizado qualquer editor de texto, porém aqui utilizaremos o nano como exemplo, via sudo nano /etc/apt/sources.list. Para mais informações de uso do nano, acesse o tópico Edição de texto.

Levando em consideração a instalação limpa do Ubuntu 22.04, descomente todas as linhas que começam com deb-src (apenas retirar o símbolo # do início de cada uma).

Habilitando os repositórios de código do apt via editor de texto

Após a modificação, realize um apt update para atualizar a base de dados do apt - verifique na imagem abaixo que os sources estão sendo sincronizados.

apt update após as modificaçẽs de adição de repositórios de source

Por fim, execute o comando apt source nomedopacote para baixar os sources - no nosso caso, do pacote screenfetch.

install

Para instalar um pacote, utilize apt install nomedopacote, sendo nomedopacote exatamente o nome retornado pelo apt show. É possível passar mais de um pacote para ser instalado, necessitando apenas separar cada nome de pacote por um espaço.

O programa irá perguntar se o usuário realmente deseja instalar o pacote, digite y para prosseguir. Utilize -y para instalar sem necessidade de interação.

Instalando pacotes com apt install

Também é possível instalar pacotes .deb que estão no diretório corrente, usando a sintaxe apt install ./pacote.deb. Como exemplo, na imagem abaixo tem a instalação do pacote screenfetch, baixado no download/source.

Instalação de um pacote .deb via apt

Ao final da instalação, o programa poderá ser executado normalmente.

Execução do comando screenfetch

remove (--purge)

Para remover um pacote, simplesmente execute apt remove nomedopacote. Esse comando irá remover o pacote, porém irá preservar os arquivos de configuração e preferências do usuário, deixando simples a reinstalação do pacote caso o usuário deseje instalá-lo novamente no futuro.

Para remover o pacote e todos os arquivos de configuração, adicione a opção --purge na linha de comando.

Removendo o pacote screenfetch e todas as suas configurações

autoremove

Removerá os pacotes automaticamente instalados pelo apt para cumprir requisitos de dependências, quando eles não são mais necessários para o sistema. Recomendado para realizar uma limpeza de pacotes desnecessários, liberando espaço no sistema.

Removendo pacotes desnecessários via apt autoremove

upgrade

Além de instalar pacotes, o apt permite atualizá-los, utilizando o comando apt upgrade. Esse comando irá atualizar todos os pacotes do sistema, instalando novos caso necessário para satisfazer as dependências, porém, não desinstalará pacotes existentes caso seja necessário para atualizar algum pacote específico. Isso torna esse comando mais estável para atualização do sistema.

Atualização dos pacotes com apt upgrade

full-upgrade

Realiza a atualização dos pacotes, mas, em contraste ao apt upgrade, realiza a remoção de pacotes caso necessário. Isso torna esse comando menos estável, porém, é a melhor opção quando se está atualizando uma distro fixed release - de uma versão para a outra.

Atualizando pacotes com full-upgrade

dpkg

O dpkg tem a função de gerenciar pacotes no sistema. Geralmente isso é feito de forma manual, seguindo as seguintes opções:

Instalando .deb - -i

Para instalar pacotes, execute dpkg -i pacote.deb. Vamos utilizar como exemplo o .deb do screenfetch, baixado na seção download/source.

Instalação do pacote screenfetch via dpkg

Caso encontre algum erro durante a instalação do pacote, execute apt install -f, que tentará consertar pacotes quebrados (sem dependências).

Listando pacotes instalados - -l

Para listar os pacotes instalados no sistema, suas versões e descrições, utilize dpkg -l.

Listando pacotes com dpkg -l

Removendo pacotes - -r

Para remover pacotes, utilize dpkg -r nomedopacote. Note que nomedopacote é o nome retornado pelo dpkg -l, não o nome do arquivo .deb.

Removendo pacotes com dpkg -r

Last updated