Action.Net no Linux

O artigo mostra como instalar e utilizar algumas das funcionalidades do Action.Net no linux, comeƧando com a preparaĆ§Ć£o do ambiente atĆ© a execuĆ§Ć£o de mĆ³dulos do produto. Este artigo se baseia no uso de uma mĆ”quina virtual Debian i386. No entanto, todos os passos descritos podem ser utilizados em outras distribuiƧƵes linux tanto em mĆ”quinas virtuais como em fĆ­sicas e em dispositivos Raspberry Pi.

AtenĆ§Ć£o: Os comandos de instalaĆ§Ć£o apresentados neste documento podem variar de acordo com a distribuiĆ§Ć£o Linux utilizada pois cada distribuiĆ§Ć£o utiliza um package manager especĆ­fico. Por exemplo, no Debian e no Ubuntu Ć© utilizado o apt, no Arch e Manjaro Ć© utilizado o pacmac e no Fedora Ć© utilizado o dnf.

AtenĆ§Ć£o: Este artigo Ć© baseado em testes em mĆ”quinas virtuais linux, utilizando o Oracle VM VirtualBox como virtualizador. Embora seja possĆ­vel utilizar o Microsoft Hyper-V e o VmWare Workstation, todas as imagens neste artigo referem-se ao VirtualBox. Para aplicar configuraƧƵes especĆ­ficas aplicadas aqui, em outros virtualizadores, refira-se ao manual de uso dos mesmos.

Ā 

Conceitos iniciais

O ambiente Linux Ć© diferente de outros sistemas operacionais como o Windows ou o Mac OS. Ɖ necessĆ”rio entender alguns conceitos para conseguir fazer a configuraĆ§Ć£o do Action.Net neste sistema operacional. Neste item, abordaremos alguns destes conceitos. Sinta-se Ć  vontade para pular este item e retornar apenas quando tiver alguma dĆŗvida.

A seguir seguem alguns conceitos:

Linux - Sistema operacional que utiliza o Kernel Linux, criado por Linus Torvald.

DistribuiƧƵes - SĆ£o implementaƧƵes diferentes do sistema sendo executadas sobre o Kernel Linux. Temos distribuiƧƵes Major que sĆ£o distribuiƧƵes mais estĆ”veis, com um bom time de desenvolvimento por trĆ”s, assim como Ubuntu, Debian, Slackware, Fedora (ex-Red Hat), OpenSuse, CentOs, Arch, Alpine, Mint, Gentoo e FreeBsd. TambĆ©m temos distribuiƧƵes Minor que podem ter equipes menores de desenvolvimento por trĆ”s e que derivam das distribuiƧƵes major. Por exemplo, Kubuntu e Neon derivam do Ubuntu, Manjaro deriva do Arch, entre outras.

Interface GrĆ”fica - Cada distribuiĆ§Ć£o, quando desenvolvida, pode utilizar uma ou outra variaĆ§Ć£o de interfaces grĆ”ficas, que sĆ£o desenvolvidas de forma modular para se adequar Ć s distribuiƧƵes. Entre as interfaces grĆ”ficas disponĆ­ves e de maior sucesso estĆ£o o KDE e o Gnome. O KDE Ć© uma interface mais parecida com o Windows e o Gnome Ć© uma interface criada mais recentemente e com elementos visuais diferentes. Entre outras interfaces, podemos citar o Unity (utilizada pelo Ubuntu), Mate, Cinnamon, Xfce, entre outras.

Terminal de comandos - O terminal de comandos do Linux Ć© uma ferramenta poderosa e, muito utilizada pelos usuĆ”rios. Tanto leigos quanto experts no sistema operacional acabam utilizando esta ferramenta para todas as suas necessidades. Nas buscas por dĆŗvidas relacionadas a utilizaĆ§Ć£o das distros, a grande maioria de soluƧƵes envolve a utilizaĆ§Ć£o do terminal. Adicionalmente, inĆŗmeras sĆ£o as aplicaƧƵes que utilizam apenas o terminal do Linux e sequer instalam uma interface grĆ”fica. Esta Ć© uma ferramenta que serĆ” muito utilizada neste artigo.

sudo - Refere-se ao super usuĆ”rio (administrador) do sistema operacional. Este tem permissƵes ilimitadas dentro do sistema. InĆŗmeras distribuiƧƵes Linux adicionam usuĆ”rios ao sistema operacional sem permissƵes durante a instalaĆ§Ć£o do sistema.

