Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue Running von-network On M1 Chip Mac Machine #182

Open
Tarunshrma opened this issue Oct 26, 2021 · 20 comments
Open

Issue Running von-network On M1 Chip Mac Machine #182

Tarunshrma opened this issue Oct 26, 2021 · 20 comments

Comments

@Tarunshrma
Copy link

Hi,

I am following the provided documentation to run von-network locally on my M1 based machine. "./Manage start" command stats the 4 containers for node and 1 for web server. When I try to open http://localhost:9000 web server is not accessible and subsequently other node containers are also exit. I am getting below error:

qemu: uncaught target signal (Aborted) - core dumped.

@Tarunshrma Tarunshrma changed the title Issue Running Indy Ledger On M1 Chip Mac Machine Issue Running von-network On M1 Chip Mac Machine Oct 26, 2021
@WadeBarnes
Copy link
Member

Could you provide the logs? Run the following to first clear the logs so you have a clean run and then start von-network with streaming logs:

./manage down
./manage start --logs

@Tarunshrma
Copy link
Author

Tarunshrma commented Oct 26, 2021

Screenshot 2021-10-26 at 6 24 19 PM

Here are the logs attached

logs.txt

@WadeBarnes
Copy link
Member

Looks like it's an architecture issue. There is a hint to this in the logs:

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

If you do a google search on qemu: uncaught target signal 6 (Aborted) - core dumped you'll see other people having similar issues with Docker on M1s.

The base image for von-network (bcgovimages/von-image:node-1.12-4) is built for the linux/amd64 architecture. You could try building the base images for linux/arm64/v8 and then build von-network (./manage build).

The source for the base image is here PSPC-SPAC-buyandsell/von-image; the make_node_image.py script and the code in the node-1.12 folder.

@WadeBarnes
Copy link
Member

There are also indications this is a bug in qemu (a component used for running Intel (amd64) containers on M1 (arm64) chips). Upgrading that component may help too.

@Tarunshrma
Copy link
Author

Tarunshrma commented Oct 26, 2021

Thanks @WadeBarnes I will try those options.

Thanks again for your help.

@TimoGlastra
Copy link
Contributor

Running into the same problem. @Tarunshrma have you already tried to build a von image image for linux/arm64/v8? Were you able to resolve the issue?

@nebucaz
Copy link

nebucaz commented Nov 24, 2021

@TimoGlastra I ran into the same problem, but I finally managed to run the network on Apple Silicon by tweaking and rebuilding the underlying PSPC-SPAC-buyandsell/von-image as a arm64 variant.

You can review the changes in my fork of von-image. Although I was not (yet) able to compile the postgres plugin, I'm able to run the von-network by replacing the base image in von-network's Dockerfile with my custom von-image. Because the plugin does not compile, I just made a quick test by pointing the browser to the web server at localhost:9000

You can find instructions to build the von-image yourself and the changes necessary to the von-network's Dockerfile in the README of the fork or just let the Dockerfile pull my image from hub.docker.io (starting FROM snel/von-image:node-1.12-4-arm64)

@WadeBarnes
Copy link
Member

@nebucaz, Thanks for the update and the work on von-image. When you do get the image to compile everything completely, please submit a PR to PSPC-SPAC-buyandsell/von-image with the changes.

@nebucaz
Copy link

nebucaz commented Dec 2, 2021

@WadeBarnes I will be happy to do that, but I fear, I'll not make it in a reasonable time, because, I do not really understand der problem: It is located in the file indy-sdk/experimental/plugins/postgres_storage/src/lib.rs

Compiling on Ubuntu Linux aarch64 fails in an unsafe block:

error[E0308]: mismatched types
   --> src/lib.rs:459:35
    |
459 |         unsafe { *tags_json_ptr = record.tags.as_ptr() as *const i8; }
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
    |
    = note: expected raw pointer `*const u8`
               found raw pointer `*const i8`

When replaced with u8it will compile on linux aarch64 but will not compile on Apple M1 arm64/v8. I'm not able to resolve this with my current knowledge of rust and unsafe blocks.

@ianco
Copy link
Contributor

ianco commented Dec 2, 2021

@nebucaz are you just creating the von-image for von network/indy node? In this scenario I don't think the postgres plug-in is required.

@WadeBarnes
Copy link
Member

@ianco, the postgres plugin is part of the base image used for von-network:
https://github.com/PSPC-SPAC-buyandsell/von-image/blob/master/node-1.12/Dockerfile.ubuntu#L132-L135

