Gestão de pacotes na CLI do openSUSE

Instalar programas, atualizar o sistema, remover pacotes de softwares desnecessários, deixar o sistema enxuto — enfim, gerenciamento de pacotes.
Neste texto, vou mostrar como estas atividades podem ser realizadas na CLI (Command Line Interface) ou interface da linha de comando — ou, simplesmente, o bom e eficiente terminal.
Escrevo sob a ótica de um usuário Debian/Ubuntu, de longa data, obrigado a usar um notebook openSUSE por alguns dias (ei! Estou gostando!) — e mantenho o hábito de resolver meus problemas com a flexibilidade e agilidade que só a CLI proporciona.
Se você tiver dificuldade para entender algum conceito, dê uma olhada no glossário, ao final do texto.

Mesmo em inglês o termo CLI não tem homogeneidade no seu significado, podendo ser também Command Language/Line Interpreter (Interpretador de Linguagem/Linha de Comando).
Outros termos se aplicam, como CUIConsole User Interface (Interface de Usuário no Console) ou Character User Interface (Interface ao Usuário em Caracteres).

Métodos tradicionais de instalação

A grande maioria dos usuários Linux sempre instalou seus softwares no computador, da mesma forma como, hoje, instala no smartphone — escolhendo de uma central de programas (comumente chamada “loja” ou store).
Há outros métodos, contudo, que existiam antes e ainda vão existir por muito tempo, em função de oferecer maior flexibilidade de uso, como veremos no decorrer deste texto.

Se você está vindo da “terra do Windows”, saiba que seus dias de ficar procurando programas de origem duvidosa, de sites duvidosos, acabaram. Ninguém faz isto no Linux, desde a década de 90!

Baixar e compilar os fontes de um software é o método mais tradicional, que merece um post só para ele — e que tem diversas vantagens em cima dos outros.
A preocupação de possibilitar aos usuários finais de seus softwares instalar, não somente, o programa principal, mas ter todo o ‘ecossistema’ de bibliotecas necessárias ao seu funcionamento, acompanha os desenvolvedores Linux desde os primórdios.
Um “pacote de softwares”, portanto, contém o programa que você quer, junto com algumas bibliotecas de necessidade imediata e informações sobre outras bibliotecas e softwares, cuja instalação é necessária ou sugerida.
O sistema de gestão de pacotes do Linux é capaz de baixar e instalar o programa do pacote, junto com as suas bibliotecas e — mais importante! — verificar se o sistema já tem todos os outros softwares necessários para o funcionamento do aplicativo que você deseja. Se não estiverem presentes, o gestor sugere sua instalação e informa, por exemplo, o tamanho que toda a instalação irá ocupar ao final.
Pacotes de softwares costumam vir comprimidos dentro de arquivos RPM e podem ter o mesmo problema de baixar softwares para Windows (se você não tiver certeza da idoneidade do site de onde você o pegou).
opensuse oficial logo

Gestão de pacotes com o zypper

O ZYpp (ou libzypp) é um mecanismo de gestão de pacotes que move aplicações Linux, como o YaST, Zypper e as implementações de Packagekit para o openSUSE e o SUSE Linux Enterprise.
Trata-se de uma ferramenta desenvolvida nos laboratórios da Novell e é distribuída sob a GPL v2.0.
O Zypper é o frontend para CLI do gestor de pacotes ZYpp.
Pode ser usado para instalar, remover pacotes, atualizar o sistema e exibir informações sobre pacotes de softwares locais ou remotos.

O Zypper também faz parte do sistema de gerenciamento de pacotes de distribuições Linux voltadas para equipamentos móveis, como o MeeGo, Sailfish OS e o Tizen (da Samsung).

Vejamos alguns exemplos de uso.
Para atualizar as informações do seu sistema em relação aos repositórios do openSUSE, use o comando refresh:

sudo zypper refresh
root's password:
O repositório 'openSUSE-13.2-Non-Oss' está atualizado.
Obtendo os metadados do repositório 'openSUSE-13.2-Oss' ---------------------[\]
Construindo o cache do repositório 'openSUSE-13.2-Oss' ..............[concluído]
Obtendo os metadados do repositório 'openSUSE-13.2-Update' ------------------

...