Gerenciamento de Pacotes - No Linux, a instalaĆ§Ć£o de novos aplicativos ou mĆ³dulos de sistema Ć© feita, na grande maioria das vezes, a partir de um gerenciador de pacotes do sistema. Cada distribuiĆ§Ć£o utiliza um gerenciador de pacotes especĆ­fico. Por exemplo, no Debian e no Ubuntu Ć© utilizado o apt, no Arch e Manjaro Ć© utilizado o pacmac e no Fedora Ć© utilizado o dnf.

JĆ” existem inĆŗmeros gerenciadores de pacotes visuais, prĆ©-instalados pelas distribuiƧƵes. Todavia, o mais comum Ć© utilizar o terminal para fazer a instalaĆ§Ć£o e a atualizaĆ§Ć£o de pacotes.

Configurando o ambiente

CriaĆ§Ć£o de mĆ”quina virtual

Inicialmente, Ć© necessĆ”rio baixar uma imagem ISO de alguma distribuiĆ§Ć£o Linux e criar uma mĆ”quina virtual utilizando esta imagem. Ɖ possĆ­vel criar VMs linux em qualquer hiper-virtualizador capaz de executar o sistema operacional como o VirtualBox, Hyper-V, VmWare, ProxMox, Zen Server, etcā€¦

ApĆ³s baixar a imagem, configure uma nova VM de acordo com o manual de utilizaĆ§Ć£o do seu virtualizador. Para este artigo especĆ­fico, criamos uma mĆ”quina virtual Debian, plataforma i386, com 8Gb de memĆ³ria, 4 processadores virtuais e 100Gb de armazenamento (dinamicamente alocĆ”vel). Outros testes tambĆ©m foram realizados utilizando Linux Ubuntu, plataforma x64 e com as mesmas especificaƧƵes anteriores de recursos e com resultados idĆŖnticos.

Atribuir permissƵes ao usuƔrio

Muitas distribuiƧƵes Linux, por padrĆ£o, adicionam um usuĆ”rio para acesso ao sistema sem as permissƵes de administraĆ§Ć£o necessĆ”rias para instalaĆ§Ć£o e atualizaĆ§Ć£o de pacotes de software e de sistema. Esta Ć© uma polĆ­tica de seguranƧa utilizada por estes sistemas operacionais.

Para adicionar um novo usuĆ”rio ao grupo de administraĆ§Ć£o sudo, abra o terminal de comandos do seu linux.

Para fazer o login no terminal com o superusuƔrio, execute o comando:

Em seguida execute o comando a seguir para atribuir ao usuĆ”rio criado privilĆ©gios de super usuĆ”rio, substituindo a entrada <usuario> pelo nome do usuĆ”rio criado na instalaĆ§Ć£o:

Em seguida, reinicie o sistema operacional para que as configuraƧƵes sejam aplicadas.

AtualizaĆ§Ć£o do sistema operacional

Como boa prĆ”tica, Ć© necessĆ”rio atualizar o sistema operacional e seus mĆ³dulos antes de instalar um novo pacote, como o Mono ou o Net-Tools.

Execute os seguintes comandos em sequĆŖncia e confirme a atualizaĆ§Ć£o caso o terminal peƧa confirmaĆ§Ć£o (digitando ā€œYā€).

Caso o Linux solicite a reinicializaĆ§Ć£o do sistema, reinicie-o e depois execute os prĆ³ximos passos.

InstalaĆ§Ć£o do Net-tools

O pacote net-tools instala o comando ifconfig para visualizaĆ§Ć£o do endereƧo IP da mĆ”quina, entre outros comandos.

Execute o comando a seguir para instalar o net-tools

Caso o Linux solicite a reinicializaĆ§Ć£o do sistema, reinicie-o e depois execute os prĆ³ximos passos.

InstalaĆ§Ć£o do Mono

O que Ć© o Mono?

O pacote mono Ʃ o pacote que executa aplicativos .Net em vƔrias plataformas.

Para explicar melhor o que Ć© o Mono e qual sua participaĆ§Ć£o dentro do ecosistema da plataforma .Net, o melhor Ć© fazer uma diferenciaĆ§Ć£o entre ele e as demais implementaƧƵes do padrĆ£o .Net Standard. O padrĆ£o .Net Standard Ć© um padrĆ£o open source criado pela Microsoft para implementar as funcionalidades da plataforma .Net. Qualquer desenvolvedor (ou time de desenvolvedores), pode implementar este padrĆ£o. Dentre as iniciativas que jĆ” tiveram este trabalho, temos o .Net Framework, o Mono e o .Net Core.