@WadeBarnes
Copy link
Member

WadeBarnes commented Dec 2, 2021

@nebucaz, The data types in the indy-sdk need to be updated to support ARM. Here is an example of what we had to do to get it to compile on a Raspberry Pi; KoleBarnes/indy-sdk@7fe80d8

@ianco
Copy link
Contributor

ianco commented Dec 2, 2021

@ianco, the postgres plugin is part of the base image used for von-network: https://github.com/PSPC-SPAC-buyandsell/von-image/blob/master/node-1.12/Dockerfile.ubuntu#L132-L135

@WadeBarnes correct but I don't think it's actually required. It's used by Indy SDK for wallet storage, however nodes (I believe) don't have wallets or use postgres, and the ledger browser uses a wallet but I believe using default storage (sqlite)

@WadeBarnes
Copy link
Member

It's used in von-network for indy-cli operations. The idea would be to build an M1 compatible base image to fully support all of the von-network features.

@ianco
Copy link
Contributor

ianco commented Dec 2, 2021

It's used in von-network for indy-cli operations. The idea would be to build an M1 compatible base image to fully support all of the von-network features.

Ah ok got it thanks

@nebucaz
Copy link

nebucaz commented Dec 3, 2021

@WadeBarnes Thanks for the hint to libc::c:char Changed the types on my fork of hyperledger/indy-sdk and successfully compiled on Ubuntu 20.04 linux/arm64 and macOS arm64/v8 (Apple M1). Re-built snel/von-image with postgres_storage support

@vectoria-org
Copy link

vectoria-org commented Oct 5, 2022

@WadeBarnes Thanks for the hint to libc::c:char Changed the types on my fork of hyperledger/indy-sdk and successfully compiled on Ubuntu 20.04 linux/arm64 and macOS arm64/v8 (Apple M1). Re-built snel/von-image with postgres_storage support

Hi, @nebucaz. Suffering same pain as you did but not able to resolve it since I don't have tech background. I'm following course Edx LFS173x with an M1 mac. when I try to run LEDGER_URL=http://dev.greenlight.bcovrin.vonx.io ./run_demo faber --events --no-auto --bg I got stuck with the WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested. I have been reading all the issues and see you have the answer. The problem is that I believe run_demo faber is bringing von-image version different from the one you have forked and don't know how to continue. I suppose I have to make some modifications in my code in order to call the new arm64 version but no clue how to do it. Thanks anyone for your general efforts and your indications with command line example.

@nebucaz
Copy link

nebucaz commented Oct 20, 2022

Hi @vectoria-org I'm sorry, but I Have been assigned to another project in January 2022 and therefore have not been involved nor have managed to assign any spare time on this issue. I've built my own version of the underlying von-image and referenced this image in Dockerfile of von-network:

#FROM bcgovimages/von-image:node-1.12-4
FROM snel/von-image:node-1.12-4-arm64

You can then build your own 'von-network-base' docker image based on snel/von-image.

cd von-network
docker build -t von-network-base .

You can then start the von-network using

 ./manage start

And watch the logs with

./manage logs
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
von-node1-1      | Ledger does not exist - Creating...
von-node1-1      | von_generate_transactions -n 1

As you can see, I also have the warning, but I'm not able to provide more support without considerable effort.
Docker ps tells me, that the nodes are running though

docker ps  neo@mbp14
CONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS          PORTS                              NAMES
77b1dbf4593d   von-network-base   "bash -c 'sleep 10; …"   9 minutes ago   Up 31 seconds   0.0.0.0:9000->8000/tcp             von-webserver-1
8522be714f0c   von-network-base   "bash -c './scripts/…"   9 minutes ago   Up 31 seconds   0.0.0.0:9707-9708->9707-9708/tcp   von-node4-1
7aa6ef33ec8c   von-network-base   "bash -c './scripts/…"   9 minutes ago   Up 31 seconds   0.0.0.0:9701-9702->9701-9702/tcp   von-node1-1
03fc9ffc3830   von-network-base   "bash -c './scripts/…"   9 minutes ago   Up 31 seconds   0.0.0.0:9705-9706->9705-9706/tcp   von-node3-1
b0022a2f37a6   von-network-base   "bash -c './scripts/…"   9 minutes ago   Up 31 seconds   0.0.0.0:9703-9704->9703-9704/tcp   von-node2-1

And the Web server is accessible on localhost:9000