Se você pretende adotar a CLI para remover, instalar e atualizar seus softwares no openSUSE, é recomendável executar o refresh sempre, antes de começar.
Este processo serve para baixar e sincronizar os metadados dos pacotes entre o repositório remoto (ou em uma mídia) e o repositório local — construindo o solv cache, localizado em /var/cache/zypp/solv.
Depois do refresh, você pode tentar localizar o pacote ou pattern (padrão, perfil de instalação) desejado, com o comando search:

zypper search games

Veja o resultado dividido por colunas:

  1. coluna indicativa do status ou estado atual do pacote ou padrão. ‘i’ quer dizer que está instalado.
  2. nome do pacote ou padrão.
  3. descrição do pacote ou padrão.
  4. especificação da entidade.

Abaixo, segue o meu resultado — que mostra que o pattern ‘games’ já se encontra instalado:

Carregando os dados do repositório...
Lendo os pacotes instalados...

S | Nome                          | Resumo                        | Tipo        
--+-------------------------------+-------------------------------+-------------
  | bsd-games                     | Several Text-Mode Games       | pacote      
i | games                         | Games                         | padrão      
  | gnome-games                   | Games for GNOME -- meta pac-> | pacote      
  | gnome-games-extra-data        | Extra data files for GNOME -> | pacote      
i | gnome-games-recommended       | Recommended Games for GNOME   | pacote      
  | gnome-games-scripts           | Build helpers for gnome gam-> | pacote      
  | kdeaddons3-games              | Additional Modules for Atla-> | pacote      
  | kdegames3                     | Games for KDE                 | pacote      
  | kdegames3-arcade              | Arcade games for KDE          | pacote      
  | kdegames3-board               | KDE board games               | pacote      
  | kdegames3-card                | Card games for KDE            | pacote      
  | kdegames3-devel               | Games for KDE: Build Enviro-> | pacote      
  | kdegames3-tactic              | Tactic and logic games for -> | pacote      
  | kdegames4-carddecks-default   | Default Card Decks for KDE -> | pacote      
  | kdegames4-carddecks-other     | Further Card Decks for KDE -> | pacote      
  | libkdegames                   | General Data for KDE Games    | pacote      
  | libkdegames                   | General Data for KDE Games    | pacote fonte
  | libkdegames-devel             | Library for KDE Games: Buil-> | pacote      
  | libkdegames6                  | Library for KDE Games         | pacote      
  | opengl-games-utils            | Utilities to check proper 3-> | pacote      
i | patterns-openSUSE-games       | Games                         | pacote      
i | patterns-openSUSE-gnome_games | GNOME Games                   | pacote      
  | patterns-openSUSE-kde4_games  | KDE4 Games                    | pacote      
  | racket-games                  | Sample games from Racket Sc-> | pacote      
  | texlive-collection-games      | Games typesetting             | pacote      
  | texlive-context-games         | Package context-games         | pacote      
  | texlive-context-games-doc     | Documentation for texlive-c-> | pacote      

Como é possível observar, na figura abaixo, o padrão games, que já vem incluído na instalação “padrão”, não é muito extenso.
padrões de jogos no opensuse
É possível reduzir o tamanho da saída do comando search com a opção ‘–uninstalled-only’, que vai mostrar apenas os pacotes/padrões que já se encontram instalados no seu sistema. O contrário desta opção é ‘–installed-only’.
Veja um exemplo:

zypper search --installed-only games
Carregando os dados do repositório...
Lendo os pacotes instalados...

S | Nome                          | Resumo                      | Tipo  
--+-------------------------------+-----------------------------+-------
i | games                         | Games                       | padrão
i | gnome-games-recommended       | Recommended Games for GNOME | pacote
i | patterns-openSUSE-games       | Games                       | pacote
i | patterns-openSUSE-gnome_games | GNOME Games                 | pacote

Se quiser obter informações sobre um dos pacotes (na primeira lista), uso o comando info:

zypper info opengl-games-utils
Carregando os dados do repositório...
Lendo os pacotes instalados...


Informação para pacote opengl-games-utils:
------------------------------------------
Repositório: openSUSE-13.2-Oss
Nome: opengl-games-utils
Versão: 0.1-8.1.2
Arquitetura: noarch
Fornecedor: openSUSE
Instalado: Não
Status: não instalado
Tamanho após instalado: 2,4 KiB
Resumo: Utilities to check proper 3d support before launching 3d games
Descrição: 
  This package contains various shell scripts which are intended for use by
  3D games packages. These shell scripts can be used to check if direct
  rendering
  is available before launching an OpenGL game. This package is intended for use
  by other packages and is not intended for direct end user use!

