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

instale e gerencie extensões e plugins para Vim com o vim-addons

A ferramenta vim-addons facilita a instalação e configuração de plugins para o editor de textos Vim.
A sua distro Linux provavelmente tem um repositório abarrotado de extensões para o Vim.
Como não é tarefa do gestor de pacotes se envolver nos meandros de um software e configurar seus add-ons, o vim-addon pode ser necessário.

Para contextualizar, este post foi escrito no Debian 10 testing (de codinome “Buster”). Portanto, adeque os comandos dados à sua distro favorita.

Não esqueça de ler (e compartilhar) meus outros posts sobre o editor de textos Vim.
Mantido pelo grupo Vim Maintainers, o pacote vim-addons-manager se propõe a gerenciar extensões para o editor — ele instala e, quando necessário, ajusta o arquivo de configuração em ~/.vim/
Use o seu gestor de pacotes para instalá-lo:


sudo apt install vim-addon-manager

O utilitário permite listar os addons eventualmente já instalados no seu sistema.
Também é possível remover o que você “não gosta mais”.

O vim-addon-manager ou vim-addons deve ser executado fora do Vim, na shell.

As limitações do VAM

O Vim Addon Manager (VAM) foi concebido para instalar plugins empacotados no padrão Debian (.deb).
Em outras palavras, a intenção é gerenciar apenas as extensões distribuídas em pacotes debian — usualmente, no repositório.
Isto limita (e muito) a quantidade possível de extensões instaláveis, mas garante maior segurança e estabilidade para os usuários.

Como listar as extensões atuais do Vim

Use o comando list, para obter uma relação das extensões/plugins presentes na sua instalação Vim:


vim-addons list

editexisting
espeak
justify
matchit

A lista, acima, mostra os itens disponíveis no sistema. Eles não estão, necessariamente ativos.
No meu caso, estes itens estão todos com o estado “removido”.
Para saber disso, use o comando status:


vim-addons status 

# Name                     User Status  System Status 
editexisting                removed       removed       
espeak                      removed       removed       
justify                     removed       removed       
matchit                     removed       removed

Para obter mais informações sobre algum item da lista, use o comando show:


vim-addons show espeak

Addon: espeak
Status: removed
Description: habilita realce de sintaxe (syntax highlighting) para o eSpeak e arquivos de dados texto-para-fala do eSpeak NG (dicionários, etc.)
Files:
 - ftdetect/espeakfiletype.vim
 - syntax/espeaklist.vim
 - syntax/espeakrules.vim

Como encontrar mais pacotes de plugins no repositório do Debian

Para encontrar, instalar e ativar plugins, siga o passo a passo:

  1. use o comando apt search com o comando grep, para encontrar possíveis plugins para o seu sistema:
    
    apt search vim | grep -B1 -i plugin
    
  2. instale o pacote do plugin, como qualquer outro pacote Debian. Segue um exemplo:
    
    sudo apt install vim-python-jedi
    

    Depois de instalado, o novo plugin já pode ser visto na relação do VAM:

    
    vim-addons
    
    # Name                     User Status  System Status 
    editexisting                removed       removed       
    espeak                      removed       removed       
    justify                     removed       removed       
    matchit                     removed       removed       
    python-jedi                 removed       removed
    

    Agora é possível obter informações sobre a nova extensão:

    
    vim-addons show python-jedi
    

    Addon: python-jedi
    Status: removed
    Description: autocompletion tool for Python
    Files:
    - after/ftplugin/python/jedi.vim
    - after/syntax/python.vim
    - autoload/jedi.vim
    - autoload/health/jedi.vim
    - doc/jedi-vim.txt
    - ftplugin/python/jedi.vim
    - plugin/jedi.vim
    - pythonx/jedi_vim.py
    - pythonx/jedi_vim_debug.py

  3. Por fim, instale e ative o plugin. Siga os exemplos, abaixo.
    Para instalar o python-jedi:

    
    vim-addons install python-jedi
    
    Info: installing removed addon 'python-jedi' to /hem/justincase/.vim
    Info: Rebuilding tags since documentation has been modified ...
    Processing /hem/justincase/.vim/doc/
    Info: done.
    

    Para obter informações específicas sobre a extensão:

    
    vim-addons status python-jedi 
    
    # Name                     User Status  System Status 
    python-jedi                 installed     removed
    

    De acordo com a informação, acima, a extensão python-jedi já instalada. Basta rodar o Vim, para vê-la funcionando.

Como remover os plugins

Se quiser remover um dos plugins instalados, use a opção remove do vim-addons:


vim-addons remove python-jedi

