Como pedir a Richard Stallman para analisar o seu Linux.

O vrms é um pequeno utilitário, para a CLI, que faz uma análise do conjunto de pacotes, presentes no seu computador, que faz um relatório dos pacotes componentes instalados das árvores contrib e non-free.

Chamado vrms — Virtual Richard Matthew Stallman (RMS) — em alusão ao nome do fundador do Movimento pelo Software Livre , verifica se você está usando apenas softwares 100% livres e avisa quando houver algo destoando.

De acordo com a auto-descrição do pacote, “em alguns casos, as opiniões de Stallman divergiram das do projeto Debian”.
Nestes casos, a comunidade Debian segue as diretrizes do Debian Free Software Guidelines ou Contrato Social Debian.

O aplicativo vrms não se limita a sistemas Debian e nem ao Linux.
Pode ser executado em qualquer sistema operacional.
Apenas, neste texto, estou me baseando no Debian.

Há previsão para, futuramente, permitir ao vrms exibir textos do RMS, mostrando porque o uso de cada pacote non-free pode causar problemas morais a membros da comunidade do Software Livre.

Use o apt, para instalar:


sudo apt install vrms

Após a instalação, ele pode rodar sob privilégios normais. Veja os meus resultados:


vrms

    Non-free packages installed on ultra

firmware-iwlwifi                    Binary firmware for Intel Wireless cards
firmware-realtek                    Binary firmware for Realtek wired/wifi/BT adapters

    Non-free packages with status other than installed on ultra

tome                                ( dei)  single-player text-based roguelike dungeon sim

    Contrib packages with status other than installed on ultra

spectemu-common                     ( dei)  Fast 48k ZX Spectrum Emulator (common files)

  3 non-free packages, 0.1% of 2067 installed packages.
  1 contrib packages, 0.0% of 2067 installed packages.

Aonde eu me surpreendi:

  • Pra começar, achava que iria ter mais softwares não livres no meu sistema (por que instalo, realmente, muita coisa).
    Enfim, foram apenas 3.
  • Os firmwares, “pra variar”, não surpreendem ninguém… Mas vejo que só preciso de um deles e, portanto, o outro vai sair voando pela janela, claro.
  • O jogo tome, também é uma surpresa que não seja 100% livre. Ao passo que o emulador do Spectrum ZX, em função de algumas ROMs, não me surpreende por se encontrar neste “estado deplorável” de não ser completamente livre.

Você não é obrigado a desinstalar nada do seu sistema.
O utilitário apenas fornece um feedback, para satisfazer a curiosidade do usuário.
É claro que acaba por ser muito útil a quem gostaria de remover o máximo de softwares não livres de seu sistema e, o que é melhor ainda, questionar os desenvolvedores ou as empresas responsáveis pelo código que não se encaixa nestas condições.

Me conta quais foram os seus resultados e o que pretende fazer em relação a eles. 😉

No meu caso, deixei apenas os firmwares proprietários instalados. Fiquei com um resultado de 99.9% de softwares livres instalados no meu sistema.
Mas, com a colaboração da Intel e da Realtek, poderia ser 100%! 😉

Qual é a distribuição Linux que tem mais pacotes em seus repositórios oficiais?

A resposta curta é: OpenSUSE, na data deste post!
No decorrer deste texto vou mostrar como obter suas próprias respostas e, com certeza, mais atualizadas.
No momento em que escrevo, a distro “do camaleão” é a que tem a maior quantidade de softwares disponíveis para a instalação — se você a sincronizar com todos os seus possíveis repositórios.
Por anos, a Debian foi a distro conhecida por ter a maior quantidade de pacotes em seus repositórios. Mas estas coisas mudam com mais frequência que a gente imagina.
Portanto, se quiser saber qual a distro Linux com mais aplicativos disponíveis, vai ter que fazer uma contagem.

Há alguma maneira “racional” de contar quantos pacotes de aplicativos estão disponíveis para uma distro?

Como contar os programas disponíveis em uma distribuição Linux

Esta pergunta pode ser respondida em 2 fases:

  1. primeiro você obtém a lista e
  2. depois, se estiver em formato texto simples, com um pacote relacionado a cada linha, basta contar as linhas da lista.