De acordo com as informações, acima, é possível estabelecer que os softwares dentro do pacote, após a instalação, ocuparão 2,4 KiB.
Pela descrição, depreende-se que se trata de uma “dependência”, ou seja, este software não será executado diretamente pelo usuário final, mas pelos programas de jogos que necessitam testar o suporte aos gráficos 3d.
Para instalar um pacote, use o comando install, do zypper:

sudo zypper install opengl-games-utils
root's password:
Carregando os dados do repositório...
Lendo os pacotes instalados...
Resolvendo as dependências de pacote...

O seguinte pacote NOVO será instalado:
  opengl-games-utils 

1 novo pacote a ser instalado.
Tamanho total do download: 5,2 KiB. Já baixado: 0 B  Após a operação, 2,4 KiB 
adicionais serão utilizados.
Continuar? [s/n/? exibe todas as opções] (s): 

Note que, para atualizar (refresh), instalar e remover pacotes, já é necessário ter privilégios de superusuário.

Se quiser desinstalar o pacote, mais pra frente, use o comando remove:

sudo zypper remove opengl-games-utils
Carregando os dados do repositório...
Lendo os pacotes instalados...
Resolvendo as dependências de pacote...

O seguinte pacote será REMOVIDO:
  opengl-games-utils 

1 pacote para remover.
Após a operação, 2,4 KiB será liberado.
Continuar? [s/n/? exibe todas as opções] (s): 

Como última dica, caso você não se lembre do complemento exato do comando que deseja, use a tecla TAB, para obter uma lista de possibilidades na linha de comando, sem precisar abortar a atual linha:

zypper [pressione a tecla TAB]
Display all 108 possibilities? (y or n)
?
addlock
addrepo
addservice
al
ar
as
--cache-dir
cl
clean
cleanlocks
--config
--disable-repositories
--disable-system-resolvables
dist-upgrade
download
dup
--gpg-auto-import-keys
help
--help
if
--ignore-unknown
in
--More--

Glossário da gestão de pacotes no openSUSE


  • Repositório — é um diretório local ou remoto, contendo pacotes de softwares, além de informações adicionais acerca destes pacotes (meta-dados dos pacotes)
  • Pattern ou padrão — é um grupo de pacotes instalável e dedicado a certo propósito.
    Por exemplo, o grupo Laptop pattern contém todos os pacotes necessários para constituir um ambiente de computação móvel.
    O conceito é semelhante ao do Tasksel, no Debian.
    Os patterns definem as dependências de cada pacote componente do grupo e vem com uma pre-seleção de itens marcados para a instalação.
    Desta forma, ele garante que todos os pacotes de aplicativos necessários para aquele tipo de perfil de uso estarão presentes no equipamento de instalação.
  • Pacotes — são arquivos comprimidos, em formato RPM, contendo os arquivos referentes a uma aplicativo
  • Patch — consiste de um ou mais pacotes e podem conter dependências de outros pacotes que ainda não estejam instalados.
  • Dependências — são softwares ou bibliotecas de softwares dos(as) quais outros aplicativos dependem para serem instalados e/ou funcionar.
    Se você vai instalar um pacote de softwares e este necessita de outros pacotes para poder ser instalado e usado, estes outros pacotes complementares são chamados “dependências”.

Se você já conhece o sistema de gerenciamento de pacotes do Debian e Ubuntu, tenho certeza de que tudo isto lhe é muito familiar.

Como se virar no terminal do openSUSE

Como usar o openSUSE no terminal
A CLI, interface de linha de comando, do openSUSE não é diferente das outras distros GNU/Linux.
Quem usa uma, usa todas.
As diferença sutis ficam por conta de algumas ferramentas específicas de detecção de hardware e de manipulação de pacotes.
Este texto é voltado para iniciantes no Linux, que estejam tendo o seu primeiro contato através da distribuição openSUSE e que queiram saber mais sobre como usar a CLI do sistema.

CLI, quer dizer Command Line Interface ou interface de linha de comando.

Como abrir um terminal no openSUSE

