quinta-feira, 1 de agosto de 2024

Habilitar SSH no raspberry diretamente no cartão SD (... e definir o IP da rede cabeada)

Se você utiliza o Raspberry Pi Imager, você pode configurar o acesso ao raspberry via "Edit settings" conforme mostrado abaixo:


Na primeira aba, você pode configurar a conexão do raspberry a sua rede WiFi e o usuário padrão.


Já na próxima aba, habilite o SSH.



Contudo isto não configura o endereço IP da rede cabeada. Felizmente, isso é fácil de fazer. Com o cartão SD ainda conectado, abra a partição de inicialização (bootfs) e edite o arquivo "cmdline.txt" neste diretório utilizando um editor de texto. Você deve colocar no final do texto existem ip=x.x.x.x, onde x.x.x.x é o endereço que você deseja (veja um exemplo abaixo):



quarta-feira, 31 de julho de 2024

Abrir images HEIC no Image Viewer

 O visualizador padrão do Ubuntu é o Image Viewer.

Contudo ele não suporta por padrão as images HEIC (que baixo do meu iPhone).

Para vê-las é preciso instalar o pacote heif-gdk-pixbuf (não precisa de PPA).


Instalação

Abra um terminal no Ubuntu e execute os comandos abaixo. Isto irá instalar as bibliotecas libheif1 e libde265-0.

sudo apt -y install heif-gdk-pixbuf
sudo apt -y install heif-thumbnailer
sudo apt -y install libheif1:amd64


Normalmente basta o primeiro comando para instalar tudo. As duas linhas seguintes normalmente não precisam ser digitadas.



sexta-feira, 12 de julho de 2024

Clonando um repositorio com git+ssh

 

Primeiro precisamos criar a chave de criptografia para acessar o repositório:

mkdir github-keys
cd github-keys
ssh-keygen -o -t ed25519 -C “ssh@github.com” -f ~/github-keys/id_ed25519_github_ssh
chmod 600 id_ed25519_github_ssh*
cp id_ed25519_github_ssh ~/.ssh


Agora você precisa ir na sua conta do github para dar o acesso via chave.

Selecione Settings (esta opção aparece quando você clica no seu avatar no canto superior direito da janela). Esta opção irá abrir uma tela similar a mostrada abaixo. Selecione "SSH and GPG keys" e clique no botão "New SSH key".


Preencha os campos colocando no campo da chave o conteudo do arquivo da chave pública que você gerou no passo anterior (id_ed25519_github_ssh.pub neste exemplo).


Pronto. Agora podemos testar se o acesso está funcionando. 

Vamos tentar uma chamada SSH informando explicitamente a chave de criptografia no comando:

ssh -i ~/.ssh/id_ed25519_github_ssh -T git@github.com


Se tudo funcionar você irá ver um conjunto de linhas semelhante ao mostrado abaixo:

Warning: No xauth data; using fake authentication data for X11 forwarding.
X11 forwarding request failed on channel 0
Hi h3dema! You've successfully authenticated, but GitHub does not provide shell access.


Se não funcionar, acrescente -v ao comando ssh para ver mais detalhes. Pode ser que, por exemplo, o nome do arquivo com a chave privada esteja errada, ou pode ser permissão de acesso, etc.


Se o comando funcionou, faça novo teste sem informar a chave explicitamente.

ssh -T git@github.com


No meu caso, na primeira vez que tentei o comando acima retornou:

git@github.com: Permission denied (publickey).


Usando o -v, descobri que o ssh não estava identificando a chave correta.

O GitHub sugere instalar um SSH agent forwarding.

Eu preferi, ao invés disto, criar um arquivo de configuração.

Criei o arquivo ~/.ssh/config e acrescentei as seguinte linhas

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github_ssh


Agora o comando funciona:




Criar um ambiente virtual usando PyENV + virtualenv

 Você adicionou o PyENV no seu computador (veja o nosso post).

Agora precisa criar o ambiente virtual onde irá trabalhar.

Portanto, precisa decidir qual versão do Python irá adiciona.

Depois de configurar o PyENV, você pode instalar as versões Python de sua escolha.

Você pode visualizar as versões disponíveis do Python usando o seguinte comando. Ele irá apresentar  uma extensa lista de opções. Selecione a versão desejada desta lista.

pyenv install --list


Instalação da versão Python

Por exemplo, para instalar o Python 3.9.19 basta digitar o comando abaixo que irá baixar e configurar o Python 3.9.19.
pyenv install 3.9.19



Selecionar uma versão instalada como padrão

Você selecionar entre as diversas versões do Python instaladas pelo PyENV, qual é a versão o padrão para comandos Python.
pyenv global 3.9.19
Isto fará que o Python 3.9.19 será seu padrão de instalação.
Você também pode definir como a versão local de um projeto específico executando o seguinte comando no diretório deste projeto.
pyenv local 3.9.19


Criar um ambiente virtual

Vamos testarse o comando pyenv virtualenv funciona. Nesse caso, ele deve retornar "nenhum nome virtualenv fornecido", pois é necessário especificar um nome de ambiente para criá-lo.


Depois de instalar a versão do Python, como mostramos acima, você irá criar um ambiente digitando:
pyenv virtualenv <versão_python> <nome_do_ambiente>

Portanto, no nosso caso o comando será pois queremos a versão 3.9.19 do Python e vamos chamar o ambiente virtual pelo nome do nosso projeto
pyenv virtualenv 3.9.19 moviq-segmentation



Para usar um ambiente virtual existente, você pode ativá-lo digitando: 
pyenv activate <nome_do_ambiente>


E para sair do ambiente virtual atual, você pode desativá-lo digitando o comando:
source deactivate

No nosso exemplo os comandos são
pyenv activate moviq-segmentation
pyenv deactivate

Note que a linha de comando passa a ter uma indicação do ambiente ativo.


Visão geral dos comandos

Resumindo os principais subcomandos do PyENV que você irá utilizar são:

  • pyenv install: para instalar uma nova versão do Python
  • pyenv update: Para atualizar o pyenv
  • pyenv virtualenv: Para criar um novo ambiente virtual Python
  • pyenv activate: Para ativar um ambiente virtual criado anteriormente.
  • source deactivate: Para desativar o ambiente virtual atualmente em uso.
  • pyenv virtualenv-delete: apaga um ambiente virtual
  • pyenv uninstall: para desinstalar uma versão do Python.

Instalar do PyENV no Ubuntu

Os passos mostrados neste post irão guiá-lo através do processo de instalação do PyENV no Ubuntu. Os passos mostrados abaixo foram testados no Ubuntu 22 bem como  na mesma versão rodada no ambiente WSL do Windows.


Passo 1:

Comece atualizando a lista de pacotes do sistema para garantir o acesso às versões de software mais recentes:

sudo apt -y update


Passo 2: 

Instale as dependências necessárias para o PyENV.

Normalmente ele irá exigir certas dependências para funcionar de maneira ideal. 

Você pode instalá-los usando o seguinte comando:

sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev


Passo 3: 

Se o seu shell padrão for Bash, os comandos abaixo anexam duas linhas ao seu arquivo ~/.bashrc:

echo -e 'export PYENV_ROOT="$HOME/.pyenv"\nexport PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

echo -e 'eval "$(pyenv init --path)"\neval "$(pyenv init -)"' >> ~/.bashrc


Se você utiliza outro kernel, os comandos são diferentes e não são mostrados neste post.


Passo 4:

A linha de comando abaixo irá baixar e executar o script do instalador PyENV:

curl https://pyenv.run | bash


Se depois da instalação você vir a mensagem de erro 

/usr/bin/env: ‘bash\r’: No such file or directory

Faça o seguinte procedimento para corrigir.

O conjunto de comandos irá resolver o problema substituindo todos os caracteres de retorno de carro (\r) por nada:

cd ~/.pyenv && find . -type f | xargs sed -i $'s/\r$//' && cd -


Se você chamar o pyenv agora, ele irá funcionar. Por exemplo, abaixo vemos como ver a versão do programa e um exemplo da saída no meu computador.

$ pyenv --version
pyenv 2.4.7


segunda-feira, 10 de junho de 2024

Gerenciando máquinas virtuais usando virt-manager

Para começar, verifique se sua CPU suporta tecnologia de virtualização. Seu sistema precisa ter um processador Intel VT-x (vmx) ou AMD-V (svm). Para verificar isso, execute o seguinte comando egrep. A saída do comando deverá ser maior que 0, se a virtualização for suportada.

egrep -c '(vmx|svm)' /proc/cpuinfo


Verifique se a virtualização KVM é suportada usando `kvm-ok`. Se este comando estiver faltando,, instale o pacote cpu-checker da seguinte maneira:

sudo apt install cpu-checker -y


Para verificar a compatibilidade do seu sistema, execute o seguinte comando:

kvm-ok


Para instalar, atualize as listas de pacotes e repositórios e, em seguida, instale o QEMU/KVM junto com outros pacotes de virtualização da seguinte maneira:

sudo apt update

sudo apt install qemu-kvm virt-manager virtinst libvirt-clients bridge-utils libvirt-daemon-system -y