Não é difícil encontrar as listas de pacotes disponíveis para as distribuições, mas precisamos prestar atenção a algumas variáveis que as influenciam:

  • Versões alfa do sistema operacional podem ter uma lista num dia e outra em outro — softwares entram e saem todos os dias nesta fase de uma distribuição.
  • Diferentes plataformas demandam softwares específicos às vezes. Portanto a lista do Arch Linux para a plataforma ARM é uma e a lista do mesmo sistema operacional para a plataforma PC 64 bit é outra.

É difícil fazer comparações objetivas entre uma distro e outra, por que precisamos levar estes e outros fatores em conta.

A lista de softwares disponíveis para uma distro vai muito além dos repositórios oficiais. Elas aumentam significativamente, ao acrescentar outros repositórios, backports, PPAs etc.

Onde encontrar a relação de softwares do Ubuntu

A relação atual de softwares disponíveis, da distribuição Ubuntu que se encontra instalada no seu computador, depende dos repositórios incluídos no arquivo de configuração /etc/apt/sources.list.
Para obter a relação use os seguintes comandos:


sudo apt update
apt list | wc -l

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

69323

O resultado, acima, se refere à minha máquina Ubuntu 16.04 Xenial Xerus, com a minha configuração atual do sources.list.
O comando responde à pergunta sobre a quantidade de softwares disponível para a instalação local e atual do Ubuntu.
É importante dizer que a lista inclui 6 linhas de cabeçalho — que precisam ser excluídas da conta, para obter um resultado exato.


E se eu não tiver o Ubuntu instalado? E se eu quiser obter o número e a relação para uma versão diferente da que tenho instalada?
Quando a lista que você deseja não está presente no seu sistema, o jeito é buscar a informação online.
A lista de pacotes disponíveis para Ubuntu pode ser encontrada a partir do site http://packages.ubuntu.com/.
site com lista de versões do Ubuntu
O site permite escolher exatamente qual distro/versão ou repositório a ser pesquisado.
Para este artigo, vou escolher a relação allpackages do Ubuntu 16.04 LTS Xenial Xerus.
Se você quiser, pode acessar a lista aqui: http://packages.ubuntu.com/xenial/allpackages?format=txt.gz.
O cabeçalho da lista tem informações importantes, como a data em que ela foi gerada — que ajuda a estabelecer se é atual.
Eu preferi baixar o arquivo compactado com o wget.
Depois de baixado, descompactei o arquivo e alterei o nome (apenas por comodidade). Veja os meus procedimentos:


wget http://packages.ubuntu.com/xenial/allpackages?format=txt.gz

gunzip allpackages?format=txt.gz

mv allpackages\?format\=txt xenial64bit-desktop.txt 

Se quiser “passear” dentro do arquivo, use o comando less:


less xenial64bit-desktop.txt

Como você pode ver, cada programa ocupa uma única linha. Basta determinar quantas linhas há no arquivo (subtraídas as 6 linhas do cabeçalho), para obter a minha resposta. Para isto, use o comando wc:

wc -l xenial64bit-desktop-allpackages.txt

69323 xenial64bit-desktop-allpackages.txt

A resposta, neste caso, é 69.317 pacotes de software no Ubuntu 16.04 LTS Desktop 64 bit — já descontadas aquelas linhas iniciais.

Como obter a relação de pacotes do Arch Linux

A lista oficial pode ser encontrada fácil no site da distribuição.
arch linux lista de pacotes do repositório
Por sorte, o site tem um contador, do lado esquerdo superior à relação.
Você encontra a informação atualizada neste link: https://aur.archlinux.org/packages/?O=0&SeB=nd&K=&SB=n&SO=a&do_Search=Go.

Como determinar a quantidade de pacotes do Debian

O procedimento para obter esta informação do Debian é semelhante ao Ubuntu.
Se você usa Debian, pode ir para o terminal e obter o número de pacotes disponíveis para instalação, de acordo com a configuração do sources.list.
No meu sistema Debian 9 Stretch, obtive o seguinte resultado:

apt list | wc -l

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

51750

Os sites contendo as relações de pacotes são https://packages.debian.org/testing/allpackages?format=txt.gz (testing) e https://packages.debian.org/stable/allpackages?format=txt.gz (stable).
Você pode salvar o conteúdo desta página, direto do seu navegador, com CTRL+S (o que te poupa o trabalho de descompactar e renomear o arquivo posteriormente).
Eu salvei a página (do stable) com o nome de Jessie.txt e executei o wc no arquivo:

wc -l jessie.txt 
57286 jessie.txt