Se você remover apenas o pacote vim-addon-manager, os plugins instalados através dele, permanecerão.

Referẽncias

A quantidade de opções de extensões é muito pequena, para ser instalada pelo vim-addon-manager.
há outras opções de instalação facilitada de plugins para Vim, que procuram direto no GIT e te poupam de ter que passar primeiro pelo repositório da sua distro.

https://vi.stackexchange.com/questions/7266/when-should-i-use-vim-addon-manager-instead-of-a-regular-package-manager.

https://vi.stackexchange.com/questions/7249/using-vim-addon-manager.

5 IDEs para programar no Linux

Os ambientes integrados de desenvolvimento (Integrated Development Environment> ou IDEs) são conjuntos de ferramentas que visam a oferecer ao desenvolvedor(a) tudo o que ele(ela) necessita para trabalhar: editor, corretor, debugger, compilador/interpretador etc.
O objetivo da IDE é proporcionar conforto, eficiência e desempenho a projetos de desenvolvimento de todos os tipos e tamanhos.

O Linux é muito rico em ferramentas para programação e é apontado como uma opção segura para profissionais sérios(as).
Neste post, vou me limitar a falar das opções disponíveis na interface de instalação Programas no Debian 10 “Buster” (testing edition).
Debian Ubuntu Instalar programas

Mesmo que a sua distro favorita seja outra, tenho certeza (quase) absoluta de que você vai encontrar todas estas opções lá também.
Para estar nesta lista, os itens precisam obedecer os seguintes requisitos:

  1. Precisa estar disponível no repositório oficial do Debian
  2. Precisa estar disponível na busca do painel de instalação Programas.
  3. Precisa ser uma ferramenta genérica, voltada para várias linguagens de programação e não apenas uma ou outra plataforma específica.

Use a sessão dos comentários, para me avisar (se não encontrou alguma coisa) ou para sugerir outras opções. 😉

Anjuta DevStudio

anjuta ide

Escrito, desde o inicio para o ambiente GNOME, o Anjuta DevStudio tem uma interface totalmente integrada.
Foi lançado em Dezembro/1999 e é, portanto, um projeto com aproximadamente 20 anos de estrada.
Entre seus principais atributos, o site oficial lista:

  1. Interface simplificada de usuário.
  2. Possui assistentes de projeto e modelos prontos.
  3. Tem suporte a C, C++, Java, JavaScript, Python e Vala.
  4. Integração total com o Glade, ferramenta de design de interfaces.
  5. GDB integrado, para depuração completa.
  6. DevHelp, como sistema de ajuda integrado e sensível ao contexto.

Code::Blocks

code blocks ide

A proposta do Code::Blocks é ser uma plataforma de desenvolvimento de código aberto, voltada para as linguagens C, C++ e Fortran.
Tem suporte a múltiplos compiladores, como o GCC, MSVC++, Clang Digital Mars etc.
O programa é especialmente projetado para ser estendido, através de plugins e receber variadas configurações.

Eclipse

eclipse ide linux

O projeto da IDE Eclipse já tem mais de 15 anos e começou dentro da IBM, em um projeto chamado VisualAge, voltado a construir ferramentas de desenvolvimento para os próprios projetos da empresa.
Atualmente, o Eclipse tem suporte a mais de 45 idiomas e a dezenas de linguagens de programação, como Ada, ABAP, C, C++, C#, COBOL, D, Fortran, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby (inclusive Ruby on Rails framework), Rust, Scala, Clojure, Groovy, Scheme, e Erlang.
O suporte a estas e outras linguagens é adicionado por meio de plugins.
Tal como o Code::Block, tem suporte a diferentes sistemas operacionais e, portanto, pode ser uma ótima opção para projetos multi-plataforma.

Geany

geany ide linux

O Geany é o queridinho entre desenvolvedores que apreciam o equilíbrio entre a quantidade de recursos e o bom desempenho de uma IDE leve.
O objetivo que guia este projeto é manter sempre este equilíbrio — que é alcançado, entre outras coisas, mantendo o mínimo de dependência de bibliotecas de terceiros.
Portanto, é indicado também para quem tem espaço limitado no computador de trabalho.
Tem suporte a C, Java, PHP, HTML, Python, Perl e Pascal.

Netbeans

Outra IDE desenvolvida por uma grande companhia, o NetBeans surgiu dos laboratórios da Sun Microsystems.
Inicialmente, o objetivo era prover um ambiente integrado aos desenvolvedores Java – dentro e fora da empresa.
Mas o projeto cresceu e adquiriu “vida própria”. Sobreviveu, até mesmo, a aquisição da Sun pela Oracle.
O projeto, hoje, tem suporte a dezenas de linguagens de programação (através de plugins) e pode ser usado até mesmo para desenvolver temas para WordPress.

Menções honrosas

Tive que conter o meu entusiasmo para não continuar escrevendo.
A lista ultrapassaria 10 itens, facilmente.
Apesar disso, faço questão de mencionar 3 IDEs e os motivos pelos quais ficaram fora desta lista.

  1. O Eric ficou de fora por ser um projeto exclusivamente voltado ao Python.
    Contudo, é um ambiente de programação fantástico e, se você é desenvolvedor Python, definitivamente recomendo que vá aos Programas conhecer esta opção.
  2. O Kdevelop também merece estar em qualquer lista de IDEs para a plataforma Linux e ele também pode ser encontrado no painel de instalação.
    Ficou de fora por ser voltado ao ambiente gráfico KDE — o que implicaria (para quem usa o GNOME, como ambiente padrão) em instalar uma enorme quantidade de bibliotecas para Qt e KDE.
  3. O Codelite, por pouco, não me fez aumentar a lista de 5 para 6…
    No Debian, ele pode ser instalado pela CLI, por que faz parte dos repositórios oficiais.
    O problema é que não consegui encontrá-lo no painel gráfico de instalação — e este seria o segundo pré-requisito para entrar na lista.
    Na sua distro, aí, é possível que ele esteja presente — dá uma olhada!
    Se não estiver e quiser conhecer o ambiente, use o apt (ou dnf):

    
    sudo apt install codelite
    

O exemplo do Codelite, aqui, mostra por que desenvolvedores não podem abrir mão da linha de comando, sob pena de deixar passar coisas importantes.
Se cometi algum erro ou alguma injustiça, por favor, me conte na sessão de comentários.

3 editores de código para Debian e Ubuntu

O Linux é uma plataforma valiosa para desenvolvedores(as). É estável e cresceu pelas mãos de programadores.
A concepção inicial era ser um sistema operacional feito por e para desenvolvedores, mas o projeto acabou crescendo muito além disso.

O GNU/Linux, hoje, é para todos.
É possível afirmar que apenas alguns nichos de usuários é que não irão encontrar utilidade para o sistema operacional do pinguim (sorte que não sou um deles) 😉

Programadores(as), dispõem de um enorme “manancial” de ferramentas e documentação, dentro da plataforma GNU/Linux.
Parte já vem instalada por padrão.
Outra parte pode ser baixada dos repositórios da sua distro (ou seja, a lojinha de apps).
Debian Ubuntu Instalar programas

Este post, tem algumas limitações — ou a lista ficaria insanamente grande.
Só vale editores gráficos (GUI) e que estejam presentes na lista do aplicativo Programas (Debian/GNOME).
Por exemplo, o Kate é tão bom quanto o Gedit, para editar código — mas é voltado ao KDE.
Nada impede que o usuário instale software para KDE no GNOME, mas isto vai contra algumas regras básicas de uso do Linux

Se você percebeu que deixei algum software de fora, por favor, use a sessão de comentários para avisar.

O Gedit

Este é um dos itens padrão de qualquer instalação que usa o desktop GNOME — ou seja, é pré-instalado.
O editor tem suporte a dezenas de linguagens de programação.gedit editor

Conta com suporte a syntax highlighting e vários outros recursos, via plugins.
Abaixo, painel para alterar o tema visual do editor.
temas do Gedit

GVim

Derivado do Vim, editor de textos CLI, esta versão mantém todos os atalhos de teclado e comandos do original e adiciona a possibilidade de realizar as tarefas pela GUI, com o mouse, claro.
gvim editor

Podemos dizer que o Vim é algo muito poderoso na CLI, mas isto seria verdade também na sua versão gráfica?
Eu acredito que traz todas as suas vantagens para o ambiente gráfico, sim. Mesmo sendo um ávido usuário do editor na CLI, também gosto do conforto de usar o conceito de “apontar e clicar” no meu editor favorito, de vez em quando.

Outra vantagem do editor é que você pode levar e usar toda a sua base de conhecimento no Vi e Vim.

Pluma

Este seria o editor padrão do Ubuntu MATE, assim como o Kate e o Kwrite são do KDE e o Gedit do GNOME.
Não recomendo usar editores de outros ambientes desktop apenas pelo princípio de manter o sistema enxuto.
Ao instalar programas do KDE, em um ambiente GNOME, várias novas bibliotecas (QT, por exemplo) são acrescentadas ao sistema, que ficará “inchado” apenas para satisfazer aquele programa novo.
editor texto pluma