Iniciando a virtualização

Neste ponto, instalamos o QEMU e todos os pacotes essenciais de virtualização. A próxima etapa é iniciar e ativar o daemon de virtualização libvirtd. Portanto, execute os seguintes comandos para habilitá-lo/iniciá-lo:

sudo systemctl enable --now libvirtd

sudo systemctl start libvirtd


Para verificar se o serviço de virtualização está funcionando, basta executar o seguinte comando:

sudo systemctl status libvirtd


Ajustar as permissões

Finalmente, se você deseja adicionar o usuário atualmente logado aos grupos kvm e libvirt para que ele possa gerenciar as máquinas virtuais, basta inserir os dois comandos a seguir:

sudo usermod -aG kvm $USER

sudo usermod -aG libvirt $USER

Você precisa fazer logoff e logon para receber as permissões corretas.


Virt-manager

Você pode iniciar a ferramenta QEMU/KVM GUI, que é o Virtual Machine Manager na linha de comando digitando:

virt-manager

A tela inicial é:


Se você receber uma mensagem de erro e você adicionou seu usuário aos grupos (como mostrado anteriormente), pode ser que você esqueceu de fazer logoff e logon para que o usuário possa receber estas opções.


segunda-feira, 3 de junho de 2024

Como acessar o vscode via internet

Existem algumas opções para acessar o Visual Studio Code (VS Code) via HTTPS.

Normalmente isto envolve o uso do Visual Studio Code Server ou de um ambiente de desenvolvimento remoto como GitHub Codespaces, 

Vou mostrar abaixo duas maneiras de configurar e acessar o VS Code via web:


Método 1: Codespaces GitHub

  1. Inscreva-se e configure: certifique-se de ter uma conta no GitHub e acesso ao GitHub Codespaces.
  2. Crie um espaço de código (codespace).
  3. Navegue até o repositório que você deseja trabalhar.
  4. Clique no botão Code e selecione Open with Codespaces.
  5. Siga as instruções para criar um novo Codespace.

Depois que o Codespace é criado, ele é aberto em uma guia do seu navegador, e fornece um ambiente VS Code acessível via HTTPS.


Método 2: Transforme seu computador em um servidor vscode (Self-Hosted VS Code Server)

Para hospedar sua própria instância do VS Code acessível via web, você pode usar o code-server do Coder. Mais informações podem ser achadas aqui.

Se você utiliza Ubuntu, a instalação é super simples. Basta utilizar o script de instalação (veja mais aqui) denominado install.sh, que automatiza a maior parte do processo. O script usa o gerenciador de pacotes do sistema para fazer a instalação dos pacotes necessários.

A instalação é feita baixando e rodando o script com a linha de comando abaixo:

curl -fsSL https://code-server.dev/install.sh | sh

Com isto você poderá acessar o vscode via web utilizando o endereço http://127.0.0.1:8080.


A configuração está no arquivo $HOME/.config/code-server/config.yaml, como mostrado abaixo:

h3dema@station01:~$ cat $HOME/.config/code-server/config.yaml
bind-addr: 127.0.0.1:8080
auth: password
password: suasenhaaqui
cert: false


Note que você pode permitir o acesso a outras interfaces de rede. Por exemplo se quiser que o vscode seja acessível por todas as interfaces altera bind-addr para:

bind-addr: 0.0.0.0:8080


É necessário uma senha para acessar o vscode. Esta senha está no campo password deste arquivo de configuração. Inicialmente este campo contém um valor aleatório, que você pode trocar para outro valor que você ache melhor, como por exemplo:

password: suasenhaaqui


O método recomendado de acesso é via SSH forward, assim o usuário é autenticado pelo SSH server para fazer o acesso web. Contudo você pode habilitar, https e confiar somente na senha de acesso. Recomendo você só faça isto em uma rede privada, com controle estrito dos usuários que tem acesso a ela. Mas se você decidiu mesmo fazer isto, tem algumas configurações adicionais:

Você precisa alterar a linha "cert: false" no arquivo de configuração do code-server para

cert: true
Altere ainda a porta de acesso:
bind-addr: 0.0.0.0:443

Permita que o code-server escute a porta 443:
sudo setcap cap_net_bind_service=+ep /usr/lib/code-server/lib/node

Reinicie o code-server:
sudo systemctl restart code-server@$USER

Pronto você agora pode acessar o vscode usando o endereço IP (ou o nome da sua estação). No meu caso, posso acessar utilizando https://station01 como indicado abaixo. Note que como o certificado é auto-assinado, o navegador indica navegação não segura 😓.












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...