quarta-feira, 29 de novembro de 2017

Instalando RStudio no Ubuntu 14.04

O RStudio não está nos repositórios padrão do Ubuntu, por isto temos que inserir o repositório do RStudion na lista de repositórios do apt. Para isto emitimos o comando:

$ sudo echo "deb http://cran.rstudio.com/bin/linux/ubuntu trusty/" | sudo tee -a /etc/apt/sources.list
Os arquivos Ubuntu no CRAN são assinados com a chave de "Michael Rutter marutter@gmail.com" com a chave ID E084DAB9. Por isto precisamos adicionar a chave de autenticação do RStudio

$ gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
$ gpg -a --export E084DAB9 | sudo apt-key add -


Atualizamos agora as informações dos repositórios
$ sudo apt-get update
Agora para instalar o R podemos usar o comando apt-get
$ sudo apt-get install r-base r-base-dev

O próximo passo é instalar o RStudio. Para isto precisamos instalar uma biblioteca.
$ sudo apt install gdebi


Agora baixamos o RStudio do site. Verifique no site para a versão mais nova. No nosso caso vamos instalar o "RStudio Desktop - Open Source License".


Quando fizemos este post, a versão mais nova era 1.1.383 e podia ser baixada com wget:
$ wget -c https://download1.rstudio.org/rstudio-1.1.383-amd64.deb
A instalação é feita com o comando, :
$ sudo gdebi -n rstudio-1.0.136-amd64.deb


Pronto. Basta digitar rstudio para chamar o programa.

terça-feira, 21 de novembro de 2017

Evitar que o notebook entre em hibernação quando a tela é fechada

Você já deve ter precisado deixar seu notebook rodando algo durante muito tempo e queria poder fechar a tela para proteger o seu video, mas ao mesmo tempo não queria que o notebook entrasse em hibernação ou desligasse.

Podemos fazer com que o Ubuntu não faça nada quando a tampa do laptop está fechada. Para isto temos que editar o arquivo /etc/systemd/logind.conf com um editor de texto.
Como este é um arquivo de sistema temos que abri-lo como root, por exemplo, podemos usar o seguinte comando:

$ sudo vi /etc/systemd/logind.conf
Você precisa inserir a linha destacada abaixo. Note que o arquivo já tem uma linha comentada para a ação (default) para quando fechamos a tela. Você pode alterá-la se quiser, eu preferi deixar como recordação de qual é o default.


Agora precisamos reiniciar o gerenciado do systemd-logind que gerencia o login dos usuários. Isto pode ser feito usando o comando abaixo:

$ sudo restart systemd-logind
Todos os comandos acima foram testados no Ubuntu 14.04.
Em outras versões pode ser necessário editar o arquivo /etc/UPower/UPower.conf e acrescentar a linha IgnoreLid=true.

quarta-feira, 8 de novembro de 2017

Ubuntu dando boot no modo texto

Você instalou o ubuntu usando o cd desktop, que faz a instalação da GUI do Ubuntu.
Só que agora você quer que o seu servidor não inicie a interface gráfica, assim tem mais performance.
Como fazer?
Este tutorial simples irá mostrar-lhe como iniciar o seu sistema Ubuntu (testei no Ubuntu 14.04) diretamente na linha de comando (modo de texto ou console).

Vamos começar fazendo um backup do arquivo de configuração do grub. Nós iremos alterá-lo.

$ sudo cp -n /etc/default/grub /etc/default/grub.orig

Para editar vamos usar o gedit (só que precisa ser como root). Você pode fazer isto com qualquer editor de texto -- vim, emacs, ed, etc.

$ sudo gedit /etc/default/grub
Precisamos fazer três alterações neste arquivo:
  1. Comente a linha GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash", adicionando # no início, o que irá desativar a tela roxa do Ubuntu.
  2. Altere GRUB_CMDLINE_LINUX = "" para GRUB_CMDLINE_LINUX = "text", para que o Ubuntu inicie no Modo de texto.
  3. Descomente a linha #GRUB_TERMINAL=console. Para isto basta remover o # no início, isso faz o menu grub em modo de texto real preto e branco (sem imagem de fundo)

Notem que no meu arquivo de configuração a linha ficou GRUB_CMDLINE_LINUX = "text locale=pt_BR", pois a opção locale=pt_BR já existia.

Depois de salvar as alterações no arquivo e fechar o getid, atualize o comando grub e reinicie o computador usando o comandos:

$ sudo update-grub2
$ sudo shutdown -r now
Pronto seu Ubuntu agora inicia na tela de texto e sem interface gráfica. Todos os aplicativos e a própria interface gráfica ainda estão instalados e podem ser utilizados se você quiser.


terça-feira, 7 de novembro de 2017

Trocar o teclado via terminal - 2ª forma

Vimos no post anterior como trocar o teclado usando dpkg-reconfigure keyboard-configuration.
Existe uma outra forma de fazer isto também. Para isto precisamos instalar um pacote do ubuntu.

$ sudo apt-get install console-data


Durante a instalação a tela de configuração se abre permitindo que a gente já troque neste momento o teclado.
Não vamos fazer durante a instalação para que vocês possam ver como mudar o teclado depois. Por isto vamos escolher "Não tocar no mapa do teclado" para finalizar a instalação.

Ok. Agora a instalação acabou.

Para configurar o teclado usamos agora

$ dpkg-reconfigure console-data
A tela abaixo se abre. Vamos fazer a configuração usando a primeira opção (que é mais simples).

O modelo padrão de layout de teclado brasileiro é o QWERTY. Selecione esta opção para continuar.


 Selecionamos agora que o teclado é brasileiro.

E agora a variação do teclado. A maioria dos teclados que eu usei é Standard (ou seja br-abnt), provavelmente o seu também é. Selecione então a variação correta e pronto. Seu teclado está configurado.




Trocar o teclado para português na linha de comando

Eu já me deparei algumas vezes com o linux configurado para o teclado americano quando eu estava utilizando o teclado brasileiro. Eu acho muito chato ficar digitando "ç" para obter ";", por exemplo.
Assim uma das coisas que preciso é trocar o teclado.
É relativamente simples, na verdade o mais difícil é descobrir o comando correto.

$ dpkg-reconfigure keyboard-configuration
Com este comando abre um assistente no terminal como mostrado abaixo. O primeiro passo é selecionar o modelo do teclado. A maioria dos teclados brasileiros é o genérico de 105 teclas como mostrado abaixo.

O próximo passo é a seleção do país de origem do teclado (no meu caso Brasil).

e o layout. Se você não tem um teclado brasileiro especial, a opção padrão é Português (Brasil). Note que depois de alterar a configuração, você sempre pode abrir novamente este assistente para testar uma outra opção.

Se seu teclado não tem a tecla [Alt Gr], o linux permite simulá-la.

Agora a tecla [Compose]. Eu nunca vi esta tecla nos teclados brasileiros - se no seu caso esta tecla existe, você tem que alterar o opção mostrada abaixo.

Nos linuxes antigamente a combinação de teclas Ctrl+Alt+Backspace reiniciava o servidor X. Você pode usar esta opção para habilitar a combinação. Por padrão, esta combinação não faz nada.

A configuração de boot de seu sistema é refeita para que a sua nova configuração. Note na tela abaixo que um novo boot é gerado. Assim basta reiniciar o computador para ter as novas configurações valendo.

sábado, 4 de novembro de 2017

Criando um DNS para nossa rede interna