De forma que a nossa resposta é: 57.280 pacotes — descontadas as 6 linhas do cabeçalho.
Para a lista online do Stretch, obtive o resultado seguinte:

wc -l stretch.txt 
68675 stretch.txt

… o que dá 68.669 pacotes.

Por curiosidade, fui verificar também a quantidade atual de pacotes no Sid ou unstable:

wc -l sid.txt 
103440 sid.txt

O número é expressivo mas, sabemos que nada é definitivo no unstable.

Quantos pacotes de software estão presentes no Trisquel Linux

Derivado direto do Debian, podemos usar um método semelhante para obter esta informação.
A página com a relação de pacotes do Belenos é esta: http://packages.trisquel.info/belenos/allpackages?format=txt.gz.

wc -l belenos.txt 
52753 belenos.txt

Como resultado, obtive, então 52.747 pacotes, nesta versão do Trisquel GNU/Linux.

Quantos pacotes há no Fedora?

O Fedora 26 alpha apresentava uma relação de mais de 57 mil pacotes, como é possível observar nos meus exemplos abaixo. Até o lançamento, o número deve mudar.
Na linha de comando, você pode inquirir os repositórios com o comando yum ou dnf.
fedora 26 alpha running under VirtualBox
Veja como fazer com o comando yum:


yum list | wc -l

57219

Antes de rodar o comando dnf, optei por atualizar/sincronizar o sistema com os repositórios — para obter um número mais atual, claro:


dnf update
dnf list | wc -l

57222

Como determinar a quantidade de pacotes de softwares disponíveis nos repositórios do OpenSUSE

O OpenSUSE permite o uso do yum — mas tem que ser instalado — nos mesmos moldes que já mostrei neste texto.
O ideal é usar o zypper para obter a informação.


zypper packages | wc -c

69367

Conclusão

A quantidade de softwares disponíveis para instalar e usar no seu sistema operacional é um fator de escolha importante para algumas pessoas ou empresas.
A outras, basta que tenha o que precisa ser usado (eu).
Quando temos a tarefa de indicar distribuições para outras pessoas, contudo, pode ser interessante levar em conta este número — principalmente se você não tem certeza sobre como a pessoa vai usar o computador.
Somado a isso, a lista de possibilidades é muito flexível em qualquer distro Linux.
É muito raro um aplicativo estar disponível para uma distro e “ser impossível” de instalar em outras. Se o código fonte estiver disponível, o impossível perde seu significado.
Por fim, a wikipedia tem um tópico comparativo entre as diversas distribuições e que vale a pena consultar sempre. Veja o link abaixo!

Referências

https://en.wikipedia.org/wiki/Comparison_of_Linux_distributions#Package_management_and_installation.

Como o uso dos SNAPS pode beneficiar você

O recurso de empacotamento de aplicativos em conjunto com toda a sua necessária biblioteca, pela Canonical, para uso (inicialmente) no Ubuntu 16.04 LTS se espalhou e se generalizou entre as várias outras distribuições Linux.
Qualquer que seja a sua distro GNU/Linux, desde que seja atual, é possível instalar aplicativos diversos através dos snaps.
laptop and coffee
Ao final do texto, há links para outros posts sobre o uso de snaps em diversas distribuições Linux. Lembre-se de dar uma olhada.
Clique também nos links, no corpo do texto, para se aprofundar mais sobre algum assunto abordado.


O que é um snap?

Um snap é um arquivo zip contendo uma aplicação junto com suas dependências.
O pacote inclui uma descrição de como rodar a aplicação em segurança no seu sistema. A descrição é voltada para o sistema operacional e outros softwares do sistema.
Os pacotes snap são projetados para oferecer mais segurança e isolamento aos programas em relação à estrutura do sistema e à outros programas.
Os snaps permitem uma instalação segura de qualquer software, de qualquer fornecedor e são opções pensadas para dispositivos de missão crítica, por exemplo.
A iniciativa da Canonical, hoje conta com a colaboração de inúmeros desenvolvedores, independente das distribuições que usem — formando uma comunidade em torno do Snapcraft.io.
O trabalho caminha no sentido de prover um mecanismo único para publicar softwares em qualquer ambiente Linux.
Importantes empresas de hardware também estão envolvidas, o que inclui a Dell, Samsung, a System76 etc.

Snaps tem o propósito de funcionar em qualquer lugar, em qualquer distro, em qualquer dispositivo.
São fáceis de instalar e de criar. Além disto, usam recursos de sandboxing que dão mais segurança à sua execução.