Did you try to run the demo in the docker-environment (http://play-with-von.vonx.io/) rather than local?

@vectoria-org
Copy link

Many thanks for your support @nebucaz. I'm running this command LEDGER_URL=http://dev.greenlight.bcovrin.vonx.io ./run_demo faber --events --no-auto --bg when linux/arm64 warning appears. Yesterday suddenly worked, after executing commands pyenv and pipenv but not sure yet how that happened.
I'm looking for external help to understand why and how it happened and as soon as I have it I will publish it here for helping others to come.
Of course will follow your indications install von-image and report. Many thanks again.

@vectoria-org
Copy link

Hello back @nebucaz. I'm copy-pasting here the solution that worked in my mac and hopefully it will for others. It is not possible for me to explain it better so let me post the code here and hopefully there will be other contributor with tech background that can summarize better.

@MacBook-Air-de-Julio-3 ~ % python3 -m venv ./venv
@MacBook-Air-de-Julio-3 ~ % source ./venv/bin/activate
(venv) @MacBook-Air-de-Julio-3 ~ % cd didcomm-demo-python && pip install -e.[tests] && cd ..
cd: no such file or directory: didcomm-demo-python
(venv) @MacBook-Air-de-Julio-3 ~ % brew install pyenv
Running brew update --auto-update...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
cbindgen        ferium          iir1            pgsync          typewritten
fastfetch       fred            libretls        textract        verovio
fend            gebug           mxnet           trezor-bridge   xq
==> New Casks
arc                 diffusionbee        planet              tempbox
battery             onekey              readdle-spark       wolfram-engine
chipmunk            pieces-cli          readmoreading

You have 13 outdated formulae installed.
You can upgrade them with brew upgrade
or list them with brew outdated.

==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.71
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/autoconf/blobs/sha256:a3d366c98
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2022-
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:1b
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/readline/blobs/sha256:9406afa0f
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/manifests/2.3.5
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/blobs/sha256:70c0c86cac33
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Installing dependencies for pyenv: autoconf, ca-certificates and readline
==> Installing pyenv dependency: autoconf
==> Pouring autoconf--2.71.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/autoconf/2.71: 71 files, 3.2MB
==> Installing pyenv dependency: ca-certificates
==> Pouring ca-certificates--2022-10-11.all.bottle.tar.gz
==> Regenerating CA certificate bundle from keychain, this may take a while...
🍺  /opt/homebrew/Cellar/ca-certificates/2022-10-11: 3 files, 225.5KB
==> Installing pyenv dependency: readline
==> Pouring readline--8.2.1.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/readline/8.2.1: 50 files, 1.7MB
==> Installing pyenv
==> Pouring pyenv--2.3.5.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/pyenv/2.3.5: 943 files, 3MB
==> Running brew cleanup pyenv...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see man brew).
==> Upgrading 10 dependents of upgraded formulae:
Disable this behaviour by setting HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see man brew).
edencommon 2022.10.03.00 -> 2022.10.17.00, fb303 2022.10.03.00 -> 2022.10.17.00, fizz 2022.10.03.00 -> 2022.10.17.00, fbthrift 2022.10.03.00 -> 2022.10.17.00, folly 2022.10.03.00 -> 2022.10.17.00, node 18.10.0 -> 18.11.0, [email protected] 3.10.7 -> 3.10.8, unbound 1.16.3 -> 1.17.0, wangle 2022.10.03.00 -> 2022.10.17.00, watchman 2022.10.03.00 -> 2022.10.17.00
==> Downloading https://ghcr.io/v2/homebrew/core/folly/manifests/2022.10.17.00
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/folly/blobs/sha256:b7b3fddb3f91
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/edencommon/manifests/2022.10.17
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/edencommon/blobs/sha256:6d4188a
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/fizz/manifests/2022.10.17.00
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/fizz/blobs/sha256:35435e3cf1cfb
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/wangle/manifests/2022.10.17.00
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/wangle/blobs/sha256:dfc6c5c7e52
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/fbthrift/manifests/2022.10.17.0
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/fbthrift/blobs/sha256:4681de621
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/fb303/manifests/2022.10.17.00
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/fb303/blobs/sha256:4430b1800285
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/python/3.10/manifests/3.10.8-1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/python/3.10/blobs/sha256:8b1c01
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/watchman/manifests/2022.10.17.0
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/watchman/blobs/sha256:0b18a9a11
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/node/manifests/18.11.0
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/node/blobs/sha256:2dae00520299d
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/unbound/manifests/1.17.0
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/unbound/blobs/sha256:cd06e5b7f6
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Upgrading folly
  2022.10.03.00 -> 2022.10.17.00 