Há várias maneiras de ter acesso a um terminal para poder executar comandos.

  • Use a combinação de teclas Alt+F2 para abrir um pequeno console.
    A partir dele é possível executar um terminal, com um dos seguintes comandos:

    1. gnome-terminal — se você usa o openSUSE com GNOME.
    2. konsole — se você usa o openSUSE com KDE.
    3. xterm — para qualquer caso, este funciona sempre.
  • Use o atalho de teclado Ctrl + Alt + F1 para ir para um terminal puro. Você irá precisar se autenticar novamente para fazer uso dele.
    Para sair dele, dê o comando exit.
    Para voltar ao ambiente gráfico, use o atalho Ctrl + Alt + F7.

Comandos básicos

No terminal use os seguintes comandos para se situar:

  1. O ls exibe uma listagem dos arquivos do diretório atual:
    ls
    .
  2. O pwd exibe o nome/caminho do diretório atual (útil para evitar executar comandos no “lugar errado”, por exemplo):
    pwd
    .

Comandos mais compridos podem ser ‘autocompletados’ com a tecla TAB. Use bastante, para evitar errar nomes complicados de diretórios (pastas) ou arquivos.

Você pode copiar um arquivo de um diretório para outro.
Para dar um exemplo, vou mostrar como usar o comando touch para criar um arquivo, a seguir, mostro como fazer o procedimento:

touch novoarquivo

Se você usar o comando ‘ls -lh’, vai ver que o arquivo já foi criado e se encontra com o tamanho 0.
Para copiá-lo para outro diretório basta usar o comando cp, citar o nome do arquivo e o seu novo local:

cp novoarquivo Documents/

Para verificar o diretório Documents, use o comando ls assim:

ls Documents

Lembra da tecla TAB? Aquela que ‘autocompleta’ os nomes?
Pois é. Na hora de digitar os comandos acima, basta teclar as 3 primeiras letras do nome da pasta Documents e pressionar o TAB.
Se você quiser mover o arquivo, em vez de copiar, use o comando mv, da mesma forma:

cp novoarquivo Documents/

Para remover um arquivo, use o comando rm:

rm novoarquivo

Monitoramento do sistema

Alguns comandos estão sempre presentes no Linux para realizar o monitoramento do sistema.
Conheça alguns deles, a seguir.
Para verificar o espaço livre em disco, use o comando df (disk free):

df
.

Veja, abaixo, um exemplo da saída:

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       41945088 3769712  36418416  10% /
devtmpfs         4047564       8   4047556   1% /dev
tmpfs            4054260     128   4054132   1% /dev/shm
tmpfs            4054260    1484   4052776   1% /run
tmpfs            4054260       0   4054260   0% /sys/fs/cgroup
/dev/sda1       41945088 3769712  36418416  10% /.snapshots
/dev/sda1       41945088 3769712  36418416  10% /var/tmp
/dev/sda1       41945088 3769712  36418416  10% /var/spool
/dev/sda1       41945088 3769712  36418416  10% /var/opt
/dev/sda1       41945088 3769712  36418416  10% /var/log
/dev/sda1       41945088 3769712  36418416  10% /boot/grub2/x86_64-efi
/dev/sda1       41945088 3769712  36418416  10% /var/lib/pgsql
/dev/sda1       41945088 3769712  36418416  10% /var/lib/named
/dev/sda1       41945088 3769712  36418416  10% /var/lib/mailman
/dev/sda1       41945088 3769712  36418416  10% /var/crash
/dev/sda1       41945088 3769712  36418416  10% /usr/local
/dev/sda1       41945088 3769712  36418416  10% /tmp
/dev/sda1       41945088 3769712  36418416  10% /srv
/dev/sda1       41945088 3769712  36418416  10% /opt
/dev/sda1       41945088 3769712  36418416  10% /boot/grub2/i386-pc
/dev/sda2      923423196   85624 923337572   1% /home

Para obter uma listagem de mais fácil leitura, use a opção -h:

df -h

Esta mesma opção pode ser usada com o comando free, que exibe informações sobre o uso da memória:

free -h
             total       used       free     shared    buffers     cached
Mem:          7,7G       2,2G       5,6G       235M       8,4M       1,3G
-/+ buffers/cache:       890M       6,9G
Swap:          10G         0B        10G

Se você quiser ter uma idéia de como os principais processos estão usando os recursos da sua máquina, o tradicional comando top, mostra.
opensuse terminal comando top

Comandos do sistema

Os comandos que seguem, precisam ser executados com privilégios administrativos (superusuário).

É preciso ser muito cuidadoso ao executar comandos com privilégios administrativos — você pode danificar o sistema, se fizer bobagem.

