A melhor distro Linux para desenvolvedores

No universo das dezenas de distribuições importantes, algumas delas são melhores ou piores para determinados tipos de aplicação.
Algumas distribuições GNU/Linux são especificamente organizadas para realizar determinados tipos de tarefa ou a atender um nicho profissional.

E os desenvolvedores, como nicho ou como público, devem usar qual distribuição?
No universo GNU/Linux distribuições “de nicho” são chamadas branches ou blends — para trabalhar com multimídia, para clínicas médicas, para ambiente educacional etc.

Este é apenas mais um dos meus artigos opinativos, que evito fazer…
A melhor opinião continua sendo a sua.
Cabe a você julgar o que lhe serve, ou não, dentro deste texto.

Deixe um comentário, logo abaixo, se quiser.

ubuntu flavours sabores

Os programadores são um público à parte.
Os desenvolvedores Debian tendem a usar o Debian Sid, O mesmo ocorre com os desenvolvedores das outras distros.

Isto é ‘meio’ óbvio, eu sei… se você tem intenção de se tornar um(a) desenvolvedor(a) OpenSUSE, vai ter que usar a versão em desenvolvimento específica desta distro.

Quem tem intenção de desenvolver para internet das coisas (IoT), pode usar distribuições específicas para a plataforma desejada, como o Raspbian ou Ubuntu Core para a plataforma Raspberry.

Para todas os outros tipos de desenvolvedores(as), na prática, qualquer distro serve.

Red Hat, CentOS e Fedora

A Red Hat, tem investido bastante na comunidade de desenvolvedores e tem disponibilizado uma versão do Red Hat Enterprise Linux (RHEL) pra download em seu site — voltado justamente para este público.

Para saber mais, leia como se tornar desenvolvedor(a) Red Hat.

Debian e Ubuntu

As duas distribuições são muito amigáveis com os(as) desenvolvedores(as) — mesmo os(as) que não programam diretamente para a distro.
Você pode “pegar” a versão principal da distribuição e transformá-la em uma plataforma de desenvolvimento completa, apenas instalando aplicações de programação específicas, por exemplo.

O assunto também foi abordado em 3 editores de código para Debian e Ubuntu e no post Ferramentas de programação para Debian e Ubuntu

OpenSuse

O OpenSUSE tem uma longa história (e vários artigos neste site) na linha do tempo do Linux. É uma plataforma GNU/Linux séria e, se você se sente confortável com o seu look and feel, não há razão para deixar de considerá-la para projetos de desenvolvimento de aplicativos.
No post Instalar um servidor LAMP no OpenSUSE, pode ser dado o primeiro passo para o desenvolvimento de aplicações web, por exemplo.
Além disto, todas as IDEs que você encontra nas outras distribuições, vai encontrar aqui também.

Conclusão

Este post, como a maioria das minhas análises opinativas, vai terminar sem dar uma resposta pronta para o questionamento do título. Sorry.

O ambiente Linux, de maneira geral, é muito fértil e aconchegante para trabalhar com desenvolvimento de software.
Você pode escolher qualquer distro (me conte qual! 😉 ) e vai encontrar tudo o que precisa para tocar os seus projetos — até mesmo para plataformas proprietárias.
Tudo o que você precisa é encontrar e juntar as ferramentas certas.

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.

Instale e configura o suporte a SNAP no OpenSUSE

Até a versão 42.2 ou Tumbleweed, o OpenSUSE não tem suporte nativo ao Snappy, mas ele pode ser instalado facilmente, com um procedimento de 3 passos.
Tudo o que você precisa é adicionar o repositório da comunidade de desenvolvedores SNAP e fazer a instalação normal, como qualquer outro pacote de software.
Se você usa o openSUSE 42.2, adicione o seguinte repositório:

sudo zypper addrepo http://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_42.2/ snappy

Se você usa o Tumbleweed, o nome do repositório é ligeiramente diferente. Observe:

sudo zypper addrepo http://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed/ snappy

opensuse zypper add repository
Agora use o ‘zypper refresh’:

sudo zypper refresh

e, por fim, instale o snapd:

sudo zypper install snapd

instalar snap no opensuse
Agora configure o systemd no seu sistema, para que ele se encarregue do socket de comunicação (uma vez que esta tarefa ainda não é automática):

sudo systemctl enable --now snapd.socket

Depois disto, você irá precisar se reautenticar (ou reiniciar, se achar mais fácil).


Não esqueça de ler sobre como usar o SNAP, daqui pra frente.

Como instalar um compilador COBOL no Linux

O COBOL está, provavelmente, bem longe de ser uma linguagem de programação extinta.
Nunca fui programador COBOL, mas já tive contato com programas e código-fonte escritos nesta linguagem — que nunca me pareceu difícil de entender e aprender, digo de passagem.
No Linux, qualquer programador de COBOL pode se atendido com compiladores — que podem ser baixados e instalados rapidamente dos repositórios da sua distro favorita.
No Debian (versão 9, aqui!) é possível encontrar pacotes voltados para o COBOL, com o comando ‘apt search’:

apt search cobol

O comando acima, funciona no Ubuntu e em qualquer outra distribuição baseada no Debian.
Usuários do openSUSE, podem usar o zypper:

zypper search cobol

Para instalar o compilador open-cobol, no Debian e Ubuntu, use novamente o apt:

sudo apt install open-cobol