==> Pouring folly--2022.10.17.00.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/folly/2022.10.17.00: 839 files, 24.4MB
==> Running brew cleanup folly...
Removing: /opt/homebrew/Cellar/folly/2022.10.03.00... (839 files, 24.3MB)
Removing: /Users/julio/Library/Caches/Homebrew/folly--2022.10.03.00... (5.7MB)
==> Upgrading edencommon
  2022.10.03.00 -> 2022.10.17.00 

==> Pouring edencommon--2022.10.17.00.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/edencommon/2022.10.17.00: 15 files, 309.6KB
==> Running brew cleanup edencommon...
Removing: /opt/homebrew/Cellar/edencommon/2022.10.03.00... (15 files, 309.6KB)
Removing: /Users/julio/Library/Caches/Homebrew/edencommon--2022.10.03.00... (51.2KB)
==> Upgrading fizz
  2022.10.03.00 -> 2022.10.17.00 

==> Pouring fizz--2022.10.17.00.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/fizz/2022.10.17.00: 184 files, 3.8MB
==> Running brew cleanup fizz...
Removing: /opt/homebrew/Cellar/fizz/2022.10.03.00... (184 files, 3.8MB)
Removing: /Users/julio/Library/Caches/Homebrew/fizz--2022.10.03.00... (984.7KB)
==> Upgrading wangle
  2022.10.03.00 -> 2022.10.17.00 

==> Pouring wangle--2022.10.17.00.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/wangle/2022.10.17.00: 117 files, 3.2MB
==> Running brew cleanup wangle...
Removing: /opt/homebrew/Cellar/wangle/2022.10.03.00... (117 files, 3.2MB)
Removing: /Users/julio/Library/Caches/Homebrew/wangle--2022.10.03.00... (792.8KB)
==> Upgrading fbthrift
  2022.10.03.00 -> 2022.10.17.00 

==> Pouring fbthrift--2022.10.17.00.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/fbthrift/2022.10.17.00: 755 files, 20.9MB
==> Running brew cleanup fbthrift...
Removing: /opt/homebrew/Cellar/fbthrift/2022.10.03.00... (755 files, 20.8MB)
Removing: /Users/julio/Library/Caches/Homebrew/fbthrift--2022.10.03.00... (4.2MB)
==> Upgrading fb303
  2022.10.03.00 -> 2022.10.17.00 

==> Pouring fb303--2022.10.17.00.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/fb303/2022.10.17.00: 56 files, 3.6MB
==> Running brew cleanup fb303...
Removing: /opt/homebrew/Cellar/fb303/2022.10.03.00... (56 files, 3.6MB)
Removing: /Users/julio/Library/Caches/Homebrew/fb303--2022.10.03.00... (668.9KB)
==> Upgrading [email protected]
  3.10.7 -> 3.10.8 

==> Pouring [email protected]_monterey.bottle.1.tar.gz
==> /opt/homebrew/Cellar/[email protected]/3.10.8/bin/python3.10 -m ensurepip
==> /opt/homebrew/Cellar/[email protected]/3.10.8/bin/python3.10 -m pip install -v --n
🍺  /opt/homebrew/Cellar/[email protected]/3.10.8: 3,116 files, 57.3MB
==> Running brew cleanup [email protected]...
Removing: /opt/homebrew/Cellar/[email protected]/3.10.7... (3,116 files, 57.3MB)
Removing: /Users/julio/Library/Caches/Homebrew/[email protected]... (14.7MB)
==> Upgrading watchman
  2022.10.03.00 -> 2022.10.17.00 

==> Pouring watchman--2022.10.17.00.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/watchman/2022.10.17.00: 22 files, 13.6MB
==> Running brew cleanup watchman...
Removing: /opt/homebrew/Cellar/watchman/2022.10.03.00... (22 files, 13.2MB)
Removing: /Users/julio/Library/Caches/Homebrew/watchman--2022.10.03.00... (2.8MB)
==> Upgrading node
  18.10.0 -> 18.11.0 

==> Pouring node--18.11.0.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/node/18.11.0: 1,993 files, 48.6MB
==> Running brew cleanup node...
Removing: /opt/homebrew/Cellar/node/18.10.0... (1,993 files, 48.4MB)
Removing: /Users/julio/Library/Caches/Homebrew/node--18.10.0... (13.1MB)
==> Upgrading unbound
  1.16.3 -> 1.17.0 