Há duas maneiras básicas para digitar comandos como administrador:

  1. Usando o sudo antes do comando, em questão. Veja um exemplo:
    sudo ls -lah /

    O sistema irá pedir sua senha de usuário, antes de realizar a operação.

  2. Se tornando o superusuário. Para isto digite o comando su e forneça a senha de administrador.

Leia mais sobre as diferenças entre SU e SUDO.


Veja um exemplo de comando para desligar o sistema:

sudo systemctl shutdown

Há outras formas de usar o comando shutdown (inclusive com um temporizador). Leia este post, para saber mais.
Para reiniciar todo o sistema, use o seguinte:

sudo systemctl reboot

Para obter informações sobre o estado do serviço de rede:

systemctl status network

Note que, para saber apenas o estado atual da rede, não é necessário ter privilégios especiais.
Veja um exemplo do resultado:

NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled)
   Active: active (running) since Qui 2016-05-12 16:45:12 BRT; 2h 25min ago
 Main PID: 771 (NetworkManager)
   CGroup: /system.slice/NetworkManager.service
           ├─ 771 /usr/sbin/NetworkManager --no-daemon
           └─5694 /sbin/dhclient -d -sf /usr/lib/nm-dhcp-helper -pf /var/run/...

Além do parâmetro ‘status’, é possível usar outros:

  1. stop — para parar o serviço
  2. restart — para reiniciar o serviço
  3. start — para iniciar o serviço

Estas opções permitem lidar com serviços na sessão atual.
Caso você queira desabilitar ou habilitar definitivamente, use (respectivamente) ‘disable’ ou ‘enable’. Veja exemplos:

# para Habilitar o servidor SSH:
sudo systemctl enable sshd

# para desabilitar o serviço de impressão CUPS:
systemctl disable cups

Referências

http://opensuse-guide.org/installpackage.php

Como instalar o Ubuntu a partir do mínimo

Muitas pessoas desejam usar a última versão do sistema operacional Ubuntu, mas ficam frustradas com a lentidão, causada pela grande quantidade de recursos incorporada à distribuição.
O Ubuntu, bem como outras distribuições GNU/Linux, tem a versão Minimal CD para download em seu site (veja links, ao final e no decorrer do texto).
Esta opção tem aproximadamente 50 MiB de tamanho, no formato ISO.
ubuntu logo black and white
Pode ser baixada e gravada em um CD/DVD ou em um pendrive, em questão de minutos (a depender da sua conexão).
Esta versão do Ubuntu entrega uma distro instalada sem o ambiente gráfico e, consequentemente, sem todos aqueles aplicativos que você está acostumado a ver.

Se compararmos o tamanho do arquivo ISO da distro completa (ubuntu 16.04 LTS) com o do minimal, fica bem obvio que muitos aplicativos e recursos ficaram de fora.
O primeiro “pesa” aproximadamente 1,5 GiB e o segundo apenas 50 MiB.

A grande vantagem de usar a instalação mínima é que ela permite aos usuários mais avançados, instalarem apenas o que desejam — como se construíssem, a partir de uma base bem simples, uma distro Ubuntu sob medida para si.
Algumas pessoas, após a instalação da distro completa, tomam um tempo para remover tudo o que não precisam.
O minimal oferece a abordagem contrária: você começa com “quase nada” e vai instalando o que precisa/deseja.
Neste texto, vou mostrar que o procedimento pode ser adotado por qualquer usuário — inclusive os iniciantes.
O processo de baixar o arquivo ISO, gravá-lo em um pendrive e, finalmente, instalar a distro tende a ser rápido.
ubuntu minimal cd package selection

Como configurar o Ubuntu minimal, depois da instalação

A recomendação geral é que se verifique se o sistema está atualizado e sincronizado com os repositórios, logo após a instalação:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get clean

A brincadeira começa neste ponto — somente com os utilitários de sistema padrão (veja imagem acima) e nada mais.
O objetivo não é reconstituir uma distro tradicional Ubuntu, mas obter uma versão final enxuta e rápida — contendo o mínimo de aplicativos e recursos.
Portanto, siga os passos deste artigo, de acordo com o que você achar conveniente.
Pule a parte em que abordamos a instalação de uma interface gráfica, se você não precisa deste recurso, por exemplo.

Execute o tasksel para selecionar o que será removido ou instalado