O Pluma irá acrescentar, além do pacote do editor, em si, o mate-dekstop (393 Kb) e o próprio Pluma (12.8 MB).
Neste caso, o pacote adicional do Mate, representa apenas uma pequena fração do carro-chefe.
Vale a pena experimentá-lo, portanto.

O que ficou de fora

Eu fiz um esforço para não incluir editores mais avançados, como o Geany e o Aptana (entre outros).
Estes programas são IDEs (Ambientes de Desenvolvimento Integrado) e, portanto, não são “apenas editores de texto”.

Tem outras sugestões de editores, que não abordei neste post?
Então, comente sobre isso 😉

Como encontrar ferramentas de programação para desenvolvedores Debian e Ubuntu (CLI)

A linha de comando (CLI) é um dos ambientes mais férteis e que oferece mais respostas rápidas e eficiência na execução de tarefas em muitos sistemas operacionais.
Para programadores(as), como um nicho, é onde se encontra um enorme ecossistema de ferramentas para criar, testar e distribuir o resultado do seu trabalho.

Usuários novatos podem achar uma tela preta, com letras coloridas, um tanto intimidante.
Ao se dar oportunidade, você irá ver que há muito para se extrair do seu sistema operacional, na CLI, contudo.

Nos sistemas Debian e nos seus derivados, é possível encontrar as ferramentas disponíveis para trabalho com o uso do comando apt ou apt-get.
Ambos servem para inquirir os repositórios.

Este é um post complementar ao Ferramentas de programação para desenvolvedores (GUI), em que mostrei como encontrar aplicativos para ajudar no desenvolvimento de programas no ambiente gráfico (GUI).
Na CLI, porém, é possível encontrar muito mais opções de softwares.
Abra um terminal e use o apt search:


apt search python

O exemplo acima, infelizmente, dá um resultado horrível, com “milhares” de itens inúteis na lista.
O problema é que o sistema inteiro usa diversas bibliotecas (libraries)— relacionadas ao desenvolvimento de aplicativos em Python, Perl, C, C++ etc. — que sempre irão aparecer neste tipo de busca — o que não acrescenta, nem ajuda quem está procurando ferramentas, como aplicativos, de programação para a sua linguagem favorita.
Para obter uma relação de aplicativos mais relevantes, pode-se usar o comando grep:


apt search python | grep -i "ide"

Como eu disse, a relação é grande…
Para excluir os resultados que contenham a string “lib” (library), use a opção ‘-v’


apt search python | grep -B1 -v "lib"

A opção ‘-B1’, acima, informa ao grep para mostrar a linha anterior (before) àquela que contém o resultado da busca. Usualmente, é a linha que contém o nome do aplicativo.
Acrescente o less, para facilitar sua leitura:


apt search python | grep -B1 -v "lib" | less

As buscas irão retornar resultados mais relevantes se você souber o que está procurando.

Ferramentas para desenvolver PARA Debian e Ubuntu

No Debian e no Ubuntu, você irá precisar instalar (pra começar) o build-essential, que contém os seguintes pacotes (fundamentais para criar e empacotar novos programas):

  • libc6-dev – biblioteca padrão C.
  • gcc – compilador C.
  • g++ – compilador C++.
  • make – utilitário GNU make, usado para manter grupos de programas.
  • dpkg-dev – ferramentas de empacotamento para desenvolvedores.

Editores de código

Acho as IDEs gráficas excelentes e, até, uso algumas eventualmente.
Na maior parte do tempo em que estou lidando com código, porém, gosto de fazer isto com ferramentas leves.
Gosto de usar o Vim para programar.
Porém, há outros excelentes editores de texto CLI, que você pode considerar:

  • nano — quase sempre presente em todas as distribuições GNU/Linux. Tem uma abordagem diferente do Vim e costuma ter desempenho tão bom ou melhor. Sua concepção vem de um dos editores de texto mais populares na década de 80: o WordStar.
  • jed — tem uma concepção mais moderna e é completamente customizável. Possui modos de emulação Emacs, para quem deseja migrar daquela plataforma. Também pode emular CUA, que facilita o uso para quem está acostumado a usar os atalhos de teclado do OpenOffice.
  • drpython e pype — editores voltados para programar em Python.

Você pode fazer buscas por editores voltados para a sua linguagem de programação, se quiser:


apt search editor | grep -B1 -i perl

Obtive resultados relevantes com o comando:


apt search editor | grep -B1 -v "lib"

Espero que este post tenha sido, de alguma forma relevante. Não se esqueça de ler a outra parte, sobre como encontrar ferramentas gráficas de programação.