Use Ubuntu para programar em Python

O sistema operacional GNU/Linux é, na minha humilde opinião, o mais adequado para a programação de computadores.
Neste sentido, qualquer uma das principais grandes distribuições do Linux pode satisfazer plenamente um(a) profissional de desenvolvimento.

Já escrevi sobre qual a melhor distro para programar — clique no link para saber qual a minha opinião sobre o assunto.

Neste post, vou mostrar como preparar o Ubuntu 18.04 LTS Bionic Beaver para desenvolvimento na linguagem de programação Python.
É claro que o Ubuntu, já na instalação mínima, vem com interpretadores, de sobra, para você começar a programar em Python. Mas algumas ferramentas adicionais podem tornar o ambiente ainda melhor para quem já é profissional ou, mesmo, para estudantes.

Python 2 ou Python 3

O Python 2 vem caindo gradualmente em desuso, mas ainda há aplicações importantes do sistema, escritas nesta versão da linguagem.
Por este motivo, softwares (interpretadores, bibliotecas etc.) voltados para as duas versões ainda são encontrados.
Neste texto, vamos nos concentrar na versão 3 da linguagem, contudo.

Você pode verificar quais versões do interpretador Python há no seu Linux, digitando ‘python’ e pressionando a tecla Tab logo em seguida.
As versões disponíveis serão exibidas no terminal.
O comando ls também pode ser usado, para obter esta informação:


ls /usr/bin/python*

/usr/bin/python            /usr/bin/python3
/usr/bin/python2           /usr/bin/python3.6
/usr/bin/python2.7         /usr/bin/python3.6m
/usr/bin/python2.7-config  /usr/bin/python3m
/usr/bin/python2-config    /usr/bin/python-config

interpretadores Python no Ubuntu

Apesar da quantidade “expressiva de pythons”, há apenas 3 versões instaladas no meu sistema (python2, python3 e python 3m). O restante é link simbólico para o programa correspondente.

Use o parâmetro ‘–version’ para saber qual a sua versão padrão:


 python --version

Python 2.7.15rc1

A série 2.x é padrão justamente por causa dos vários scripts do sistema que ainda a usam — e você não deve mudar isto.
Ensinei como contornar a situação, para quem só quer usar a versão 3, neste post.

Instale IDEs gráficas para Python

Basicamente, qualquer uma das grandes IDEs pode ser usada para programar em Python. Se você já tem a sua preferida, pode relaxar e continuar a usá-la.
Se quiser experimentar algo novo, sugiro algumas IDEs feitas pela comunidade de programadores(as) Python, que podem trazer recursos e benefícios interessantes para quem usa esta linguagem predominantemente.

Pressione a tecla Super e procure o “Ubuntu software”, para entrar na loja (interface GUI para os respositórios) do Ubuntu.
instalar software no ubuntu

Dentro da loja faça uma busca (Ctrl + F) por ‘python ide’, para ver as opções específicas que você tem.
Atualmente, no meu sistema, há:

  1. A série de PyCharm, com IDEs voltadas para aplicações comerciais, científicas, educacionais etc. A PyCharm Pro é projetada para profissionais desenvolvedores(as).
  2. A Eric Python IDE, também projetada pelo pessoal que programa em Python. É uma opção leve e ágil. Falei mais dela aqui.
  3. Por fim, Thonny é uma IDE com recursos úteis para quem está estudando a linguagem. Vem com um depurador embutido, capaz de visualizar todos os passos conceituais da execução de um programa Python.

ide para python

Não se prenda a estas opções.
Experimente outras buscas, como ‘ide devel’, para encontrar bem mais opções.

Sugiro a leitura do artigo 5 IDEs para programar no Linux, para obter mais opções de ferramentas para desenvolvimento.

Instale o PIP

O pip (não é picture in picture) é um gerenciador de pacotes e serve para instalar novos softwares, bibliotecas e ferramentas para Python.
No Ubuntu, use o apt para instalar o gerenciador:


sudo apt install python3-pip

Mesmo especificando a versão “3” do Python, na linha de comando (acima), o procedimento ainda instala o pip para a versão 2 da linguagem.
Desta forma, você terá à sua disposição o pip2 e o pip3:

pip2 --version

pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
pip3 --version

pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

Instale o bpython

Isto não é obrigatório.
Estudantes da linguagem podem gostar de usar uma shell com recursos de realce de sintaxe.
ubuntu loja

O aplicativo pode ser encontrado na lojinha do Ubuntu, ou pode ser instalado via linha de comando.

Você tem experiência em programação Python?! Quais aplicativos adicionais sugere para instalação no Ubuntu?

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%! 😉

Como ajudar os desenvolvedores do GIMP a fazer um trabalho cada vez melhor, para você.

Há várias formas de oferecer de volta ou agradecer pelo que recebemos, de boa vontade, dos desenvolvedores de software livre.
Criar tutoriais (em vídeo ou texto), evangelizar ou doar dinheiro a projetos que são importantes e úteis para você, são algumas das formas de ajudar a mantê-los cada vez mais fortes.

Quem tem conhecimento de programação, pode contribuir com código novo ou ajudar a corrigir erros de software.