O .Net Framework Ć© uma implementaĆ§Ć£o da prĆ³pria Microsoft de todo o .Net Standard que provĆŖ uma grande variedade de funcionalidades para operaĆ§Ć£o em ambientes Windows em Workstations, Server e na nuvem. Ɖ a implementaĆ§Ć£o original do .Net.

O Mono Ć© uma implementaĆ§Ć£o open source, multi-plataforma do .Net Standard com apenas o essencial para executar aplicaƧƵes .Net em diferentes sistemas operacionais como Android, IOS e com boa aceitaĆ§Ć£o para o Linux. Ɖ uma implementaĆ§Ć£o mais antiga se comparada com o .Net Core.

O .Net Core Ć© uma implementaĆ§Ć£o recente (a partir de 2014) do .Net Standard. Ɖ open source e multi-plataforma assim como o Mono. Criada para a era da Nuvem e com uma maior compatibilidade com o .Net. Ɖ suportada em diferentes sistemas operacionais como o Linux, MacOs e Windows.

InstalaĆ§Ć£o do mono no Debian

A seguir serĆ” mostrado como instalar o Mono na distribuiĆ§Ć£o Debian. Todavia, o Mono Ć© compatĆ­vel com diversas distribuiƧƵes Major como o Ubuntu, Fedora, Raspbian e CentOs. Para informaƧƵes de como instalar o mono para estas distribuiƧƵes, bem como de mais informaƧƵes sobre este pacote, clique no link abaixo para visitar a pĆ”gina do projeto Mono.

https://www.mono-project.com/download/stable/#download-lin

Para instalar o mono no debian, inicialmente Ć© necessĆ”rio adicionar seu repositĆ³rio ao sistema operacional. Execute o seguinte comando:

ApĆ³s a adiĆ§Ć£o do repositĆ³rio, Ć© possĆ­vel instalar o pacote executando o seguinte comando:

ApĆ³s a instalaĆ§Ć£o, Ć© possĆ­vel verificar se o Mono foi realmente instalado com o comando de verificaĆ§Ć£o de versĆ£o do mesmo:

Este comando deve trazer a versĆ£o do mono recĆ©m instalada. Caso contrĆ”rio, tente instalar novamente seguindo o passo a passo do site do projeto mono a partir do link acima.

ConfiguraĆ§Ć£o da rede

No caso de uso de mĆ”quinas virtuais, Ć© importante utilizar comutadores de rede em modo Bridge. Caso contrĆ”rio, alguns erros ocorrem quanto a utilizaĆ§Ć£o do Action.Net em algumas portas especĆ­ficas.

No VirtualBox, desligue a mĆ”quina virtual, clique no botĆ£o de configuraƧƵes da mĆ”quina e, na seĆ§Ć£o Network, certifique-se que o adaptador de rede utilizado estĆ” conectado Ć  placa de rede em modo Bridge.

ConfiguraƧƵes de rede da mƔquina virtual

Em seguida, inicie a mƔquina virtual novamente.

InstalaĆ§Ć£o do OpenSSH

Ɖ necessĆ”rio instalar o OpenSSH no Linux para fazer a transferĆŖncia de arquivos do Action.Net do Windows para o Linux.

Execute o seguinte comando para instalar o OpenSSH:

Copiar arquivos do Action.Net

Compactar pasta IoT

Inicialmente, Ć© necessĆ”rio criar um arquivo tipo .zip contendo a pasta IoT da versĆ£o desejada do Action.Net. Esta pasta estĆ” localizada na pasta de instalaĆ§Ć£o do produto no Windows (normalmente em C:\Program Files (x86)\SPIN\Action.NET).

Em uma mƔquina Windows que tenha o Action.Net instalado, abra o gerenciador de arquivos, procure a pasta IoT e a compacte em um arquivo tipo .zip. Caso queira, copie o arquivo para qualquer outra pasta desejada.

Copiar arquivo compactado para o Linux

Em seguida, abra o terminal do windows, navegue atĆ© a pasta onde estĆ” o arquivo .zip criado e execute o seguinte comando para copiar o arquivo do Windows para o Linux, substituindo os parĆ¢metros descritos abaixo:

Onde:

  • <username> - usuĆ”rio do linux com permissƵes super;

  • <ip> - ip da mĆ”quina linux; e

  • <folder> - pasta no linux onde o arquivo serĆ” copiado.

Ā 

Exemplo:

Movendo arquivos no Linux

Caso seja necessƔrio mover um arquivo no Linux, Ʃ possƭvel utilizar o comando mv sourceFile DestinyFile.

Exemplo:

Descompactar arquivos no Linux