No openSUSE, você pode usar o ‘zypper install’ ou o oneClick install.
Não se preocupe se o nome exibido for GNU-Cobol — este é o novo nome do open-cobol, na verdade.
opensuse oneclick install cobol
Usuários Red Hat ou Fedora podem instalar o pacote com o yum:

yum install open-cobol

Para obter a versão instalada, use o parâmetro ‘–version’:

cobc --version
cobc (OpenCOBOL) 1.1.0
Copyright (C) 2001-2009 Keisuke Nishida / Roger While
Built    Mar 01 2014 13:11:28
Packaged Feb 06 2009 10:30:55 CET

Esta versão pode produzir binários compatíveis com até 6 dialetos da linguagem. Veja como obter a lista de dialetos:

cat cobc.help | grep -i '<dialect>' -A7
  -std=<dialect>        Compile for a specific dialect :
                          cobol2002   Cobol 2002
                          cobol85     Cobol 85
                          ibm         IBM Compatible
                          mvs         MVS Compatible
                          bs2000      BS2000 Compatible
                          mf          Micro Focus Compatible
                          default     When not specified

Se você usa o Fedora, pode achar interessante ler sobre como instalar o ambiente de desenvolvimento GNUCobol ou OpenCobol, na sua distro.

Como instalar o emulador de terminal com visual retrô, cool-retro-term

O aplicativo cool-retro-term é um emulador de terminal, para Linux, projetado para exibir um visual dos anos 80.
Sua aparẽncia imita um antigo monitor de raios catódicos ou CRT, muito comum até quase duas décadas atrás. E foi projetado para ser ajustado e oferecer amplas possibilidades de personalização.
linux on a crt monitor
No Brasil, a tecnologia de monitores CRT prevaleceu até meados dos anos 2000. Ou seja, muita gente ainda vai lembrar como eles eram.
Só que o cool-retro-term, vai um pouco mais longe no passado. O aplicativo, nas suas diversas configurações e perfis de ajuste, pode dar a clara e nítida sensação de estar usando um computador do início dos anos 80.
As telas em fósforo verde ou branco foram as mais comuns em toda a história da computação. As de fósforo ambar, foram moda durante algum tempo, no fim dos anos 80.
A partir dos anos 90, as telas coloridas foram se tornando mais populares — até a chegada dos LCD nos desktops.
Vamos falar mais da personalização do cool-retro-term, de seus variados perfis de monitores e um pouco de nostalgia em outro post.
Aqui, vamos nos concentrar em como instalar (é fácil!) o aplicativo.

Como instalar o cool-retro-term no Ubuntu

No Ubuntu, é possível adicionar uma PPA, para fazer download dos pacotes necessários, para a instalação do programa:

sudo add-apt-repository ppa:noobslab/apps

Alternativamente, vocẽ pode usar este outro repositório:

add-apt-repository ppa:bugs-launchpad-net-falkensweb/cool-retro-term
This PPA Contains Applications for Ubuntu/Linux Mint from different sources but debianized by http://www.NoobsLab.com
More info: https://launchpad.net/~noobslab/+archive/ubuntu/apps
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmpnbvw_acl/secring.gpg' created
gpg: keyring `/tmp/tmpnbvw_acl/pubring.gpg' created
gpg: requesting key F59EAE4D from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpnbvw_acl/trustdb.gpg: trustdb created
gpg: key F59EAE4D: public key "Launchpad PPA for NoobsLab" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

Agora atualize/sincronize os repositórios e faça a instalação:

sudo apt update
sudo apt install cool-retro-term

Para rodar o aplicativo, execute o comando ‘cool-retro-term’.
7-crt-monitors
Não esqueça de conferir este post, para obter detalhes de configuração avançada do terminal retrô.
Se quiser remover, mais tarde, use a seguinte sequencia de comandos:

sudo add-apt-repository remove ppa:noobslab/apps
sudo apt purge cool-retro-term

Como baixar e compilar o código

Se vocẽ prefere, baixar o código fonte e compilar o programa, também é uma opção.
Veja o procedimento:

sudo apt install build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qtdeclarative5-controls-plugin qtdeclarative5-qtquick2-plugin libqt5qml-graphicaleffects qtdeclarative5-dialogs-plugin qtdeclarative5-localstorage-plugin qtdeclarative5-window-plugin
git clone --recursive https://github.com/Swordfish90/cool-retro-term.git
cd cool-retro-term
qmake && make
./cool-retro-term

Como instalar o terminal retrô no openSuse

O jeito mais fácil (me avise, se não der certo!) é o one-click install.
Você pode encontrar a versão mais adequada para você nesta página: https://software.opensuse.org/package/cool-retro-term.
Quem usa o openSuse Leap 42.2, pode usar também este link direto: https://software.opensuse.org/ymp/home:mnhauke/openSUSE_Leap_42.2/cool-retro-term.ymp?base=openSUSE%3ALeap%3A42.2&query=cool-retro-term.

Como instalar no Debian e outras distros

Para Debian, as opções são instalar via git, descrita acima ou baixar e instalar o pacote deb.
O pacote .deb adequado à sua versão, pode ser encontrado e baixado no site https://launchpad.net/~bugs-launchpad-net-falkensweb/+archive/ubuntu/cool-retro-term/+packages.
Já, no Arch Linux, no Antergos e no Manjaro, use o pacman:

sudo pacman -S cool-retro-term

Referências

http://www.noobslab.com/2016/04/cool-retro-term-is-great-mimic-of-old.html.