O aplicativo tasksel não está presente na instalação padrão do Ubuntu, mas se encontra disponível na instalação Minimal.
A partir dele é possível escolher, por grupos de pacotes, o que você deseja instalar no sistema.
Leia mais sobre o procedimento neste post.
Para quem está focado em obter um resultado o mais enxuto possível, o tasksel talvez não seja a melhor solução — já que ele vai instalar muito software que você provavelmente não irá usar.

Instale aplicativos de performance

Qualquer performance a mais será bem vinda.
Alguns aplicativos podem ajudar a melhorar a eficiência no uso dos recursos do sistema. Veja alguns:

  1. preload
  2. ureadahead
  3. zram

Os dois primeiros atuam na “predição” de quais binários serão executados pelo usuário e tentam carregá-los antecipadamente. O último faz a compressão do conteúdo da memória RAM, o que ajuda a diminuir a pressão sobre o cache e sobre o swap (leia mais sobre isto, aqui).
Se quiser saber mais sobre o zswap, o assunto foi abordado aqui.
Se quiser ver quanta memória está sendo usada e quanta está livre, use o comando free, na linha de comando:

free -hm

memory free
Posso dizer que, baseado na figura acima, minha instalação Ubuntu 16.04 LTS Xenial Xerus, só está ocupando 15 MiB de memória física. É um bom resultado.
Se quiser saber, neste momento, quanto espaço está sendo ocupado por sua distro, use o comando:

sudo du -h /

… e para saber quanto espaço livre há:

sudo df -h /

Como instalar o ambiente gráfico

Se houver necessidade de um ambiente gráfico para rodar alguns programas importantes, mas gostaria de ainda manter o sistema “magro”, há opções que ajudam neste sentido.
Lembra do tasksel?
É possível selecionar todo o ambiente gráfico a partir dele.
Na minha instalação, estão disponíveis os seguintes ambientes gráficos, incluindo os gerenciadores de display (display managers), responsáveis pela autenticação:

  1. Lubuntu Desktop — que vai instalar o LXDM, como display manager e o LXDE como Desktop Manager.
  2. Lubuntu minimal installation — que converte a instalação Ubuntu atual para uma instalação Lubuntu Minimal.
  3. etc.

Se você acredita que alguma destas opções é adequada para a sua situação, vá em frente.
Eu vou abordar um outro procedimento, neste post, para instalar um ambiente gráfico mínimo.
Neste passo a passo, vou suprimir a instalação de um display manager. Apenas o ambiente desktop será instalado.
Desta forma, sempre que você iniciar o computador, ele virá para tela em modo texto e iniciará o modo gráfico apenas quando você executar um comando para isto.
Instale o ambiente gráfico base, o X:

sudo apt-get install xorg

Depois disto, já será possível iniciar o ambiente gráfico com o comando startx:

startx

Mas isto não é o suficiente ainda.
Você precisa de um gerenciador do desktop gráfico ou um window manager.
A quantidade de opções, neste quesito é grande. Sugiro pesquisar na Internet, antes de decidir.
O Fvwm-Crystal, o IceWM e o LXDE são destaque em gerenciadores atuais, com visual moderno, leves e não são carentes de recursos.
O gerenciador de janelas i3 é uma opção leve, moderna e eficiente — mas pode exigir um esforço maior de adaptação.
Para instalar o primeiro, rode o apt-get (ou o apt):

sudo apt-get install fvwm-crystal

Se quiser removê-lo, mais tarde, use os seguintes comandos:

sudo apt-get purge fvwm-crystal
sudo autoremove

Use o mesmo procedimento para instalar ou remover os outros gerenciadores.
Se você está acostumado com as funções da interface gráfica do Ubuntu tradicional, pode precisar de um tempo para estudar e aprender a fazer as coisas na nova interface.

Se, por um lado, o visual ficar semelhante ao dos anos 90, também será parecido com o que se vẽ em “filmes de hackers”.
Além disto, é mais configurável que o próprio Unity.

A opção pela instalação do display manager xdm pode prover um login gráfico extremamente leve, se você prefere usar predominantemente a interface gráfica no seu recém instalado sistema.

sudo apt-get install xdm

Quando o sistema for reiniciado, o xdm irá assumir antes da autenticação.
Daqui para frente, comece a instalar o que você precisa no seu sistema — de preferência, buscando alternativas mais leves
fvwm on Ubuntu 16.04