Os usuários/clientes da Adobe ou outras empresas contribuem financeiramente através da compra de seus produtos ou pagando pagando planos de serviços.
Por que não podemos fazer o mesmo com os softwares livres que amamos?!

Ao contribuir monetariamente para o projeto do GIMP, você pode se tornar um cliente/usuário mais valoroso, do tipo que realmente contribui para o engrandecimento do software.

Neste texto, vou mostrar algumas formas de contribuir uma única vez ou mensalmente (nos moldes da Adobe) com este bonito projeto.
É fácil!

Como contribuir com o projeto

A Fundação GNOME foi convidada a ser agente fiscal das doações para o projeto do GIMP, o que dá mais credibilidade ainda ao processo.
Desta forma, é possível contribuir através do GNOME — basta especificar que o projeto GIMP é o beneficiário.
Como a fundação é legalmente tida como não-lucrativa, goza de isenção de impostos nos EUA. Desta forma, fica garantido que o seu dinheiro será usado para ajudar no desenvolvimento do GIMP e não para o governo de outro país.

Há várias formas de enviar dinheiro. Segue a relação de sites:

  • Doe através do PayPal — por este meio, o projeto será notificado imediatamente sobre a sua doação. É provavelmente o meio mais fácil de fazer uma única doação ou especificar um valor mensal.
    É você quem escolhe o valor. Apenas pense na segurança que a doação mensal pode dar ao projeto, para fazer seus planos e traçar estratégias de crescimento.
    É importante também ter em mente que o valor do dólar flutua, em relação às outras moedas e, o que parece barato hoje… amanhã, pode ter outro aspecto.
  • Doe via Flattr — como plataforma de micro pagamentos, é possível oferecer valores pequenos, a partir de 2 euros, à plataforma, que distribui os valores entre os projetos de acordo com a sua vontade. Leia o artigo da Wikipedia sobre o Flattr (english), para saber mais sobre seu funcionamento.

Consulte o site oficial, se preferir fazer pagamentos em Bitcoins ou cheque.

Como contribuir diretamente com os desenvolvedores

Em vez de contribuir com o projeto GIMP, como um todo, é possível enviar dinheiro diretamente ao desenvolvedor que está fazendo um trabalho que você aprecia ou necessita.

Alguns desenvolvedores, responsáveis por partes importantes e complexas do GIMP, aceitam este tipo de contribuição:

  • Øyvind Kolås, que trabalha no GEGL, o novo e sofisticado núcleo de processamento de imagens do GIMP.
    Seu trabalho é crucial para implementar recursos tais como a edição não-destrutiva, camadas de ajustes e efeitos de camadas.
    Esta é a conta dele no Patreon: https://www.patreon.com/pippin.
  • Jehan Pagès é também um programador ativo do projeto e está trabalhando no desenvolvimento de recursos avançados de animação no GIMP.
    A conta dele, no Patreon, contudo, é voltada para o financiamento de um projeto de filme animado. Saiba mais no site: https://www.patreon.com/zemarmot.

Da minha parte, que uso muito o GIMP para editar as imagens do site, optei por fazer um contribuição anual via PayPal.
E você?! Se sente à vontade para também contribuir? Qual é o seu projeto de software livre favorito?! 😉

Review do Kernel linux-libre no Samsung Ultra 5

O linux-libre é uma versão do kernel GNU/Linux tradicional, despido de código proprietário — entre outras porcarias obscuras.
Recentemente escrevi sobre como obter e instalar (é super fácil!) uma versão deste kernel. Clique aqui, se tiver curiosidade.
Samsung ultrabook linux
Este post complementa aquele, na medida em que pretende mostrar os possíveis problemas que você pode ter – ou não – com esta opção.

Apesar do título, este artigo não é exatamente um review do kernel e, definitivamente, não é um review de um notebook.

O Samsung Ultra 5 530U3C, como a maioria dos notebooks vendidos no Brasil, vem com alguns dispositivos internos proprietários — que necessitam drivers igualmente proprietários para funcionar.
Na minha experiência, com o kernel 4.12.2-gnu, no Debian 9, apenas a interface de rede wireless teve problemas para funcionar.
Outros dispositivos, que uso com bastante frequência não apresentaram qualquer problema para serem reconhecidos e usados pelo sistema:

  • dispositivo de áudio — tocou meus arquivos de áudio FLAC e MP3 100%.
  • rádio Bluetooth — foi possível reproduzir áudio em caixas de som remotas e fazer transferência de arquivos de um aparelho Android 7.0 Nougat.
    motorola bluetooth connections

Já, para resolver o problema da interface de rede sem fio, o que você precisa é do pacote proprietário ‘firmware-iwlwifi’, que contém os drivers que ela necessita para funcionar.

O ponto, aqui, é ter controle sobre o código não-livre que entra no seu sistema — ou seja, somente o essencial.

A instalação do novo kernel não sobrescreve ou desinstala o kernel presente no seu sistema.
debian kernel options
Como a imagem do GRUB mostra acima, você passa a contar com mais uma opção.
O menu do GRUB, permite a alternância entre todas as opções de kernel presentes no seu sistema.
E, se ficar insatisfeito e quiser desinstalar, o sistema volta o kernel anterior para o padrão do GRUB.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

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.