Pacotes snaps são complementares aos atuais sistemas de gestão de pacotes

Os atuais sistemas de gestão de pacotes (deb, rpm, yast, pacman, yum, dnf etc.) permitem instalar conjuntos complexos de pacotes de softwares, ocupando o mínimo de espaço e completamente adaptados ao seu sistema.
É inegável que evoluíram, no ambiente Linux, no decorrer dos anos e se encontram a anos-luz de distância dos métodos de instalação de um outro sistema operacional muito popular.
Infelizmente, não podem fazer tudo.
O snaps acrescentam, entre outras coisas, o sandboxing, que é a possibilidade de rodar um programa e toda a sua biblioteca “em separado”. Se algo der errado, o programa pode cair, mas o sistema permanece em pé e intacto.
Para os desenvolvedores, os snaps oferecem conforto e comodidade: empacota uma vez; instala e roda em qualquer distro.

O ecossistema de aplicativos serve a todos

O Ubuntu é uma distro muito popular. Ela se beneficia das dezenas de milhares de opções de softwares que já estão disponíveis para a distro Debian.
Nenhuma outra distribuição Linux tem tantos softwares em seus repositórios.
Com os snaps, todos, independente de distribuição podem baixar e instalar os mesmos pacotes de softwares. Tudo o que se precisa ter é suporte ao snapd.
Ao abandonar o Mir e o Unity, a Canonical está se dedicando a portar o snapd para mais e mais distribuições Linux e aperfeiçoar seu funcionamento dentro do Ubuntu.
Os snaps irão reduzir ainda mais as atuais diferenças entre as distribuições Linux.

Repositório comum: GitHub

O time de desenvolvimento do projeto snapcore, inclui desenvolvedores com ampla gama de interesses, do IoT à infraestrutura de nuvens – dos dispositivos móveis às aplicações desktop.
Os pacotes snap são criados facilmente, por desenvolvedores, com a ferramenta snapcraft.
O Github é o repositório onde os snaps são armazenados e disponibilizados para os usuários.
Os snaps podem ser montados ou construídos a partir de pacotes de distribuições, mas são mais comumente encontrados em código fonte — o que permite mais eficiência de tamanho e otimização de recursos.

Referências

Suporte ao snap no Ubuntu.
Adicione suporte ao snap no Fedora.
Tenha suporte ao snap no OpenSUSE.
https://snapcraft.io.

Aprenda a encontrar, instalar e remover pacotes SNAP, no Ubuntu.

A partir da versão 16.04, o Ubuntu passou a suportar um novo método de instalação — que complementa o apt.
Neste texto, vou mostrar alguns comandos simples, que podem ajudar você a usufruir melhor do sistema com o Snap.

Como encontrar aplicativos disponíveis pelo snap

Em analogia ao apt, o snap também permite pesquisar dentro dos repositórios, para “achar” o que você precisa.
Use o “find” para isso:

snap find music

No exemplo, acima, fiz a pesquisa pela palavra “music”. Veja o meu resultado:

Name                    Version      Developer     Notes    Summary
noson                   2.3.6-SNAP1  janbar        -        The essential to control music from your SONOS devices
deadbeef-vs             0.7.2-snap2  vs            -        The Ultimate Music Player
audovia                 3.4.1        songbuilder   -        Database application for making music using JFugue MusicStrings
gmusic                  0.5.0-1      matt-goodall  -        A collection of tools to manage your Google Play Music.
ktube-media-downloader  1            keshavnrj     classic  Browser, Download, Play Media from Youtube and other Sites
spotifywebplayer        1.0.35       quacky2200    -        Spotify Web Player for Linux
functy                  0.38         flypig        -        3D graph drawing with vivid and immediate results
vlc                     daily        videolan      -        The ultimate media player
filebot                 4.7.7        pointplanck   -        The ultimate TV and Movie Renamer / Subtitle Downloader

Na primeira coluna da lista, vem o nome do software relacionado ao termo da sua busca.
Na segunda coluna, o Snap lista a versão de cada item. Note que a versão do VLC é daily, o que significa que se trata de uma versão em desenvolvimento e, portanto, não estável.
A terceira coluna relaciona os desenvolvedores de cada projeto.
As 2 últimas colunas fornecem informações mais detalhadas de cada pacote de software.
Você também pode filtrar as informações do Snap com o comando grep:

