<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.verlab.dcc.ufmg.br/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Flavioro</id>
		<title>VeRLab Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.verlab.dcc.ufmg.br/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Flavioro"/>
		<link rel="alternate" type="text/html" href="http://www.verlab.dcc.ufmg.br/mediawiki/index.php/Special:Contributions/Flavioro"/>
		<updated>2026-05-19T05:18:52Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=Trabalhando_remotamente&amp;diff=1106</id>
		<title>Trabalhando remotamente</title>
		<link rel="alternate" type="text/html" href="http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=Trabalhando_remotamente&amp;diff=1106"/>
				<updated>2022-11-23T22:10:19Z</updated>
		
		<summary type="html">&lt;p&gt;Flavioro: Versão inicial da página&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A seguir, algumas dicas para quem precisar usar a infraestrutura dos laboratórios de maneira remota.&lt;br /&gt;
&lt;br /&gt;
Se você estiver de fora da rede do DCC (por exemplo, da sua casa e sem usar VPN), é necessário fazer login primeiro na máquina login.dcc.ufmg.br, para depois entrar na máquina específica do laboratório com que se quer trabalhar (e.g., roomba, epona).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acessando máquinas via SSH (shell) ==&lt;br /&gt;
&lt;br /&gt;
É possível usar o recurso de ''jump host'' do SSH para conectar na máquina desejada (e.g., roomba) passando por outra que esteja no caminho (e.g, login.dcc.ufmg.br).&lt;br /&gt;
&lt;br /&gt;
Em linha de comando, podemos fazer:&lt;br /&gt;
&lt;br /&gt;
 ssh -J SEU_USUARIO_DCC@login.dcc.ufmg.br SEU_USUARIO_VERLAB@NOME_DA_MAQUINA.verlab&lt;br /&gt;
&lt;br /&gt;
Por exemplo, para &amp;lt;code&amp;gt;flavioro&amp;lt;/code&amp;gt; se conectar à '''roomba''':&lt;br /&gt;
&lt;br /&gt;
 ssh -J flavioro@login.dcc.ufmg.br flavioro@roomba.verlab&lt;br /&gt;
&lt;br /&gt;
Ao executar, primeiro será solicitada a senha do usuário do DCC, depois a senha dele no laboratório (se forem diferentes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acessando máquinas via SFTP (nautilus) ==&lt;br /&gt;
&lt;br /&gt;
[[File:screenshot-from-gnome-files.png|500px|right|Screenshot do Gnome Files mostrando a aba &amp;quot;+ Outros Locais&amp;quot;, que permite o usuário &amp;quot;Conectar a servidor&amp;quot;, digitando um endereço SSH (dentre outras formas).]]&lt;br /&gt;
&lt;br /&gt;
Para fazer transferência de arquivos entre a sua máquina e aquela em que você executou seus experimentos, você pode usar SFTP. O Files (antigo Nautilus) do Gnome tem essa funcionalidade. Você pode testar digitando &amp;lt;code&amp;gt;ssh://SEU_USUARIO_DCC@login.dcc.ufmg.br&amp;lt;/code&amp;gt; no campo &amp;quot;Conectar a servidor&amp;quot; e ver que consegue ver os arquivos da sua HOME do DCC (depois de digitar sua senha).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contudo, não é possível usar a funcionalidade de ''jump host'' do SSH tão facilmente pela interface do Files. É necessário configurar o SSH para criar os destinos desejados e, então, acessar usando o nome do destino desejado. Para tanto, vamos precisar:&lt;br /&gt;
&lt;br /&gt;
# Abrir (criando ou alterando) o arquivo de configuração do SSH no seu computador&lt;br /&gt;
# nano ~/.ssh/config&lt;br /&gt;
# Escrever as configurações para (a) compartilhamento de conexão entre ''jumps'', (b) definir destino da rede DCC, definir 1 novo destino para cada máquina desejada do laboratório:&amp;lt;pre&amp;gt;ControlMaster auto&amp;amp;#10;ControlPath   ~/.ssh/control-%h-%p-%r&amp;amp;#10;Host dcc&amp;amp;#10;  HostName login.dcc.ufmg.br&amp;amp;#10;  User SEU_USUARIO_DCC&amp;amp;#10;&amp;amp;#10;Host roomba&amp;amp;#10;  HostName roomba.verlab&amp;amp;#10;  ProxyCommand ssh -W %h:%p dcc&amp;amp;#10;  User SEU_USUARIO_VERLAB&amp;amp;#10;Host wall-e&amp;amp;#10;  HostName 150.164.212.244&amp;amp;#10;  ProxyCommand ssh -W %h:%p dcc&amp;amp;#10;  User SEU_USUARIO_VERLAB&amp;amp;#10;Host NOME_DE_UMA_MAQUINA&amp;amp;#10;  HostName NOME_DE_UMA_MAQUINA&amp;amp;#10;  ProxyCommand ssh -W %h:%p dcc&amp;amp;#10;  User SEU_USUARIO_VERLAB&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Testar o acesso SSH (shell) para a rede do DCC e para os computadores do laboratório desejados:&amp;lt;pre&amp;gt;ssh dcc&amp;amp;#10;# deve pedir sua senha DCC para se conectar à login.dcc.ufmg.br&amp;amp;#10;ssh roomba&amp;amp;#10;#deve pedir primeiro a senha DCC, depois a do laboratório&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Na interface do Files (antigo nautilus), na aba &amp;quot;+ Outros locais&amp;quot;, no campo &amp;quot;Conectar a servidor&amp;quot;, digite &amp;lt;code&amp;gt;ssh://NOME_DE_UMA_MAQUINA&amp;lt;/code&amp;gt;. Por exemplo:&amp;lt;pre&amp;gt;ssh://roomba&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* Então, forneça sua senha do DCC&lt;br /&gt;
#* Depois do laboratório&lt;br /&gt;
#* Será possível visualizar, baixar/subir arquivos para sua HOME na máquina em que entrou:&lt;br /&gt;
&lt;br /&gt;
[[File:screenshot-files-mostrando-sftp-para-marvin.png|600px|center|Screenshot do Gnome Files mostrando a aba &amp;quot;+ Outros Locais&amp;quot; conectada à máquina marvin do laboratório, permitindo transmissão de arquivos.]]&lt;/div&gt;</summary>
		<author><name>Flavioro</name></author>	</entry>

	<entry>
		<id>http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=File:Screenshot-files-mostrando-sftp-para-marvin.png&amp;diff=1105</id>
		<title>File:Screenshot-files-mostrando-sftp-para-marvin.png</title>
		<link rel="alternate" type="text/html" href="http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=File:Screenshot-files-mostrando-sftp-para-marvin.png&amp;diff=1105"/>
				<updated>2022-11-23T22:09:04Z</updated>
		
		<summary type="html">&lt;p&gt;Flavioro: Screenshot do Gnome Files mostrando a aba &amp;quot;+ Outros Locais&amp;quot; conectada à máquina marvin do laboratório, permitindo transmissão de arquivos.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot do Gnome Files mostrando a aba &amp;quot;+ Outros Locais&amp;quot; conectada à máquina marvin do laboratório, permitindo transmissão de arquivos.&lt;/div&gt;</summary>
		<author><name>Flavioro</name></author>	</entry>

	<entry>
		<id>http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=File:Screenshot-from-gnome-files.png&amp;diff=1104</id>
		<title>File:Screenshot-from-gnome-files.png</title>
		<link rel="alternate" type="text/html" href="http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=File:Screenshot-from-gnome-files.png&amp;diff=1104"/>
				<updated>2022-11-23T21:37:39Z</updated>
		
		<summary type="html">&lt;p&gt;Flavioro: Screenshot do Gnome Files mostrando a aba &amp;quot;+ Outros Locais&amp;quot;, que permite o usuário &amp;quot;Conectar a servidor&amp;quot;, digitando um endereço SSH (dentre outras formas).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot do Gnome Files mostrando a aba &amp;quot;+ Outros Locais&amp;quot;, que permite o usuário &amp;quot;Conectar a servidor&amp;quot;, digitando um endereço SSH (dentre outras formas).&lt;/div&gt;</summary>
		<author><name>Flavioro</name></author>	</entry>

	<entry>
		<id>http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=Main_Page&amp;diff=1103</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=Main_Page&amp;diff=1103"/>
				<updated>2022-11-23T21:10:47Z</updated>
		
		<summary type="html">&lt;p&gt;Flavioro: /* Seja bem vindo a Wiki do VeRLab (Computer Vision and Robotics Laboratory - DCC - UFMG) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Seja bem vindo a Wiki do VeRLab (Computer Vision and Robotics Laboratory - DCC - UFMG) ==&lt;br /&gt;
&lt;br /&gt;
=== [[Regras de Conduta e Termo de Compromisso]] ===&lt;br /&gt;
=== [[Como rodar seu experimento]] ===&lt;br /&gt;
=== [[Trabalhando remotamente]] (página em construção) ===&lt;br /&gt;
=== [[Dicas para escrever e apresentar sua publicação]] ===&lt;br /&gt;
=== [http://www.verlab.dcc.ufmg.br/mediawiki/index.php/Special:AllPages  Relação de todas as páginas dessa wiki] ===&lt;br /&gt;
&lt;br /&gt;
== [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Robot Robôs] ==&lt;br /&gt;
&lt;br /&gt;
==== Small size Robots ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Main_Page/e-puck E-puck]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/HeRo HeRo]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Espcopter Espcopter]&lt;br /&gt;
&lt;br /&gt;
==== Mobile Robots ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Roomba Roomba]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Kobuki Kobuki]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Pioneer Pioneer - ActivMedia Robotics]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Jackal Jackal - Clearpath Robotics]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Tamiya Tamiya TXT-1]&lt;br /&gt;
&lt;br /&gt;
==== Robot Arm ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Kinova_Gen3_Ultra Gen3 Ultra lightweight robot arm - KINOVA]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Fenrir_Arm Fenrir]&lt;br /&gt;
&lt;br /&gt;
==== Multirotor ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/ARdrone Parrot AR.Drone 2.0]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Hummingbird AscTec Hummingbird]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Pelican AscTec Pelican]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Iris 3DR IRIS+]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/X8 3DR X8+]&lt;br /&gt;
&lt;br /&gt;
==== Fixed-Wing ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Aero 3DR Aero]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/E384 Drone E384]&lt;br /&gt;
&lt;br /&gt;
== [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Sensor Sensores] ==&lt;br /&gt;
==== Laser ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Laser_Hokuyo Hokuyo]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/LaserVelodyne Velodyne]&lt;br /&gt;
&lt;br /&gt;
==== IMU (unidades inerciais, acelerômetro, magnetometro, barômetro e etc ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/IMU IMUs]&lt;br /&gt;
&lt;br /&gt;
==== Câmeras ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Camera_360 Camera 360]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/GoPro GoPro]&lt;br /&gt;
* TODO Real Sense (RGBD)&lt;br /&gt;
* TODO Kinect One (Xbox One)&lt;br /&gt;
* TODO Kinect v2 (Xbox 360)&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Asus_Xtion_PRO Asus Xtion PRO]&lt;br /&gt;
&lt;br /&gt;
==== Realidade Virtual e Aumentada ====&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Hololens HoloLens]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Oculus_Rift Oculus Rift]&lt;br /&gt;
&lt;br /&gt;
== Atuadores ==&lt;br /&gt;
* Dynamixel AX-12&lt;br /&gt;
* Dynamixel MX-64AT&lt;br /&gt;
* TODO Motor Servo&lt;br /&gt;
* TODO Interface Haptica&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Placas Controladoras e Sensor Nodes ==&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Arduino Arduino]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/ESP32 ESP32]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/ESP8266 ESP8266]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/RaspberryPi Raspberry Pi]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Jetson_Nano Jetson nano - Nvidia]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/mote Sensor Nodes]&lt;br /&gt;
&lt;br /&gt;
== Softwares ==&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Singularity Singularity]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/ROS ROS - Robot Operacional System]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Virtualenv Python Virtual Enviroment]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/GitHub_do_Verlab GitHub do Verlab]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Sistema_Operacional_Windows S.O. Windows]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Sistema_Operacional_Linux S.O. Linux]&lt;br /&gt;
&lt;br /&gt;
== Equipamentos de Pesquisa ==&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Impressora3D Impressora 3D]&lt;br /&gt;
&lt;br /&gt;
== Equipamentos de Informática ==&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/EquipamentoInformatica/Cabo_de_Rede Montagem de Cabos de Rede]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/EquipamentoInformatica/Impressoras Impressoras]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/NoBreak No Break]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/EquipamentoInformatica/HD Teste HD - smartctl]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/EquipamentoInformatica/RotuladorPT80 Rotuladora PT80]&lt;br /&gt;
* [https://www.verlab.dcc.ufmg.br/mediawiki/index.php/EquipamentoInformatica/PastaTermica Aplicação e Escolha de Pasta Térmica]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
* TODO&lt;br /&gt;
* [http://www.crvindustrial.com/blog/como-medir-parafusos-corretamente como medir parafusos]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki has been installed.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] &lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flavioro</name></author>	</entry>

	<entry>
		<id>http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=Singularity3&amp;diff=1102</id>
		<title>Singularity3</title>
		<link rel="alternate" type="text/html" href="http://www.verlab.dcc.ufmg.br/mediawiki/index.php?title=Singularity3&amp;diff=1102"/>
				<updated>2022-11-21T14:43:15Z</updated>
		
		<summary type="html">&lt;p&gt;Flavioro: /* 2) Criar sua pasta de trabalho com seu nome de usuário (storage ou homeLocal) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Singularity CE 3.x (Community Edition) =&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;'''Esta será a versão utilizada na rede VeRLab/JLab a partir de mar/2022'''&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== Documentação oficial Singularity v3.x ====&lt;br /&gt;
* '''User Guide CE v3.9.x'''&lt;br /&gt;
** https://www.sylabs.io/docs/&lt;br /&gt;
* '''User Guide CE v3.9.x '''&lt;br /&gt;
** https://sylabs.io/guides/3.9/user-guide/&lt;br /&gt;
** https://sylabs.io/guides/3.9/user-guide/quick_start.html&lt;br /&gt;
* '''Adm Guide CE v3.9.x ''' (''Apenas para problemas mais específicos de segurança e instalação!'')&lt;br /&gt;
** https://sylabs.io/guides/3.9/admin-guide/&lt;br /&gt;
* ''' ''Definition Files'' '''&lt;br /&gt;
** https://sylabs.io/guides/3.9/user-guide/definition_files.html#definition-files&lt;br /&gt;
** '''Exemplos de ''Definition Files'' ''': https://github.com/sylabs/examples&lt;br /&gt;
* '''Exemplos de container prontos na ''Sylabs Cloud Library'' '''&lt;br /&gt;
** https://cloud.sylabs.io/library/sylabs/examples&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;IMPORTANTE&amp;lt;/span&amp;gt;: Diferença entre os 2 formatos suportados pelo &amp;lt;code&amp;gt;singularity build&amp;lt;/code&amp;gt;: ==&lt;br /&gt;
&lt;br /&gt;
==== '''Pasta &amp;lt;code&amp;gt;sandbox&amp;lt;/code&amp;gt;''': &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;INDICADO PARA FASE DE TESTES E MODIFICAÇÕES no container (instalar pacotes)&amp;lt;/span&amp;gt; ====&lt;br /&gt;
* Destinado para desenvolvimento interativo do container, quando ainda precisa fazer testes e não se sabe exatamente as configurações/ferramentas a serem usadas, logo o container pode ter novas instalações e alterações nos pacotes.&lt;br /&gt;
* Vantagem: vários arquivos e sub-pastas que são expansíveis automaticamente conforme os pacotes são instalados (opção --writable). O tamanho do disco é expansível conforme disponibilidade de espaço em disco da máquina host. &lt;br /&gt;
* Desvantagem: Execução mais lenta, muitos arquivos para copiar de uma máquina para outra e reproduzir o experimento &lt;br /&gt;
* writable (ch)root directory called a sandbox for interactive development ( --sandbox option)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== '''Arquivo único, extensão &amp;lt;code&amp;gt;.sif&amp;lt;/code&amp;gt;''': &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;SOMENTE LEITURA, NÃO é possível editar o container&amp;lt;/span&amp;gt; ====&lt;br /&gt;
* Destinado para fase de experimentos em massa (production)&lt;br /&gt;
* Vantagem: É uma imagem comprimida, ocupa menos espaço em disco e executa mais rápido que um container equivalente no formato sandbox. Também suporta criptografia&lt;br /&gt;
* Desvantagem: Não é possível instalar/modificar pacotes do container. Para instalar/editar algo, tem que transformar em '''&amp;quot;pasta sandbox&amp;quot;'''.&lt;br /&gt;
* compressed read-only Singularity Image File (SIF) format suitable for production (default)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Passo a Passo: Uso do Singularity CE v3.x ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Exemplos de interação mais usuais com o container singularity&lt;br /&gt;
&lt;br /&gt;
# Confirmar se a máquina tem singularity instalado e a versão&lt;br /&gt;
# Criar sua pasta de trabalho com seu nome de usuário (storage ou homeLocal)&lt;br /&gt;
# Criar seu container Singularity no formato &amp;quot;pasta sandbox&amp;quot;&lt;br /&gt;
# Corrigir o ownership da sua &amp;quot;pasta sandbox&amp;quot;&lt;br /&gt;
# Usar o shell do container em modo --writable --no-home (instalar, modificar e testar)&lt;br /&gt;
# Usar o shell em modo &amp;quot;somente leitura&amp;quot; para testar&lt;br /&gt;
# Usar o shell e montar uma pasta do host&lt;br /&gt;
# Converter um container singularity do formato &amp;quot;pasta sandbox&amp;quot; para o formato '''&amp;lt;code&amp;gt;.sif&amp;lt;/code&amp;gt;''' (imagem compactada)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1) Conferir se a máquina tem singularity instalado e a versão ====&lt;br /&gt;
    singularity --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2) Criar sua pasta de trabalho com seu nome de usuário (storage ou homeLocal) ====&lt;br /&gt;
Deve-se solicitar a um gestor da infraestrutura da rede VeRLab/JLab para criar uma pasta com seu nome de usuário e mudar o proprietário da pasta para seu usuário da rede do Verlab e o grupo DomainUsers (&amp;lt;code&amp;gt;gid=513&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Existem duas opções de locais para armazenar sua pasta de containers singularity:&lt;br /&gt;
* No serviço de storage da rede, na pasta &amp;lt;code&amp;gt;/srv/forge/fulano/&amp;lt;/code&amp;gt; ou  &lt;br /&gt;
* Localemente em alguma máquina, na pasta &amp;lt;code&amp;gt;/homeLocal/fulano&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasta no serviço de storage: &lt;br /&gt;
* Foi escolhido que das máquinas de processamento na rede, apenas '''EPONA(singularity 2.x) e GHOST(singularity 3.x)''' serão capazes de criar um container. &lt;br /&gt;
* Outra restrição é que essa permissão só pode ser executada na pasta &amp;lt;code&amp;gt;'''/srv/forge'''&amp;lt;/code&amp;gt;&lt;br /&gt;
    cd /srv/forge &lt;br /&gt;
    mkdir fulano&lt;br /&gt;
    chown -Rv fulano:513 fulano/&lt;br /&gt;
    cd /srv/forge/fulano&lt;br /&gt;
&lt;br /&gt;
Pasta no /homeLocal de alguma máquina:&lt;br /&gt;
    cd /homeLocal&lt;br /&gt;
    mkdir fulano&lt;br /&gt;
    chown -Rv fulano:513 fulano/&lt;br /&gt;
    cd /homeLocal/fulano&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3) Criar seu container Singularity no formato &amp;quot;pasta sandbox&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
O formato sandbox é usado para modificar e instalar pacotes no container&lt;br /&gt;
&lt;br /&gt;
    sudo singularity build --sandbox [pasta_destino] [container_origem]&lt;br /&gt;
&lt;br /&gt;
* A base usada na construção do container pode ter várias fontes diferentes online ou local:&lt;br /&gt;
** '''URI docker'''://  container do repositório online no ''Docker Hub'' ([https://www.verlab.dcc.ufmg.br/mediawiki/index.php/Singularity3#Docker_Hub:_Usar_reposit.C3.B3rio_de_M.C3.A1quinas_Container_Prontas.21 Mais dicas sobre usar URI Docker Hub])&lt;br /&gt;
** '''URI library''':// container do repositório online no ''Sylab Container Library''&lt;br /&gt;
** URI shub://  container do repositório online no ''Singularity Hub''&lt;br /&gt;
** ''' caminho para um outro container .sif ''' numa pasta local na própria máquina host&lt;br /&gt;
** '''caminho para um outro container em pasta ''sandbox'' ''' na própria máquina host&lt;br /&gt;
** '''caminho para um ''definition file'' '''no formato Singularity CE&lt;br /&gt;
&lt;br /&gt;
* Alguns exemplos:&lt;br /&gt;
&lt;br /&gt;
Usando o [https://hub.docker.com/_/ubuntu repositório do docker do ubuntu 20] como base para o container&lt;br /&gt;
    sudo singularity build --sandbox my_ubuntu20 docker://index.docker.io/library/ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
Usando o [https://hub.docker.com/_/python repositório docker do python 3.8] como base para o container (&lt;br /&gt;
    sudo singularity build --sandbox my_ubuntu20_py3 docker://python:3.8-bullseye&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4) Corrigir o ownership da sua &amp;quot;pasta sandbox&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Como seu container foi criado usando sudo singularity, o ownership da pasta vai ser root:root&lt;br /&gt;
Deve-se pedir para algum administrador da rede alterar o onweership para seu_usuario:DomainUsers&lt;br /&gt;
&lt;br /&gt;
a) descobrir o UID do usuário e o GID do grupo DomainUsers com o comando id:&lt;br /&gt;
    id nome_usuario&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b) mudar o ownership, recursivamente, de todos arquivos da pasta sandbox (-R=recursive, -v=verbose)&lt;br /&gt;
    sudo chown -Rv [uid]:513 pasta_sandbox/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 5) Usar o shell do container em modo --writable --no-home (instalar, modificar e testar) ====&lt;br /&gt;
&lt;br /&gt;
Executar seu singularity no formato &amp;quot;pasta sandbox&amp;quot; em &amp;quot;modo escrita&amp;quot; para instalar pacotes.&lt;br /&gt;
&lt;br /&gt;
Também é indicado usar a opção --no-home para não montar a /home/root da máquina host e evitar que os instaladores tentem salvar algo na home da máquina host. &lt;br /&gt;
( Link com [https://sylabs.io/guides/3.9/user-guide/bind_paths_and_mounts.html#using-no-home-and-containall-flags outras dicas sobre --no-home] )&lt;br /&gt;
&lt;br /&gt;
Se o instalador tentar usar a /home/root, deve-se ler a documentação do instalador para optar por pastas alternativas dentro da estrutura do container como /usr/bin, /usr/local, /opt/&lt;br /&gt;
    sudo singularity shell --writable --no-home my_container/&lt;br /&gt;
&lt;br /&gt;
* Use &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; somente quando necessário modificar o container com instalação de pacotes e configuração&lt;br /&gt;
* Foi escolhido que das máquinas de processamento na rede, apenas '''EPONA e GHOST''' serão capazes de criar um container e abrir em modo edição. &lt;br /&gt;
* Outra restrição é que essa permissão só pode ser executada na pasta &amp;lt;code&amp;gt;'''/srv/forge'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6) Usar o shell em modo &amp;quot;somente leitura&amp;quot; para testar ====&lt;br /&gt;
Executar seu singularity no formato &amp;quot;pasta sandbox&amp;quot; em modo &amp;quot;somente leitura&amp;quot; para testar:&lt;br /&gt;
    singularity shell my_container/&lt;br /&gt;
Em geral, nesse momento também é necessário montar uma pasta externa ao container para salvar dados e resultados, isso é explicado no pŕoximo item&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 7) Montar /homeLocal/usuario dentro container para salvar resultados (opção &amp;lt;code&amp;gt; --bind &amp;lt;/code&amp;gt;) ====&lt;br /&gt;
O comportamento padrão do SingularityCE é montar as pastas /home/$USER, /tmp, and $PWD da máquina host dentro do container ([https://sylabs.io/guides/3.9/user-guide/bind_paths_and_mounts.html#system-defined-bind-paths algumas outras pastas também] ).&lt;br /&gt;
&lt;br /&gt;
Para acessar outros diretórios da máquina host dentro do container usa-se a sintaxe&lt;br /&gt;
    singularity shell --bind [/absolute/path/host/]:[/absolute/path/inside/container]&lt;br /&gt;
&lt;br /&gt;
O caminho de montagem dentro do container é opcional e se for omitido, é usado o mesmo caminho do host, porém o usuário deve ter permissão para acessar a pasta de montagem. No exemplo mostra como deixar o path /homeLocal/fulano acessível  dentro do container em /mnt:&lt;br /&gt;
    singularity shell --bind /homeLocal/fulano:/mnt my_container/&lt;br /&gt;
&lt;br /&gt;
Também é possivel combinar as opções do --bind com --writable --no-home, neste caso, o root precisa ter permissão para acessar a pasta de montagem:&lt;br /&gt;
    sudo singularity shell --writable --no-home --bind /homeLocal/fulano:/mnt my_container/&lt;br /&gt;
&lt;br /&gt;
* link sobre a opção &amp;lt;code&amp;gt;[https://sylabs.io/guides/3.9/user-guide/quick_start.html#working-with-files '''--bind''']&amp;lt;/code&amp;gt;&lt;br /&gt;
* link com [https://sylabs.io/guides/3.9/user-guide/bind_paths_and_mounts.html#user-defined-bind-points outras dicas sobre --bind])&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 8) Converter um container singularity do formato '''&amp;quot;pasta sandbox&amp;quot;''' para o formato '''&amp;lt;code&amp;gt;.sif&amp;lt;/code&amp;gt;''' (imagem compactada) ====&lt;br /&gt;
&lt;br /&gt;
Depois de pronta, a máquina container, pode ser convertida do formato &amp;quot;pasta sandbox&amp;quot; para o formato de &amp;lt;code&amp;gt;.sif&amp;lt;/code&amp;gt;) isso permite que ela execute mais rápido, reduz o espaço em disco.&lt;br /&gt;
&lt;br /&gt;
O container pronto pode ser armazenado na sua pasta /home/nome_usuario da rede, assim pode ser executada como leitura de qualquer máquina de processamento que o usuário logar.&lt;br /&gt;
&lt;br /&gt;
1) Para converter do formato '''&amp;quot;pasta sandbox&amp;quot;''' para o formato '''&amp;lt;code&amp;gt;.sif&amp;lt;/code&amp;gt;'''. [https://sylabs.io/guides/3.9/user-guide/build_a_container.html#converting-containers-from-one-format-to-another Dicas sobre conversão de formatos das máquinas container]:&lt;br /&gt;
    sudo singularity build [container_destino] [container_origem]&lt;br /&gt;
    sudo singularity build my_container-compact.sif my_container/&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Limitar recursos do container (RAM, Core's, network e etc) ==&lt;br /&gt;
&lt;br /&gt;
É possível criar um arquivo '''cgroups.toml''' e limitar (ou medir) recursos usados pelo container. Por exemplo, limitar o uso de RAM para não esgotar os recursos da máquina host. &lt;br /&gt;
&lt;br /&gt;
Segue o texto original e os links com mais informações:&lt;br /&gt;
&lt;br /&gt;
''The cgroups (control groups) functionality of the Linux kernel allows you to limit and meter the resources used by a process, or group of processes. Using cgroups you can limit memory and CPU usage. You can also rate limit block IO, network IO, and control access to device nodes.''&lt;br /&gt;
&lt;br /&gt;
* https://sylabs.io/guides/3.9/admin-guide/configfiles.html#cgroups-toml&lt;br /&gt;
&lt;br /&gt;
* https://sylabs.io/guides/3.9/admin-guide/configfiles.html&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Docker Hub: Usar repositório de Máquinas Container Prontas! ==&lt;br /&gt;
* Docker Hub: várias imagens prontas com ferramentas instaladas&lt;br /&gt;
&lt;br /&gt;
    https://hub.docker.com/&lt;br /&gt;
&lt;br /&gt;
Por exemplo pode-se buscar no google: &amp;quot;docker hub opencv ubuntu&amp;quot;, uma das respostas será o repositório &lt;br /&gt;
&lt;br /&gt;
    https://hub.docker.com/r/jjanzic/docker-python3-opencv&lt;br /&gt;
&lt;br /&gt;
Para usar um endereço de imagem docker hub e criar seu container singularity, usa-se o '''formato docker://REPOSITORIO:TAGS'''&lt;br /&gt;
&lt;br /&gt;
No caso do repósitório exemplo, ao abrir o link, vai encontrar diversas TAGS listadas na pagina: &lt;br /&gt;
&lt;br /&gt;
    List of available docker tags:&lt;br /&gt;
    opencv-4.1.0 (latest branch)&lt;br /&gt;
    contrib-opencv-4.1.0 (opencv_contrib branch)&lt;br /&gt;
    opencv-4.0.1&lt;br /&gt;
    contrib-opencv-4.0.1&lt;br /&gt;
    opencv-4.0.0&lt;br /&gt;
    contrib-opencv-4.0.0&lt;br /&gt;
    opencv-3.4.2&lt;br /&gt;
    contrib-opencv-3.4.2&lt;br /&gt;
    (...)&lt;br /&gt;
&lt;br /&gt;
Assim para criar o container usando &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; e copiando do repositório exemplo a tag &amp;lt;code&amp;gt;opencv-4.0.1&amp;lt;/code&amp;gt;, tem-se:&lt;br /&gt;
&lt;br /&gt;
    sudo singularity build --sandbox opencv-base docker://jjanzic/docker-python3-opencv:opencv-4.0.1&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PIP: Python Package Installer ==&lt;br /&gt;
O '''Python Package Installer''', também conhecido como PIP, é responsável por instalar os pacotes Python criados pela comunidade. Dentro do singularity + moosefs, ele tem um comportamento anômalo, não instalando nas pastas padrão. Tais pastas &amp;quot;''padrão''&amp;quot; são especificadas diretamente no código-fonte do python, mais precisamente no módulo ''sys''.&lt;br /&gt;
Faz-se portanto necessário utilizar a flag &amp;lt;code&amp;gt;-t/--target&amp;lt;/code&amp;gt; ao instalar os pacotes via pip, apontando para a pasta ''dist-packages'' da distribuição utilizada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; pip install &amp;lt;package&amp;gt; -t /usr/local/lib/python2.7/dist-packages/ &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links dos Comandos Básicos ==&lt;br /&gt;
https://www.sylabs.io/guides/3.9/user-guide/quick_start.html#interact-with-images&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://sylabs.io/guides/3.9/user-guide/build_a_container.html#build-a-container '''build''']&amp;lt;/code&amp;gt;: Cria uma imagem para a máquina container&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt; [https://www.sylabs.io/guides/3.9/user-guide/quick_start.html#shell '''shell''']&amp;lt;/code&amp;gt;: Executa a imagem da máquina container e permite a interação no prompt do shell&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://www.sylabs.io/guides/3.9/user-guide/quick_start.html#executing-commands '''exec''']&amp;lt;/code&amp;gt;: Executa um comando na máquina container, em segundo plano, e apresenta o resultado no shell da máquina host&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://www.sylabs.io/guides/3.9/user-guide/quick_start.html#running-a-container '''run''']&amp;lt;/code&amp;gt;: Executa ações e scripts configurados no container, como se fosse um executável.&lt;br /&gt;
&lt;br /&gt;
* opção &amp;lt;code&amp;gt;[https://sylabs.io/guides/3.9/user-guide/quick_start.html#working-with-files '''--bind''']&amp;lt;/code&amp;gt;: Permite acessar pastas e arquivos (path) da máquina host dentro da máquina container ([https://sylabs.io/guides/3.9/user-guide/bind_paths_and_mounts.html#user-defined-bind-points outras dicas sobre --bind])&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;'''build'''&amp;lt;/code&amp;gt;: Criar uma máquina container ==&lt;br /&gt;
&lt;br /&gt;
==== Criar uma máquina container editável (para instalar pacotes) ====&lt;br /&gt;
* Deve-se usar um singularity no formato &amp;quot;pasta sandbox&amp;quot; (estrutura de diretórios). [https://www.sylabs.io/guides/2.5.1/user-guide/quick_start.html#sandbox-directory Dicas sobre a opção &amp;lt;code&amp;gt;--sandbox&amp;lt;/code&amp;gt;].&lt;br /&gt;
* Criar singularity sandbox usando o repositório Ubuntu 18.04 do Docker Hub: &lt;br /&gt;
&lt;br /&gt;
    sudo singularity build --sandbox my_container/ docker://index.docker.io/library/ubuntu:20.04&lt;br /&gt;
    sudo singularity build --sandbox my_container/ docker://index.docker.io/library/ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
* Exemplo singularity sandbox usando um repositório qualquer do dockerhub&lt;br /&gt;
    sudo singularity build --sandbox my_container/ docker://repository_name:tag&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== outros exemplos menos usados, pois criam container's não editável ====&lt;br /&gt;
* Criar uma máquina container em formato &amp;lt;code&amp;gt;.img&amp;lt;/code&amp;gt; (read-only) a partir de um repositório Docker Hub: &lt;br /&gt;
    sudo singularity build my_ubuntu.sif docker://index.docker.io/library/ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
Deve-se usar o formato &amp;lt;code&amp;gt;.sif&amp;lt;/code&amp;gt; (writable) a partir de um repositório Docker Hub: &lt;br /&gt;
    sudo singularity build my_ubuntu.sif docker://index.docker.io/library/ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
* Converter ou Criar uma máquina container em formato de imagem a partir de uma pasta sandbox:&lt;br /&gt;
    sudo singularity build my_ubuntu.sif my_container/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;'''shell'''&amp;lt;/code&amp;gt;: Executar a máquina container e interagir no shell: ==&lt;br /&gt;
&lt;br /&gt;
* Executar a máquina container no shell, sem salvar modificações feitas na sessão:&lt;br /&gt;
    singularity shell my_container/&lt;br /&gt;
    singularity shell my_ubuntu.sif/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;opção '''--writable'''&amp;lt;/code&amp;gt;: Permitir alterar o container em formato pasta sandbox: ==&lt;br /&gt;
&lt;br /&gt;
* Só é possivel alterar um container em formato &amp;lt;code&amp;gt;sandbox&amp;lt;/code&amp;gt;, uma boa prática é adicionar a opção --no-home é importante para não ocorrer a montagem automática da /home do root, e evitar que instaladores tentem usar essa pasta para instalação de pacotes.&lt;br /&gt;
    sudo singularity shell --writable --no-home my_container/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;opção '''--bind'''&amp;lt;/code&amp;gt;:Montando pastas da máquina host para acessar dentro da máquina container ==&lt;br /&gt;
A pasta do home do usuário é montada automaticamente pelo singularity dentro da máquina container ([https://sylabs.io/guides/3.9/user-guide/bind_paths_and_mounts.html#system-defined-bind-paths algumas outras também ] ), mas se for necessário acessar outra pasta no disco da máquina host, deve-se usar a opção &amp;lt;code&amp;gt;[https://sylabs.io/guides/2.5/user-guide/bind_paths_and_mounts.html#specifying-bind-paths --bind]&amp;lt;/code&amp;gt; para indicar o caminho (path) a ser usado. O usuário precisa ter permissão de leitura e escrita na pasta da máquina host.&lt;br /&gt;
&lt;br /&gt;
* Executar a máquina container no shell e montar o caminho /homeLocal/fulano da máquina host dentro da máquina container &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;singularity shell --bind /homeLocal/fulano:/mnt my_container/&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Flavioro</name></author>	</entry>

	</feed>