==> Pouring unbound--1.17.0.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/unbound/1.17.0: 58 files, 5.7MB
==> Running brew cleanup unbound...
Removing: /opt/homebrew/Cellar/unbound/1.16.3... (58 files, 5.7MB)
Removing: /Users/julio/Library/Caches/Homebrew/unbound--1.16.3... (2.8MB)
==> Checking for dependents of upgraded formulae...
==> No broken dependents found!
(venv) @MacBook-Air-de-Julio-3 ~ % deactivate
@MacBook-Air-de-Julio-3 ~ % pyenv
pyenv 2.3.5
Usage: pyenv []

Some useful pyenv commands are:
   --version   Display the version of pyenv
   commands    List all available pyenv commands
   exec        Run an executable with the selected Python version
   global      Set or show the global Python version(s)
   help        Display help for a command
   hooks       List hook scripts for a given pyenv command
   init        Configure the shell environment for pyenv
   install     Install a Python version using python-build
   local       Set or show the local application-specific Python version(s)
   prefix      Display prefixes for Python versions
   rehash      Rehash pyenv shims (run this after installing executables)
   root        Display the root directory where versions and shims are kept
   shell       Set or show the shell-specific Python version
   shims       List existing pyenv shims
   uninstall   Uninstall Python versions
   version     Show the current Python version(s) and its origin
   version-file   Detect the file that sets the current pyenv version
   version-name   Show the current Python version
   version-origin   Explain how the current Python version is set
   versions    List all Python versions available to pyenv
   whence      List all Python versions that contain the given executable
   which       Display the full path to an executable

See pyenv help <command>' for information on a specific command. For full documentation, see: https://github.com/pyenv/pyenv#readme @MacBook-Air-de-Julio-3 ~ % git clone https://github.com/hyperledger/aries-cloudagent-python.git fatal: destination path 'aries-cloudagent-python' already exists and is not an empty directory. @MacBook-Air-de-Julio-3 ~ % pienv zsh: command not found: pienv @MacBook-Air-de-Julio-3 ~ % pipenv zsh: command not found: pipenv @MacBook-Air-de-Julio-3 ~ % brew install pipenv Running brew update --auto-update... ==> Downloading https://ghcr.io/v2/homebrew/core/six/manifests/1.16.0_2-1 ######################################################################## 100.0% ==> Downloading https://ghcr.io/v2/homebrew/core/six/blobs/sha256:560f73cafaea61 ==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==> Downloading https://ghcr.io/v2/homebrew/core/pipenv/manifests/2022.9.24 ######################################################################## 100.0% ==> Downloading https://ghcr.io/v2/homebrew/core/pipenv/blobs/sha256:6eecd050758 ==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==> Installing dependencies for pipenv: six ==> Installing pipenv dependency: six ==> Pouring six--1.16.0_2.all.bottle.1.tar.gz 🍺  /opt/homebrew/Cellar/six/1.16.0_2: 20 files, 122.3KB ==> Installing pipenv ==> Pouring pipenv--2022.9.24.arm64_monterey.bottle.tar.gz ==> Caveats zsh completions have been installed to:   /opt/homebrew/share/zsh/site-functions ==> Summary 🍺  /opt/homebrew/Cellar/pipenv/2022.9.24: 1,853 files, 31.6MB ==> Running brew cleanup pipenv... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see man brew`).
==> Caveats
==> pipenv
zsh completions have been installed to:
  /opt/homebrew/share/zsh/site-functions
@MacBook-Air-de-Julio-3 ~ % atom ~/.bash_profile
zsh: command not found: atom
@MacBook-Air-de-Julio-3 ~ % pipenv              
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
  --where                         Output project home information.
  --venv                          Output virtualenv information.
  --py                            Output Python interpreter information.
  --envs                          Output Environment Variable options.
  --rm                            Remove the virtualenv.
  --bare                          Minimal output.
  --man                           Display manpage.
  --support                       Output diagnostic information for use in
                                  GitHub issues.
  --site-packages / --no-site-packages
                                  Enable site-packages for the virtualenv.
                                  [env var: PIPENV_SITE_PACKAGES]
  --python TEXT                   Specify which version of Python virtualenv
                                  should use.
  --three                         Use Python 3 when creating virtualenv.
                                  Deprecated
  --clear                         Clears caches (pipenv, pip).  [env var:
                                  PIPENV_CLEAR]
  -q, --quiet                     Quiet mode.
  -v, --verbose                   Verbose mode.
  --pypi-mirror TEXT              Specify a PyPI mirror.
  --version                       Show the version and exit.
  -h, --help                      Show this message and exit.