Em seguida, Ć© necessĆ”rio descompactar o arquivo copiado. Para realizar esta operaĆ§Ć£o no Linux, utiliza o seguinte comando unzip Iot.zip.

Executando aplicativos Action.Net no Linux

Para executar qualquer projeto no Linux, Ʃ necessƔrio inicialmente criar um projeto do tipo Linux no Action.Net que estƔ instalado no Windows e, em seguida, copiƔ-lo.

Na tela inicial do Action.Net, clique em New Project para abrir o Wizard de criaĆ§Ć£o de projetos. Asim que o wizard abrir, escolha um nome e selecione a opĆ§Ć£o Linux / Mono no Target Framework.

ApĆ³s criar o projeto e fazer todas as configuraƧƵes necessĆ”rias no novo projeto, Ć© necessĆ”rio copiĆ”-lo para o Linux. O Action.net faz esta cĆ³pia nativamente, no entanto, Ć© necessĆ”rio executar o tProjectServer no Linux.

TProjectServer.exe

Para executar o TProjectServer pelo terminal do Linux, primeiro navegue para dentro do diretĆ³rio ā€œIot/ProjectServerā€ com o comando cd IoT/ProjectServer a partir da pasta inicial do usuĆ”rio.

Em seguida, execute o comando mono para inicializaĆ§Ć£o do TProjectServer utilizando permissƵes de super usuĆ”rio:

ApĆ³s a execuĆ§Ć£o do comando, a tela do ProjectServer para Linux Ć© mostrada e a mensagem ā€œProjectServer: Waiting client connectionsā€¦ā€ Ć© mostrada no terminal.

Licenciando o Action.Net no linux

Para executar os aplicativos do Action.Net no linux, tambƩm Ʃ necessƔrio licenciƔ-lo.

A partir do Project Server executando no linux, clique no botĆ£o Get, localizado ao fundo do aplicativo Ć  esquerda, para gerar o Sitecode.

O processo de geraĆ§Ć£o do licensekey Ć© o mesmo para a instalaĆ§Ć£o do Action.Net. Para dĆŗvidas quanto a este processo, acione o suporte da SPIN pelo email do suporte SPIN.

Para aplicar o license key recebido, Ć© possĆ­vel fazer de duas formas:

1- Fazendo o download do arquivo no linux, clicando no botĆ£o Apply, localizado ao lado do botĆ£o Get mencionado anteriormente e selecionando o arquivo da licenƧa; ou

2- A partir da tela inicial do Action.Net na mĆ”quina Windows, abrir a aba Server e informar o IP do linux. Em seguida, abrir a aba License e clicar no botĆ£o Load License key. O Action.Net irĆ” aplicar a licenƧa Ć  mĆ”quina linux remota.

Copiando projetos para o Linux

O Action.Net tem uma funcionalidade de cĆ³pia de arquivos e projetos para o linux nativa da ferramenta. Esta funcionalidade pode ser acessada a partir da aba Server da tela inicial do produto.

Insira no campo Remote o endereƧo IP da mĆ”quina Linux e clique no botĆ£o Connect.

ApĆ³s conectar, a tela apresenta os botƵes Update e Upload Project.

O botĆ£o Update faz a cĆ³pia de arquivos da pasta C:/InstallFolder/Action.Net/an-x.x/Iot/ para o Linux. Ɖ usado para atualizar arquivos do produto entre o Windows e o Linux.

O botĆ£o Upload Project faz a cĆ³pia de projetos (.tproj) para o linux. ApĆ³s clicar este botĆ£o, selecione o projeto que deseja enviar. Em seguida, a tela de confirmaĆ§Ć£o de local a copiar Ć© mostrada. Confirme o local e o Action.net irĆ” copiar o projeto para a pasta.

Executando projetos

Ɖ possƭvel executar projetos enviado ao linux a partir da tela do ProjectServer para o linux.

Inicialmente, clique no botĆ£o Projectsā€¦ e selecione o projeto desejado. O projeto selecionado Ć© mostrado no campo Project Startup Settings.

Em seguida, execute o projeto clicando no botĆ£o Run. O ProjectServer irĆ” executar o tStartup e o tServer e executar todos os mĆ³dulos configurados para execuĆ§Ć£o do projeto.

Ā 

Outros processos

TMQTTBroker.exe

Para executar o Mqtt Broker, no terminal do Linux, navegue para dentro do diretorio IoT/Runtime e rode o TMQTTBroker.exe com o mono usando o seguinte comando:

Ā 

Ā 

Nesta pagina:

Ā