Referências

https://help.ubuntu.com/community/Installation/LowMemorySystems.
https://elias.praciano.com/2015/11/como-instalar-o-linux-em-um-pendrive-com-o-comando-dd/.
https://help.ubuntu.com/community/Installation/LowMemorySystems.

Ubuntu para computadores antigos e com poucos recursos – parte 2

Neste texto vou dar algumas dicas de instalação e configuração do Lubuntu (que podem ser aplicadas a outras distro relacionadas também), no sentido de adequá-lo ainda mais a situações de hardware com recursos (muito) limitados.
Não dá para fazer milagres. O objetivo é apenas melhorar a situação e trazer melhores condições de usabilidade à sua máquina.
Recomendo fortemente ler a primeira parte deste artigo, onde a distro Lubuntu GNU/Linux é apresentada e são mostradas algumas boas razões para usá-la tanto em máquinas antigas como nas atuais com hardware parrudo. O texto ainda explica em que casos o Lubuntu não vai ter serventia para você.
Se quiser se aprofundar um pouco mais em algum assunto, clique nos links dentro do texto ou ao final, nas referências.
Neste post, vou focar a instalação e a configuração do Lubuntu 16.04 LTS Xenial Xerus. O objetivo é tornar possível o seu uso em um netbook, com procesador Intel Atom N270, 1,60 GHz e 1 GiB de memória RAM.
As dicas podem ser adequadas a outras distribuições GNU/Linux.
É desejável que você já tenha alguma experiência prévia com a instalação do Ubuntu.

Onde fazer o download do Lubuntu

A distro pode ser baixada do site oficial, na sua versão integral, pronta para ser gravada em um pendrive ou em um CD.
Neste mesmo site, é possível encontrar a versão Alternate, que faz a instalação do sistema operacional em modo texto — que pode ser mais adequada para o tipo de máquina que estamos focalizando aqui.
Não se preocupe. Ao final, a instalação Alternate entrega um ambiente gráfico para você (se tudo correr bem). É só a instalação que corre no modo texto.
O Ubuntu alternate CD vai oferecer também a opção de instalar apenas a versão CLI (Command Line Interface) ou Interface de Linha de Comando, tal como você poderia obter através do Lubuntu Alternate e Ubuntu Minimal.

Como instalar o Ubuntu em linha de comando

O foco deste post é uma instalação Ubuntu (ou Xubuntu, Lubuntu etc) em linha de comando, ou CLI — a partir da imagem Alternate.
Vamos abordar as possibilidades de remoção de módulos e da interface gráfica padrão, entre outras ações para tornar a distro mais leve.
ubuntu install cli
Para instalar o Ubuntu em modo CLI, tecle F4 na tela preliminar da instalação e selecione Instalar um sistema de linha de comando.
Siga em frente, com atenção — nem todos os diálogos estão traduzidos para português.
Se você pretende particionar o disco principal da nova instalação, sugiro ler este texto sobre o swap, onde há uma tabela com as recomendações sobre o tamanho ideal da partição de swap para o seu hardware.

Configurações pós-instalação do Lubuntu

Uma vez instalado o novo sistema, vamos ver o que pode ser feito para ajudar a torná-lo mais leve.
Veja algumas medidas que você pode adotar no console:

  1. A documentação oficial da Canonical recomenda, nestes casos, inscrever alguns módulos do sistema na “lista negra” ou blacklist.
    Por exemplo, para não carregar o módulo do sistema de arquivos ‘reiserfs’, acrescente a seguinte linha ao arquivo ‘/etc/modprobe.d/blacklist.conf’:

    blacklist     reiserfs

    Descobrir quais módulos (dentre os que estão carregados) que você não precisa, pode ser um “trabalho de formiguinha”.
    Para obter a lista de módulos carregados atualmente no seu sistema, use o comando lsmod.
    Via de regra, o Linux só carrega o que é necessário. Portanto, se não tiver certeza, não mexa.

  2. Se você não usa o recurso de hibernação, desabilite-o, comentando o conteúdo do arquivo ‘/etc/initramfs-tools/conf.d/resume’. Em seguida execute o comando:
    sudo update-initramfs -u

    Se preferir, você pode apenas alterar o nome do arquivo.
    A documentação oficial diz que você pode até removê-lo, mas acho isto muito agressivo (vai que você muda de idéia depois).

  3. Se você não está usando um notebook, remova os acpi e acpid:
    sudo apt remove acpi acpid
  4. Descubra quais pacotes de idiomas (language) estão instalados no seu sistema e remova os que não são necessários.
    No exemplo, abaixo, apenas os pacotes em Português se encontram instalados:

    sudo apt search language-pack | grep -i installed
    [sudo] password for justincase: 
    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
    
    language-pack-gnome-pt/xenial,xenial,now 1:16.04+20160415 all [installed]
    language-pack-gnome-pt-base/xenial,xenial,now 1:16.04+20160415 all [installed,automatic]
    language-pack-pt/xenial,xenial,now 1:16.04+20160415 all [installed,automatic]
    language-pack-pt-base/xenial,xenial,now 1:16.04+20160415 all [installed,automatic]
    