Usage Examples:
   Create a new project using Python 3.7, specifically:
   $ pipenv --python 3.7

   Remove project virtualenv (inferred from current directory):
   $ pipenv --rm

   Install all dependencies for a project (including dev):
   $ pipenv install --dev

   Create a lockfile containing pre-releases:
   $ pipenv lock --pre

   Show a graph of your installed dependencies:
   $ pipenv graph

   Check your installed dependencies for security vulnerabilities:
   $ pipenv check

   Install a local setup.py into your virtual environment/Pipfile:
   $ pipenv install -e .

   Use a lower-level pip command:
   $ pipenv run pip freeze

Commands:
  check         Checks for PyUp Safety security vulnerabilities and against
                PEP 508 markers provided in Pipfile.
  clean         Uninstalls all packages not specified in Pipfile.lock.
  graph         Displays currently-installed dependency graph information.
  install       Installs provided packages and adds them to Pipfile, or (if no
                packages are given), installs all packages from Pipfile.
  lock          Generates Pipfile.lock.
  open          View a given module in your editor.
  requirements  Generate a requirements.txt from Pipfile.lock.
  run           Spawns a command installed into the virtualenv.
  scripts       Lists scripts in current environment config.
  shell         Spawns a shell within the virtualenv.
  sync          Installs all packages specified in Pipfile.lock.
  uninstall     Uninstalls a provided package and removes it from Pipfile.
  update        Runs lock, then sync.
  verify        Verify the hash in Pipfile.lock is up-to-date.
@MacBook-Air-de-Julio-3 ~ % cd aries-cloudagent-python
@MacBook-Air-de-Julio-3 aries-cloudagent-python % pipenv shell
Creating a virtualenv for this project...
Pipfile: /Users/julio/aries-cloudagent-python/Pipfile
Using /opt/homebrew/bin/python3 (3.10.8) to create virtualenv...
⠦ Creating virtual environment...created virtual environment CPython3.10.8.final.0-64 in 444ms
  creator CPython3Posix(dest=/Users/julio/.local/share/virtualenvs/aries-cloudagent-python-fY91S27h, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/julio/Library/Application Support/virtualenv)
    added seed packages: pip==22.2.2, setuptools==65.3.0, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment! 
Virtualenv location: /Users/julio/.local/share/virtualenvs/aries-cloudagent-python-fY91S27h
requirements.txt found in /Users/julio/aries-cloudagent-python instead of Pipfile! Converting...
✔ Success! 
Warning: Your Pipfile now contains pinned versions, if your requirements.txt did. 
We recommend updating your Pipfile to specify the "*" version, instead.
Launching subshell in virtual environment...
 . /Users/julio/.local/share/virtualenvs/aries-cloudagent-python-fY91S27h/bin/activate
@MacBook-Air-de-Julio-3 aries-cloudagent-python %  . /Users/julio/.local/share/virtualenvs/aries-cloudagent-python-fY91S27h/bin/activate
(aries-cloudagent-python) @MacBook-Air-de-Julio-3 aries-cloudagent-python % pipenv install -r requirements.txt
Requirements file provided! Importing into Pipfile...
Pipfile.lock not found, creating...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success! 
Locking [dev-packages] dependencies...
Updated Pipfile.lock (33caac)!
Installing dependencies from Pipfile.lock (33caac)...
(aries-cloudagent-python) julio@MacBook-Air-de-Julio-3 aries-cloudagent-python % @MacBook-Air-de-Julio-3 ~ % pyenv

We changed requirements.txt to:
asyncpg~=0.25.0
prompt_toolkit~=2.0.9
git+https://github.com/webpy/webpy.git#egg=web.py
pygments~=2.10
qrcode[pil]~=6.1

But a few days later Alice Docker did not work and we made another change, to:
asyncpg~=0.25.0
prompt_toolkit~=2.0.9
web.py~=0.62
pygments~=2.10
qrcode[pil]~=6.1

It works now smoothly so hopefully someone who understands what we did can explain it better so others to come can solve the issue and follow the course LinuxFoundationX LFS173x with an M1 Mac. Regards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants