Utilizando contêineres (Docker/Podman)
Como os pacotes NeuroFedora estão disponíveis nos repositórios do Fedora, eles também podem ser usados em contêineres personalizados usando os contêineres base do Fedora. A comunidade Fedora disponibiliza imagens de contêiner para todas as versões do Fedora, que podem ser obtidas em registros públicos de imagens de contêiner padrão, como o link:https://hub.docker.com/_/fedora [Docker Hub].
O Podman é uma alternativa ao Docker que não requer privilégios de administrador. Ele pode ser usado como substituto direto do Docker na maioria dos casos. Em um sistema Fedora, o Podman pode ser instalado usando o comando dnf.
sudo dnf install podman
Para usar o Docker, consulte a documentação do Docker. O Fedora também inclui o Toolbox, que permite o uso de ambientes de linha de comando em contêineres. O Toolbox pode ser instalado usando o comando dnf:
sudo dnf instalar caixa de ferramentas
Você pode aprender mais sobre isso no link: https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/ [Página de documentação do Fedora Silverblue].
Utilizando os contêineres de lançamento do Fedora de forma interativa
Embora a imagem do contêiner CompNeuro inclua uma vasta gama de ferramentas para neurociência computacional, qualquer pacote dos repositórios do Fedora pode ser usado em um contêiner utilizando os contêineres base do Fedora. Um exemplo simples de como usar um contêiner do Fedora para utilizar um pacote do NeuroFedora é mostrado abaixo. Aqui, usamos a imagem do contêiner base do Fedora, instalamos o pacote necessário e testamos seu funcionamento.
Primeiro, baixamos a imagem base do contêiner Fedora:
podman pull fedora:latest
Nome abreviado "fedora" resolvido para um alias de nome abreviado registrado (origem: /etc/containers/registries.conf.d/shortnames.conf)
Tentando baixar registry.fedoraproject.org/fedora:latest...
Obtendo assinaturas da origem da imagem
Copiando blob 8fde7942e775 [--------------------------------------] 0.0b / 0.0b
Cópia da configuração 79fd58dc76 concluída
Gravando manifesto no destino da imagem
Armazenando assinaturas
79fd58dc76113dac76a120f22cadecc3b2d1794b414f90ea368cf66096700053
Em seguida, executamos a imagem interativamente.
podman run -it fedora:latest /bin/bash
# terminal no contêiner
[root@95b9db71272f /]#
Isso nos fornece um contêiner com o qual podemos trabalhar interativamente. Podemos instalar um pacote aqui da mesma forma que faríamos em uma instalação do Fedora, por exemplo:
[root@95b9db71272f /]# sudo dnf install python3-nest
Última verificação de expiração de metadados: há 0:06:14 em Qua, 6 de Jan de 2021, 10:41:28.
Dependências resolvidas.
==================================================================================
Pacote Arquitetura Versão Repositório Tamanho
================================================================================
Instalando:
python3-nest x86_64 2.20.1-5.fc33 updates 518 kB
Instalando dependências:
....
....
Concluído!
Em seguida, podemos executar os comandos normalmente:
[root@95b9db71272f /]# ipython
Python 3.9.0 (padrão, 6 de out de 2020, 00:00:00)
Digite 'copyright', 'credits' ou 'license' para obter mais informações
IPython 7.18.1 -- Um Python interativo aprimorado. Digite '?' para obter ajuda.
Em [1]: import nest
[INFO] [2021.1.6 11:10:43 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:217 @ Network::create_rngs_] : Criando RNGs padrão
[INFO] [2021.1.6 11:10:43 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:260 @ Network::create_grng_] : Criando um novo RNG global padrão
06 de jan. 11:10:43 CopyFile [Erro]:
Não foi possível abrir o arquivo de origem.
Erro no arquivo de recurso aninhado: /BadIO em CopyFile_
-- NEST --
Copyright (C) 2004 The NEST Initiative
Versão: nest-2.20.1
Compilado em: 10 de agosto de 2020 00:00:00
Este programa é fornecido "NO ESTADO EM QUE SE ENCONTRA" e NÃO OFERECE NENHUMA GARANTIA. Consulte o arquivo LICENSE para obter detalhes.
Problemas ou sugestões?
Visite https://www.nest-simulator.org
Digite 'nest.help()' para saber mais sobre o NEST.
Em [2]: nest.version()
Out[2]: 'NEST nest-2.20.1'
Em [3]:
Criando imagens de contêiner
Embora o trabalho interativo seja bastante útil, é ainda mais vantajoso criar imagens de contêiner com conjuntos específicos de pacotes que possam ser usados e reutilizados regularmente. Para pesquisas reproduzíveis, por exemplo, uma imagem de contêiner que inclua todo o software e os códigos-fonte necessários para o modelo, sua simulação e a análise dos dados gerados é extremamente útil.
Uma imagem de contêiner pode ser criada usando um Containerfile padrão (Dockerfile para Docker). A referência completa para Containerfile/Dockerfile pode ser encontrada no link: aqui.
Vamos criar um contêiner de exemplo que execute esse pequeno trecho de código.
#!/usr/bin/env python3
# Exemplo de arquivo fonte Python
# Salvo no diretório atual como nest-test.py
import nest
versão do ninho()
Nosso arquivo Containerfile simples tem a seguinte aparência:
DE fedora:33 como fedora-33
# Instale os pacotes necessários, neste caso: NEST
RUN sudo dnf install python3-nest -y
COPIE nest-test.py .
# Comando padrão para executar
CMD ["python", "nest-test.py"]
Em seguida, podemos construir nossa imagem de contêiner:
ls
Arquivo container nest-test.py
podman build -f Containerfile -t neurofedora/nest-test
PASSO 1: FROM fedora:33 AS fedora-33
PASSO 2: RUN sudo dnf install python3-nest -y
Fedora 33 openh264 (From Cisco) - x86_64 1.9 kB/s | 2.5 kB 00:01
....
Concluído!
--> 2efea29a8db
PASSO 3: COPY nest-test.py .
--> b23a5c6f90d
PASSO 4: CMD ["python3", "nest-test.py"]
PASSO 5: COMMIT neurofedora/nest-test
--> da9240e572b
da9240e572b4c08ac010001cbc15cb81ae879c63dca70afa4b3e6f313254b218
Nossa imagem agora está pronta para uso:
$ podman lista de imagens
REPOSITÓRIO TAG ID DA IMAGEM CRIADO TAMANHO
localhost/neurofedora/nest-test latest da9240e572b4 17 segundos atrás 911 MB
Ao ser executado, ele executa nosso script simples:
$ podman run neurofedora/nest-test
[INFO] [2021.1.6 11:36:36 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:217 @ Network::create_rngs_] : Criando RNGs padrão
[INFO] [2021.1.6 11:36:36 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:260 @ Network::create_grng_] : Criando um novo RNG global padrão
06 de jan. 11:36:36 CopyFile [Erro]:
Não foi possível abrir o arquivo de origem.
Erro no arquivo de recurso aninhado: /BadIO em CopyFile_
-- NEST --
Copyright (C) 2004 The NEST Initiative
Versão: nest-2.20.1
Compilado em: 10 de agosto de 2020 00:00:00
Este programa é fornecido "NO ESTADO EM QUE SE ENCONTRA" e NÃO OFERECE NENHUMA GARANTIA. Consulte o arquivo LICENSE para obter detalhes.
Problemas ou sugestões?
Visite https://www.nest-simulator.org
Digite 'nest.help()' para saber mais sobre o NEST.
De maneira semelhante, qualquer pacote dos repositórios do Fedora pode ser usado em contêineres usando o dnf (não apenas pacotes do NeuroFedora). Além disso, também podemos incluir software usando o pip e outros gerenciadores de pacotes, assim como faríamos em um sistema normal.
Want to help? Learn how to contribute to Fedora Docs ›