Use o tasksel para remover o ambiente gráfico

Ao instalar a versão alternate ou minimal do Lubuntu, você dispõe do aplicativo tasksel — a partir do qual, é possível selecionar para remoção/instalação de sets ou conjuntos inteiros de pacotes de softwares.
Se você não pretende usar algum ambiente gráfico, pode desmarcar e clicar em OK.
No exemplo (imagem abaixo), desmarquei o Lubuntu Desktop.
tasksel in Lubuntu
Para voltar atrás, rode de novo o tasksel, selecione novamente o item desinstalado e clique em OK.
Se o tasksel não estiver disponível, é possível instalá-lo:

sudo apt install tasksel

Referências

https://elias.praciano.com/2016/05/ubuntu-para-computadores-antigos-e-com-poucos-recursos
http://cdimage.ubuntu.com/lubuntu/releases/
https://help.ubuntu.com/community/Installation/MinimalCD

Como reproduzir sons a partir de arquivos com aplay

O aplay é um programa que reproduz sons via linha de comando no driver ALSA da placa de áudio.
Ele suporta vários formatos de arquivos e vários modelos de hardware com múltiplos dispositivos.
Em tese, é possível também enviar qualquer saída de texto pro aplay.
alto falante reproduzindo som
Neste texto, vou mostrar como usar o aplay para enviar o resultado da sua linha de comando para a placa de som do sistema — isto pode ser útil, em alguns casos, para criar avisos ou alarmes — muito embora o nosso objetivo, neste post, seja, mesmo, a diversão. 😉

Se você tem interesse em reproduzir suas músicas MP3 na linha de comando, visite esta seção.

A melhor forma de aprender é através de exemplos, que você pode alterar para ver outros resultados. Experimente.
Envie a atividade atual do kernel pro seu dispositivo de áudio:

sudo cat /proc/kcore | aplay
Playing raw data 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono

“Ouça” a saída do comando tcpdump pra sua placa de rede wireless:

sudo tcpdump -i wlan0 | aplay

Quanto maior a quantidade de dados envolvida, maior o tempo de reprodução.
Você pode interromper a execução do comando a qualquer momento com Ctrl + C.
Experimente enviar a listagem do seu diretório…

ls -R ~/ | aplay

Acima, a opção -R pede para que a listagem seja recursiva.
Experimente com outros comandos Linux.
O site TechFreaks, sugeriu a seguinte brincadeira, com o arquivo /dev/urandom, que exibe uma saída aleatória:

cat /dev/urandom > temp.wav  &”  sleep 1  ; pkill -9 cat ; aplay temp.wav

Na linha de comando acima, o conteúdo de /dev/urandom> é gravado no arquivo temp.wav. O processo é abortado com o comando pkill e, em seguida, o aplay é chamado para reproduzir o conteúdo de temp.wav.

Use o perl para produzir notas musicais

O exemplo, a seguir, usa código da linguagem de programação Perl, para produzir algumas notas musicais em conjunto com o programa aplay.
Entre as alterações que você pode fazer, tente alterar o texto e o valor de x:

perl -e '@w = split / /, "O homem nasceu para aprender, aprender tanto quanto a vida lhe permita."; print "$_\n"x1000 foreach @w;' | aplay 

A frase é de João Guimarães Rosa, caso você esteja curioso(a). 😉
Como você pode ver, o script produz uma nota para cada palavra.
Divirta-se! 😉
Referências: http://www.linux.com/learn/tutorials/790121-assorted-fun-linux-command-line-hacks-
http://techfreaks4u.com/blog/posts/geekist-things-i-ever-did-in-linux/