snap find music | grep player
spotifywebplayer        1.0.35       quacky2200    -        Spotify Web Player for Linux
vlc                     daily        videolan      -        The ultimate media player

Como obter informações sobre pacote Snap

Use a opção “info”, para isto.
Veja um exemplo:

snap info vlc 

… e veja os detalhes do pacote:

name:      vlc
summary:   "The ultimate media player"
publisher: videolan
description: |
  VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
  DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
  podcasts, and multimedia streams from various network sources.
  
commands:
  - vlc
tracking:    stable
installed:   daily (4) 120MB -
refreshed:   2017-01-19 23:14:08 -0300 BRT
channels:              
  stable:    daily (4) 120MB -
  candidate: daily (4) 120MB -
  beta:      daily (4) 120MB -
  edge:      daily (4) 120MB -

Novamente, você pode usar o comando grep para filtrar informações — como, por exemplo, a última vez em que o pacote foi atualizado:

snap info vlc | grep -i refresh


refreshed:   2017-01-19 23:14:08 -0300 BRT

Como instalar pacotes via Snap

Se você instalava pacotes via apt, vai achar esta fácil:

sudo snap install vlc

Como exibir os pacote que foram instalados via Snap

Quando quiser ver a relação de pacotes de software instalados no seu sistema, que chegaram através do Snap, use a opção “list”:

snap list
Name          Version              Rev   Developer        Notes
anatine       1.1.0-5-g2911f4d-X+  16    claudioandre-br  -
telegram-cli  1.4.1                1     caldav           -
ubuntu-core   16.04.1              1411  canonical        -
vlc           daily                4     videolan         -

Como atualizar um pacote individual

Use a opção “refresh” para buscar atualizações disponíveis para os seus pacotes:

sudo snap refresh telegram-cli 

Como remover programas instalados via Snap

Use a opção “remove”:

sudo snap remove vlc

Após a remoção, o Snap exibirá a mensagem (no meu caso, em inglês):

vlc removed

Como instalar a ferramenta de gestão de pacotes Python, PIP

O pip é um sistema usado para instalar e gerenciar especificamente pacotes de softwares desenvolvidos em Python.
Além dos milhares de pacotes disponíveis no repositório oficial da sua distro favorita, você pode encontrar um número crescente de pacotes dentro do PyPI, ou Python Package Index.

Você usa o pip para instalar aplicações escritas para a série Python2 (Python 2.7.9 em diante) o pip3 para instalar as que foram projetadas para usar os recursos mais avançados do Python 3.4 em diante.
python logo
Leia também o nosso Guia de uso do pip.

Como instalar o pip no Linux

Se você já tem o Python, versão 2.7 ou 3.4 instalado, o pip já pode estar presente no seu sistema — se você baixou e instalou uma destas versões do Python a partir do python.org, então está.
— Neste caso, pule para o tópico da atualização, mais embaixo.
Caso contrário, faça o download do instalador:
https://bootstrap.pypa.io/get-pip.py.
Se preferir, faça o download com o wget, a partir do terminal:

wget https://bootstrap.pypa.io/get-pip.py

Em seguida, execute o instalador, invocando o interpretador Python (com privilégios administrativos):

python get-pip.py

Adicionalmente, você pode instalar a versão Python3 do pip, assim:

python3 get-pip.py 

Caso você faça a instalação adicional da versão python3, o pip padrão do seu sistema irá rodar nesta versão.
Novamente, não esqueça de usar privilégios administrativos para executar os comandos de instalação/update.
No meu sistema, foram baixadas e instaladas as seguintes versões do pip:

ls -1 /usr/local/bin/pip*
/usr/local/bin/pip
/usr/local/bin/pip2
/usr/local/bin/pip2.7
/usr/local/bin/pip3
/usr/local/bin/pip3.5

Para não fazer confusão, digite o nome do pip e versão específica que deseja executar. Por exemplo:

  • use pip2, para instalar aplicações desenvolvidas para Python2
  • use pip3, para instalar aplicações desenvolvidas para Python3

Ou use a versão padrão apenas.
Use a opção ‘–version’ para saber exatamente do que se trata:

pip --version
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages
 (python 3.5)

Como atualizar o pip

Uma vez instalado, você precisa se certificar de que está usando a versão mais recente do instalador.
Para isto, faça a atualização na linha de comando:

pip install -U pip

Para saber mais, leia também o Guia de uso do pip.