Existem diversos serviços de DNS disponíveis para o linux. Neste post vamos tratar de um dos mais simples, mas que funciona muito bem para pequenas redes. Vamos ver aqui o DNSmasq que fornece dois serviços: DNS e DHCP. Os serviços podem ser usados de forma independente. O primeiro (DNS) permite que os computadores possam fazer acesso à internet, pois converte os nomes (por exemplo, http://h3dema.blogspot.com) para o respectivo endereço IP. Um cache DNS local pode acelerar a navegação na Internet porque o navegador do usuário não precisa acessar um servidor de nomes de domínio quando ele procura um nome de domínio que o computador já visitou antes. O segundo (DHCP) fornece e configura automaticamente os endereços IP para os outros computadores na rede com ou sem fio. Um computador precisa de um endereço de rede IP exclusivo para acessar a internet.

NOTA: Observe que o dnsmasq interfere com o Network Manager (gerenciador de rede), já que este pode usar "dnsmasq-base" para fornecer serviços DHCP ao compartilhar uma conexão à internet. Portanto, se você usar o gerenciador de rede instale dnsmasq-base, mas não dnsmasq. Se você tiver uma configuração mais complicada, desinstale o gerenciador de rede, use dnsmasq ou software similar (bind9, dhcpd, etc.) e configure tudo manualmente. Esta situação não será coberta neste post.

Instalação e configuração do dnsmasq

O dnsmasq pode ser instalação com o tradicional apt-get.
Neste post consideramos que o computador com o dnsmasq tem o endereço 192.168.0.1.
Execute esses comandos
$ sudo apt-get install dnsmasq
O dnsmasq pode ser configurado editando o arquivo /etc/dnsmasq.conf.
Vamos mostrar como criar um cache DNS local.

Um servidor DNS resolve nomes de domínio legíveis para humanos em endereços IP. O cache reduzirá o tempo necessário para procurar nomes de domínio ao navegar. Com o dnsmasq instalado, use seu editor de texto preferido para editar /etc/dnsmasq.conf,

Troque a linha mostrada abaixo (em torno da linha 90):
#listen-address=
para
listen-address=127.0.0.1
Normalmente esta alterações já é suficiente para o dnsmasq funcionar, mas vamos acrescentar algumas configurações adicionais. Assim o nosso arquivo de configuração ficará assim:
listen-address=127.0.0.1
domain-needed
bogus-priv
local=/meudominio.local/
expand-hosts
domain=meudominio.local
interface=eth1
server=4.4.4.4
server=8.8.8.8 

Vamos ver o que cada termo quer dizer:

  • listen-address = 127.0.0.1 - Faz o próprio Dnsmasq usando o arquivo interno, ao invés de encaminhar para um servidor DNS.
  • domain-needed - O dnsmasq não vai tentar resolver os nomes quando forem fornecidos nomes de hosts simples, isto é, sem fqdn. Por exemplo ao solicitar youtube, o dnsmasq retorna um erro de "host não encontrado".
  • bogus-priv - Qualquer pesquisa reversa para um ip privado (RFC 1918) não será redirecionada para os servidores listados como server=xxxx.
  • local=/meudominio.local/ - Pesquisas para o domínio "meudominio.local" não são encaminhadas para os servidores configurados.
  • domain=meudominio.local - Indica que o domínio do dnsmasq é "meudominio.local". Assim o dnsmasq procura no domínio por nome de máquinas simples (nome do host).
  • expand-hosts - Adicional automaticamente ao domínio (meudominio.local) quando solicitados hosts com em nomes de máquinas simples. Por exemplo, comp01 será completado gerando um nome completo - comp01.meudominio.local.
  • interface=eth0 - Indica a interface que o dnsmasq ir ouvir requisições de DNS e DHCP, utilize uma linha para cada interface.
  • servidor = x.x.x.x - Cada linha indica um servidor DNS que será consultado pelo dnsmasq caso o cache local não conheça o domínio solicitado. Você pode cadastrar vários servidores. No nosso caso cadastramos os dois endereços de DNS público do Google.


Agora, edite o arquivo /etc/dhcp3/dhclient.conf (em torno da linha 20) se parece com o seguinte:
#supersede domain-name "fugue.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope;

A opção prepend domain-name-servers é importante pois garante que 127.0.0.1 aparecerá no topo da lista de servidores DNS. Lembre-se que o endereço 127.0.0.1 refere-se ao computador com dnsmasq. Sempre que um computador do dnsmasq precisa resolver um nome de domínio, ele enviará essa solicitação para o próprio dnsmasq.



Agora, edite o arquivo /etc/resolv.conf.
search meudominio.com
nameserver 127.0.0.1
Tendo feito toda esta configuração precisamos reiniciar o dnsmasq para que as mudanças que fizemos passem a funcionar. Faça isto com o comando:

$ sudo /etc/init.d/dnsmasq restart

Criando também um DHCP


Até o momento criamos o dns cache, mas ainda não foi criado do DHCP. Para fazer isto temos que editar o arquivo /etc/dnsmasq.conf e acrescentar pelo menos as duas linhas indicadas abaixo:



dhcp-range=192.168.0.100,192.168.0.200,12h
dhcp-lease-max=100 

Vamos ver o que cada termo quer dizer:
  • dhcp-range=192.168.0.100,192.168.0.200,12h - Esta linha define duas configurações: (a) o intervalo de IPs que serão fornecidos para a rede (indicamos o menor valor e o maior valor) e (b) o tempo de concessão da configuração - isto é o tempo que o endereço concedido a uma estação ficará válido.
  • dhcp-max-lease 100 - Máximo de concessões. Se esta linha não for colocada no arquivo de configuração, o dnsmasq utilizará o valor padrão que é 150. 
Temos que reiniciar novamente o dnsmasq.
$ sudo /etc/init.d/dnsmasq restart

Desabilitar ModemManager no Ubuntu

 ModemManager provides a unified, high-level interface to control all kinds of modems: 4G/5G modems (LTE/NR) 3G modems NB-IoT / Cat-M1 modul...