Easy install setup guide for erpnext installation on Ubuntu 20.04 LTS. With some modification of course

@Nikunj_Patel
I’ve lanched the installation as verbose and maked again installation with different username
Here the complete log (i had to remove initial part due limitation of the reply character space)

 TASK [Create user] *****************************************************************************************************
task path: /tmp/.bench/bench/playbooks/create_user.yml:7
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568860.670085-730-57053080077521 && echo ansible-tmp-1618568860.670085-730-57053080077521="` echo /root/.ansible/tmp/ansible-tmp-1618568860.670085-730-57053080077521 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/system/user.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-6228vgx985g/tmpq_2kv7ir TO /root/.ansible/tmp/ansible-tmp-1618568860.670085-730-57053080077521/AnsiballZ_user.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568860.670085-730-57053080077521/ /root/.ansible/tmp/ansible-tmp-1618568860.670085-730-57053080077521/AnsiballZ_user.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568860.670085-730-57053080077521/AnsiballZ_user.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568860.670085-730-57053080077521/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "append": false,
    "changed": false,
    "comment": ",,,",
    "group": 1002,
    "home": "/home/erpuser",
    "invocation": {
        "module_args": {
            "append": false,
            "authorization": null,
            "comment": null,
            "create_home": true,
            "expires": null,
            "force": false,
            "generate_ssh_key": true,
            "group": null,
            "groups": null,
            "hidden": null,
            "home": null,
            "local": null,
            "login_class": null,
            "move_home": false,
            "name": "erpuser",
            "non_unique": false,
            "password": null,
            "password_lock": null,
            "profile": null,
            "remove": false,
            "role": null,
            "seuser": null,
            "shell": null,
            "skeleton": null,
            "ssh_key_bits": 0,
            "ssh_key_comment": "ansible-generated on DESKTOP-HTVK6TE",
            "ssh_key_file": null,
            "ssh_key_passphrase": null,
            "ssh_key_type": "rsa",
            "state": "present",
            "system": false,
            "uid": null,
            "update_password": "always"
        }
    },
    "move_home": false,
    "name": "erpuser",
    "shell": "/usr/bin/bash",
    "ssh_fingerprint": "3072 SHA256:JS1idyhAe0SAutVkp4EJtv63pC4gyIwK3Ld0e8aw/i4 ansible-generated on DESKTOP-HTVK6TE (RSA)",
    "ssh_key_file": "/home/erpuser/.ssh/id_rsa",
    "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCufMBQJAVluT00i2mNdsY62Gy7nUKv+vftrD+z9XhbEFxyjnJ0GpxyzFs2Rk+ctY5OVYS6SOPgZDWmWTsKhGUK+9E1Xl7d5zddrwEUdsfJVLf3yFW4chGqVF5pK0LSeqPWd4ErSzfThAHiG4MD+Y6zlf0eIGoSlAQtR5lXqKi6fnuWjcD3lj2L8id0Gn9e81A+sbpZval5Mr6pUUP8rYmavouz2132HapiELpJ8uogGk8iU2M9jDfD71xNCqJ7di4ZIKpz39FjYaGij3TkdY7/2tqvY7B6xAKaZVs/h2kjgR6Vq2JdV+fdd89pKpZPXxaudfHNRFH49wpQmdTFDzFsV7q9EW48kt1/DVMhD6q1FscrZ4rI3z9+yaDz+hzespBbvr+yNncH5Cx2xbffi4kd/Hv6BzHtkGQuX7RMhHHD7+UjxoyeFw/rlgCBZqkgTjSaXz8hdYxJ2K8hGlQTqzZ8Y7MbCIClRuzt90o8QwY0kydgIJGdS5wqr/358oIQv8E= ansible-generated on DESKTOP-HTVK6TE",
    "state": "present",
    "uid": 1002
}

TASK [Set home folder perms] *******************************************************************************************
task path: /tmp/.bench/bench/playbooks/create_user.yml:12
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568861.1370845-758-178887914403604 && echo ansible-tmp-1618568861.1370845-758-178887914403604="` echo /root/.ansible/tmp/ansible-tmp-1618568861.1370845-758-178887914403604 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/files/file.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-6228vgx985g/tmpav013puf TO /root/.ansible/tmp/ansible-tmp-1618568861.1370845-758-178887914403604/AnsiballZ_file.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568861.1370845-758-178887914403604/ /root/.ansible/tmp/ansible-tmp-1618568861.1370845-758-178887914403604/AnsiballZ_file.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568861.1370845-758-178887914403604/AnsiballZ_file.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568861.1370845-758-178887914403604/ > /dev/null 2>&1 && sleep 0'
changed: [localhost] => {
    "changed": true,
    "diff": {
        "after": {
            "path": "/home/erpuser"
        },
        "before": {
            "path": "/home/erpuser"
        }
    },
    "gid": 1002,
    "group": "erpuser",
    "invocation": {
        "module_args": {
            "_diff_peek": null,
            "_original_basename": null,
            "access_time": null,
            "access_time_format": "%Y%m%d%H%M.%S",
            "attributes": null,
            "backup": null,
            "content": null,
            "delimiter": null,
            "directory_mode": null,
            "follow": true,
            "force": false,
            "group": "erpuser",
            "mode": "o+rx",
            "modification_time": null,
            "modification_time_format": "%Y%m%d%H%M.%S",
            "owner": "erpuser",
            "path": "/home/erpuser",
            "recurse": true,
            "regexp": null,
            "remote_src": null,
            "selevel": null,
            "serole": null,
            "setype": null,
            "seuser": null,
            "src": null,
            "state": "directory",
            "unsafe_writes": null
        }
    },
    "mode": "0755",
    "owner": "erpuser",
    "path": "/home/erpuser",
    "size": 4096,
    "state": "directory",
    "uid": 1002
}

TASK [Set /tmp/.bench folder perms] ************************************************************************************
task path: /tmp/.bench/bench/playbooks/create_user.yml:20
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568861.5241907-784-30969913869510 && echo ansible-tmp-1618568861.5241907-784-30969913869510="` echo /root/.ansible/tmp/ansible-tmp-1618568861.5241907-784-30969913869510 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/files/file.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-6228vgx985g/tmpvjxhgd9z TO /root/.ansible/tmp/ansible-tmp-1618568861.5241907-784-30969913869510/AnsiballZ_file.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568861.5241907-784-30969913869510/ /root/.ansible/tmp/ansible-tmp-1618568861.5241907-784-30969913869510/AnsiballZ_file.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568861.5241907-784-30969913869510/AnsiballZ_file.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568861.5241907-784-30969913869510/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "changed": false,
    "diff": {
        "after": {
            "path": "/tmp/.bench"
        },
        "before": {
            "path": "/tmp/.bench"
        }
    },
    "gid": 1002,
    "group": "erpuser",
    "invocation": {
        "module_args": {
            "_diff_peek": null,
            "_original_basename": null,
            "access_time": null,
            "access_time_format": "%Y%m%d%H%M.%S",
            "attributes": null,
            "backup": null,
            "content": null,
            "delimiter": null,
            "directory_mode": null,
            "follow": true,
            "force": false,
            "group": "erpuser",
            "mode": null,
            "modification_time": null,
            "modification_time_format": "%Y%m%d%H%M.%S",
            "owner": "erpuser",
            "path": "/tmp/.bench",
            "recurse": true,
            "regexp": null,
            "remote_src": null,
            "selevel": null,
            "serole": null,
            "setype": null,
            "seuser": null,
            "src": null,
            "state": "directory",
            "unsafe_writes": null
        }
    },
    "mode": "0755",
    "owner": "erpuser",
    "path": "/tmp/.bench",
    "size": 4096,
    "state": "directory",
    "uid": 1002
}

TASK [Change default shell to bash] ************************************************************************************
task path: /tmp/.bench/bench/playbooks/create_user.yml:27
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568861.822526-810-178651747013152 && echo ansible-tmp-1618568861.822526-810-178651747013152="` echo /root/.ansible/tmp/ansible-tmp-1618568861.822526-810-178651747013152 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/commands/command.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-6228vgx985g/tmpb68qtksa TO /root/.ansible/tmp/ansible-tmp-1618568861.822526-810-178651747013152/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568861.822526-810-178651747013152/ /root/.ansible/tmp/ansible-tmp-1618568861.822526-810-178651747013152/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568861.822526-810-178651747013152/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568861.822526-810-178651747013152/ > /dev/null 2>&1 && sleep 0'
changed: [localhost] => {
    "changed": true,
    "cmd": "chsh erpuser -s $(which bash)",
    "delta": "0:00:00.032339",
    "end": "2021-04-16 12:27:42.147259",
    "invocation": {
        "module_args": {
            "_raw_params": "chsh erpuser -s $(which bash)",
            "_uses_shell": true,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true,
            "warn": true
        }
    },
    "rc": 0,
    "start": "2021-04-16 12:27:42.114920",
    "stderr": "",
    "stderr_lines": [],
    "stdout": "",
    "stdout_lines": []
}
META: ran handlers
META: ran handlers

PLAY RECAP *************************************************************************************************************
localhost                  : ok=5    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Input MySQL and Frappe Administrator passwords:
Passwords saved at ~/passwords.txt
Initializing bench frappe-bench:
        Frappe Branch: version-12
        ERPNext Branch: version-12
ansible-playbook 2.8.20
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  executable location = /usr/local/bin/ansible-playbook
  python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
No config file found; using defaults
setting up inventory plugins
host_list declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
Skipping due to inventory source not existing or not being readable by the current user
script declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
auto declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
Skipping due to inventory source not existing or not being readable by the current user
yaml declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
Skipping due to inventory source not existing or not being readable by the current user
ini declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
Skipping due to inventory source not existing or not being readable by the current user
toml declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
[WARNING]: No inventory was parsed, only implicit localhost is available

[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match
'all'

statically imported: /tmp/.bench/bench/playbooks/roles/mariadb/tasks/centos.yml
statically imported: /tmp/.bench/bench/playbooks/roles/mariadb/tasks/ubuntu-trusty.yml
statically imported: /tmp/.bench/bench/playbooks/roles/mariadb/tasks/ubuntu-xenial_bionic.yml
Loading callback plugin default of type stdout, v2.0 from /usr/local/lib/python3.8/dist-packages/ansible/plugins/callback/default.py

PLAYBOOK: site.yml *****************************************************************************************************
Positional arguments: site.yml
verbosity: 4
connection: local
timeout: 10
become: True
become_method: sudo
become_user: erpuser
tags: ('all',)
inventory: ('/etc/ansible/hosts',)
extra_vars: ('@/tmp/extra_vars.json',)
forks: 5
2 plays in site.yml

PLAY [localhost] *******************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
task path: /tmp/.bench/bench/playbooks/site.yml:4
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568863.1860757-849-32637732877595 && echo ansible-tmp-1618568863.1860757-849-32637732877595="` echo /root/.ansible/tmp/ansible-tmp-1618568863.1860757-849-32637732877595 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/system/setup.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-8456m1tsiul/tmpt069xvpt TO /root/.ansible/tmp/ansible-tmp-1618568863.1860757-849-32637732877595/AnsiballZ_setup.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568863.1860757-849-32637732877595/ /root/.ansible/tmp/ansible-tmp-1618568863.1860757-849-32637732877595/AnsiballZ_setup.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568863.1860757-849-32637732877595/AnsiballZ_setup.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568863.1860757-849-32637732877595/ > /dev/null 2>&1 && sleep 0'
ok: [localhost]
META: ran handlers

TASK [common : include_tasks] ******************************************************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/main.yml:4
included: /tmp/.bench/bench/playbooks/roles/common/tasks/debian_family.yml for localhost

TASK [common : Install prerequisites using apt-get] ********************************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/debian_family.yml:3
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568864.8589525-955-94683159051879 && echo ansible-tmp-1618568864.8589525-955-94683159051879="` echo /root/.ansible/tmp/ansible-tmp-1618568864.8589525-955-94683159051879 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-8456m1tsiul/tmpk046gwfy TO /root/.ansible/tmp/ansible-tmp-1618568864.8589525-955-94683159051879/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568864.8589525-955-94683159051879/ /root/.ansible/tmp/ansible-tmp-1618568864.8589525-955-94683159051879/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568864.8589525-955-94683159051879/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568864.8589525-955-94683159051879/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "cache_update_time": 1618568850,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": true,
            "force_apt_get": false,
            "install_recommends": null,
            "only_upgrade": false,
            "package": [
                "dnsmasq",
                "fontconfig",
                "git",
                "htop",
                "libcrypto++-dev",
                "libfreetype6-dev",
                "liblcms2-dev",
                "libwebp-dev",
                "libxext6",
                "libxrender1",
                "libxslt1-dev",
                "libxslt1.1",
                "libffi-dev",
                "ntp",
                "postfix",
                "python3-dev",
                "python-tk",
                "screen",
                "vim",
                "xfonts-75dpi",
                "xfonts-base",
                "zlib1g-dev",
                "apt-transport-https",
                "libsasl2-dev",
                "libldap2-dev",
                "libcups2-dev",
                "pv"
            ],
            "pkg": [
                "dnsmasq",
                "fontconfig",
                "git",
                "htop",
                "libcrypto++-dev",
                "libfreetype6-dev",
                "liblcms2-dev",
                "libwebp-dev",
                "libxext6",
                "libxrender1",
                "libxslt1-dev",
                "libxslt1.1",
                "libffi-dev",
                "ntp",
                "postfix",
                "python3-dev",
                "python-tk",
                "screen",
                "vim",
                "xfonts-75dpi",
                "xfonts-base",
                "zlib1g-dev",
                "apt-transport-https",
                "libsasl2-dev",
                "libldap2-dev",
                "libcups2-dev",
                "pv"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    }
}

TASK [common : include_tasks] ******************************************************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/debian_family.yml:38
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [common : include_tasks] ******************************************************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/debian_family.yml:41
included: /tmp/.bench/bench/playbooks/roles/common/tasks/ubuntu.yml for localhost

TASK [common : install pillow prerequisites for Ubuntu < 14.04] ********************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/ubuntu.yml:3
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [common : install pillow prerequisites for Ubuntu >= 14.04] *******************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/ubuntu.yml:14
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568866.1582403-992-220782343264762 && echo ansible-tmp-1618568866.1582403-992-220782343264762="` echo /root/.ansible/tmp/ansible-tmp-1618568866.1582403-992-220782343264762 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-8456m1tsiul/tmp97udzwc_ TO /root/.ansible/tmp/ansible-tmp-1618568866.1582403-992-220782343264762/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568866.1582403-992-220782343264762/ /root/.ansible/tmp/ansible-tmp-1618568866.1582403-992-220782343264762/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568866.1582403-992-220782343264762/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568866.1582403-992-220782343264762/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "cache_update_time": 1618568850,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": true,
            "force_apt_get": false,
            "install_recommends": null,
            "only_upgrade": false,
            "package": [
                "libjpeg8-dev",
                "libtiff5-dev",
                "tcl8.6-dev",
                "tk8.6-dev"
            ],
            "pkg": [
                "libjpeg8-dev",
                "libtiff5-dev",
                "tcl8.6-dev",
                "tk8.6-dev"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    }
}

TASK [common : install pdf prerequisites for Ubuntu < 18.04] ***********************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/ubuntu.yml:25
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [common : install pdf prerequisites for Ubuntu >= 18.04] **********************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/ubuntu.yml:33
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568867.149341-1025-105335266971742 && echo ansible-tmp-1618568867.149341-1025-105335266971742="` echo /root/.ansible/tmp/ansible-tmp-1618568867.149341-1025-105335266971742 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-8456m1tsiul/tmp4zwm8d7k TO /root/.ansible/tmp/ansible-tmp-1618568867.149341-1025-105335266971742/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568867.149341-1025-105335266971742/ /root/.ansible/tmp/ansible-tmp-1618568867.149341-1025-105335266971742/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568867.149341-1025-105335266971742/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568867.149341-1025-105335266971742/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "cache_update_time": 1618568850,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": true,
            "force_apt_get": false,
            "install_recommends": null,
            "only_upgrade": false,
            "package": [
                "libssl1.1"
            ],
            "pkg": [
                "libssl1.1"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    }
}

TASK [common : include_tasks] ******************************************************************************************
task path: /tmp/.bench/bench/playbooks/roles/common/tasks/main.yml:7
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [locale : Check current locale] ***********************************************************************************
task path: /tmp/.bench/bench/playbooks/roles/locale/tasks/main.yml:2
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir /root/.ansible/tmp/ansible-tmp-1618568868.1509638-1058-236315416933827 && echo ansible-tmp-1618568868.1509638-1058-236315416933827="` echo /root/.ansible/tmp/ansible-tmp-1618568868.1509638-1058-236315416933827 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/commands/command.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-8456m1tsiul/tmpv52rgfum TO /root/.ansible/tmp/ansible-tmp-1618568868.1509638-1058-236315416933827/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1618568868.1509638-1058-236315416933827/ /root/.ansible/tmp/ansible-tmp-1618568868.1509638-1058-236315416933827/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1618568868.1509638-1058-236315416933827/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1618568868.1509638-1058-236315416933827/ > /dev/null 2>&1 && sleep 0'
fatal: [localhost]: FAILED! => {
    "changed": true,
    "cmd": "localectl",
    "delta": "0:00:00.024092",
    "end": "2021-04-16 12:27:48.507740",
    "invocation": {
        "module_args": {
            "_raw_params": "localectl",
            "_uses_shell": true,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true,
            "warn": true
        }
    },
    "msg": "non-zero return code",
    "rc": 1,
    "start": "2021-04-16 12:27:48.483648",
    "stderr": "\u001b[0;1;31mSystem has not been booted with systemd as init system (PID 1). Can't operate.\u001b[0m\n\u001b[0;1;31mFailed to create bus connection: Host is down\u001b[0m",
    "stderr_lines": [
        "\u001b[0;1;31mSystem has not been booted with systemd as init system (PID 1). Can't operate.\u001b[0m",
        "\u001b[0;1;31mFailed to create bus connection: Host is down\u001b[0m"
    ],
    "stdout": "",
    "stdout_lines": []
}

PLAY RECAP *************************************************************************************************************
localhost                  : ok=6    changed=0    unreachable=0    failed=1    skipped=4    rescued=0    ignored=0

Traceback (most recent call last):
  File "install.py", line 498, in <module>
    install_bench(args)
  File "install.py", line 279, in install_bench
    run_playbook('site.yml', sudo=True, extra_vars=extra_vars)
  File "install.py", line 414, in run_playbook
    success = subprocess.check_call(args, cwd=playbooks_folder, stdout=log_stream, stderr=sys.stderr)
  File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ansible-playbook', '-c', 'local', 'site.yml', '-vvvv', '-e', '@/tmp/extra_vars.json', '--become', '--become-user=erpuser']' returned non-zero exit status 2.

Hi @Ido_Traini
I guess you should follow the step below.

1) open file install.py 
2) find "mariadb_version" then change default to "10.5".

Hi @signail thanks for you effort, but this don’t help. Also, in the suggested command it is specified that you will use mariadb-version 10.5 and this overwrite the default setting.

Problem is that in wsl2 the systemd is not active, so it cannot create a bus connection: no host, no installation (sorry, my english is rugged and my knowledge of linux is not enough to use the right terms).
I’ve found this script: GitHub - DamionGans/ubuntu-wsl2-systemd-script: [Does not work anymore!] Script to enable systemd support on current Ubuntu WSL2 images

that resolve the problem. Tomorrow I will try with a fresh Ubuntu WSL2 installation, with the script and without manipulating at all the install.py.

Now the new error (i’ve reported the “red” part):

TASK [bench : Check whether the site already exists] *******************************************************************
task path: /tmp/.bench/bench/playbooks/roles/bench/tasks/setup_erpnext.yml:13
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /var/tmp `"&& mkdir /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269 && echo ansible-tmp-1618768836.6817203-11144-41838006679269="` echo /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/files/stat.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-1184iaunm3d2/tmpoyv52ve6 TO /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/AnsiballZ_stat.py
<127.0.0.1> EXEC /bin/sh -c 'setfacl -m u:erper:r-x /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/ /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/AnsiballZ_stat.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/ /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/AnsiballZ_stat.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'chown erper /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/ /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/AnsiballZ_stat.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'sudo -H -S -n  -u erper /bin/sh -c '"'"'echo BECOME-SUCCESS-zdhztkrjviewylzfesmshvcvivhvbqqj ; /usr/bin/python3 /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/AnsiballZ_stat.py'"'"' && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /var/tmp/ansible-tmp-1618768836.6817203-11144-41838006679269/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "changed": false,
    "invocation": {
        "module_args": {
            "checksum_algorithm": "sha1",
            "follow": false,
            "get_attributes": true,
            "get_checksum": true,
            "get_md5": null,
            "get_mime": true,
            "path": "/home/erper/frappe-bench/sites/site1.local"
        }
    },
    "stat": {
        "exists": false
    }
}

TASK [bench : Create a new site] ***************************************************************************************
task path: /tmp/.bench/bench/playbooks/roles/bench/tasks/setup_erpnext.yml:18
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /var/tmp `"&& mkdir /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660 && echo ansible-tmp-1618768836.8321133-11178-183899412082660="` echo /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660 `" ) && sleep 0'
Using module file /usr/local/lib/python3.8/dist-packages/ansible/modules/commands/command.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-1184iaunm3d2/tmp1xrchzhw TO /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c 'setfacl -m u:erper:r-x /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/ /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/ /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'chown erper /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/ /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'sudo -H -S -n  -u erper /bin/sh -c '"'"'echo BECOME-SUCCESS-qrawovqqdcdannqyyrjhfksqzyosyzuw ; /usr/bin/python3 /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/AnsiballZ_command.py'"'"' && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /var/tmp/ansible-tmp-1618768836.8321133-11178-183899412082660/ > /dev/null 2>&1 && sleep 0'
fatal: [localhost]: FAILED! => {
    "changed": true,
    "cmd": [
        "bench",
        "new-site",
        "site1.local",
        "--admin-password",
        "idumpsg7",
        "--mariadb-root-password",
        "idumpsg7"
    ],
    "delta": "0:00:00.415096",
    "end": "2021-04-18 20:00:37.355472",
    "invocation": {
        "module_args": {
            "_raw_params": "bench new-site site1.local --admin-password 'idumpsg7' --mariadb-root-password 'idumpsg7'",
            "_uses_shell": false,
            "argv": null,
            "chdir": "/home/erper/frappe-bench",
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true,
            "warn": true
        }
    },
    "msg": "non-zero return code",
    "rc": 1,
    "start": "2021-04-18 20:00:36.940376",
    "stderr": "Traceback (most recent call last):\n  File \"/home/erper/frappe-bench/apps/frappe/frappe/utils/bench_helper.py\", line 68, in get_app_commands\n    app_command_module = importlib.import_module(app + '.commands')\n  File \"/usr/lib/python3.8/importlib/__init__.py\", line 127, in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n  File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import\n  File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load\n  File \"<frozen importlib._bootstrap>\", line 961, in _find_and_load_unlocked\n  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n  File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import\n  File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load\n  File \"<frozen importlib._bootstrap>\", line 973, in _find_and_load_unlocked\nModuleNotFoundError: No module named 'erpnext'\nTraceback (most recent call last):\n  File \"/usr/lib/python3.8/runpy.py\", line 194, in _run_module_as_main\n    return _run_code(code, main_globals, None,\n  File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/home/erper/frappe-bench/apps/frappe/frappe/utils/bench_helper.py\", line 99, in <module>\n    main()\n  File \"/home/erper/frappe-bench/apps/frappe/frappe/utils/bench_helper.py\", line 18, in main\n    click.Group(commands=commands)(prog_name='bench')\n  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 764, in __call__\n    return self.main(*args, **kwargs)\n  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 717, in main\n    rv = self.invoke(ctx)\n  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 1137, in invoke\n    return _process_result(sub_ctx.command.invoke(sub_ctx))\n  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 1137, in invoke\n    return _process_result(sub_ctx.command.invoke(sub_ctx))\n  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 956, in invoke\n    return ctx.invoke(self.callback, **ctx.params)\n  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 555, in invoke\n    return callback(*args, **kwargs)\n  File \"/home/erper/frappe-bench/apps/frappe/frappe/commands/site.py\", line 41, in new_site\n    frappe.init(site=site, new_site=True)\n  File \"/home/erper/frappe-bench/apps/frappe/frappe/__init__.py\", line 175, in init\n    setup_module_map()\n  File \"/home/erper/frappe-bench/apps/frappe/frappe/__init__.py\", line 1019, in setup_module_map\n    for module in get_module_list(app):\n  File \"/home/erper/frappe-bench/apps/frappe/frappe/__init__.py\", line 882, in get_module_list\n    return get_file_items(os.path.join(os.path.dirname(get_module(app_name).__file__), \"modules.txt\"))\n  File \"/home/erper/frappe-bench/apps/frappe/frappe/__init__.py\", line 840, in get_module\n    return importlib.import_module(modulename)\n  File \"/usr/lib/python3.8/importlib/__init__.py\", line 127, in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n  File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import\n  File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load\n  File \"<frozen importlib._bootstrap>\", line 973, in _find_and_load_unlocked\nModuleNotFoundError: No module named 'erpnext'",
    "stderr_lines": [
        "Traceback (most recent call last):",
        "  File \"/home/erper/frappe-bench/apps/frappe/frappe/utils/bench_helper.py\", line 68, in get_app_commands",
        "    app_command_module = importlib.import_module(app + '.commands')",
        "  File \"/usr/lib/python3.8/importlib/__init__.py\", line 127, in import_module",
        "    return _bootstrap._gcd_import(name[level:], package, level)",
        "  File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import",
        "  File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load",
        "  File \"<frozen importlib._bootstrap>\", line 961, in _find_and_load_unlocked",
        "  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed",
        "  File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import",
        "  File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load",
        "  File \"<frozen importlib._bootstrap>\", line 973, in _find_and_load_unlocked",
        "ModuleNotFoundError: No module named 'erpnext'",
        "Traceback (most recent call last):",
        "  File \"/usr/lib/python3.8/runpy.py\", line 194, in _run_module_as_main",
        "    return _run_code(code, main_globals, None,",
        "  File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code",
        "    exec(code, run_globals)",
        "  File \"/home/erper/frappe-bench/apps/frappe/frappe/utils/bench_helper.py\", line 99, in <module>",
        "    main()",
        "  File \"/home/erper/frappe-bench/apps/frappe/frappe/utils/bench_helper.py\", line 18, in main",
        "    click.Group(commands=commands)(prog_name='bench')",
        "  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 764, in __call__",
        "    return self.main(*args, **kwargs)",
        "  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 717, in main",
        "    rv = self.invoke(ctx)",
        "  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 1137, in invoke",
        "    return _process_result(sub_ctx.command.invoke(sub_ctx))",
        "  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 1137, in invoke",
        "    return _process_result(sub_ctx.command.invoke(sub_ctx))",
        "  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 956, in invoke",
        "    return ctx.invoke(self.callback, **ctx.params)",
        "  File \"/home/erper/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 555, in invoke",
        "    return callback(*args, **kwargs)",
        "  File \"/home/erper/frappe-bench/apps/frappe/frappe/commands/site.py\", line 41, in new_site",
        "    frappe.init(site=site, new_site=True)",
        "  File \"/home/erper/frappe-bench/apps/frappe/frappe/__init__.py\", line 175, in init",
        "    setup_module_map()",
        "  File \"/home/erper/frappe-bench/apps/frappe/frappe/__init__.py\", line 1019, in setup_module_map",
        "    for module in get_module_list(app):",
        "  File \"/home/erper/frappe-bench/apps/frappe/frappe/__init__.py\", line 882, in get_module_list",
        "    return get_file_items(os.path.join(os.path.dirname(get_module(app_name).__file__), \"modules.txt\"))",
        "  File \"/home/erper/frappe-bench/apps/frappe/frappe/__init__.py\", line 840, in get_module",
        "    return importlib.import_module(modulename)",
        "  File \"/usr/lib/python3.8/importlib/__init__.py\", line 127, in import_module",
        "    return _bootstrap._gcd_import(name[level:], package, level)",
        "  File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import",
        "  File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load",
        "  File \"<frozen importlib._bootstrap>\", line 973, in _find_and_load_unlocked",
        "ModuleNotFoundError: No module named 'erpnext'"
    ],
    "stdout": "",
    "stdout_lines": []
}

PLAY RECAP *************************************************************************************************************
localhost                  : ok=77   changed=42   unreachable=0    failed=1    skipped=63   rescued=0    ignored=0

Traceback (most recent call last):
  File "install.py", line 498, in <module>
    install_bench(args)
  File "install.py", line 279, in install_bench
    run_playbook('site.yml', sudo=True, extra_vars=extra_vars)
  File "install.py", line 414, in run_playbook
    success = subprocess.check_call(args, cwd=playbooks_folder, stdout=log_stream, stderr=sys.stderr)
  File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ansible-playbook', '-c', 'local', 'site.yml', '-vvvv', '-e', '@/tmp/extra_vars.json', '--become', '--become-user=erper']' returned non-zero exit status 2.
  1. If you face ModuleNotFoundError: No module named ‘erpnext .

Follow this https://medium.com/@binodpaneru23/setting-up-erpnext-in-mac-os-c475466f5403

Based on this doc I used

frappe-bench/env/bin/pip3 install -U -e ./apps/erpnext

Thanks @arun992 for steps 5 and 6

  1. if you get stuck with Cython is required to compile pandas from a development branch. error.
    Check this post [https://github.com/frappe/erpnext/issues/22424 ]

Based on this doc use the following commands:

frappe-bench/env/bin/pip3 install pandas==0.24.2
frappe-bench/env/bin/pip install numpy==1.18.5

After this use

frappe-bench/env/bin/pip3 install -U -e ./apps/erpnext

Oncef inished the erpnext installationcontinue with the command

sudo frappe-bench/env/bin/python3 temp --production --user frappe --mariadb-version 10.5 --verbose

1 Like
frappe-bench/env/bin/pip3 install -U -e ./apps/erpnext
ERROR: ./apps/erpnext is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).

Note also I haven’t a Mac, but a Windows 10 wls2 envirnoment.

@Ido_Traini Erpnext is not made for working on such platforms. It is highly recommended to use the Linux based OS for installation and testing ERPNEXT.

However there are some brave souls who has tried making ERPNEXT work with WSL environment, please check the link below for more understanding.

@Nikunj_Patel
wsl2 is a virtual machine and there are no reasons because erpnext cannot run on it. There are details to resolve, sure, as always when you want to work with linux.
I’m trying to do it, for me and for anyone want to use erpnext on wls2. I think this is the right approach on open-source material, but this is your topic and I will stop to post questions and found solutions.

Only a note: regarding the command:
frappe-bench/env/bin/pip3 install -U -e ./apps/erpnext

perhaps it can be useful to know that it is not correct, at least on my platform. Correct command is:

frappe-bench/env/bin/pip3 install -U -e ./frappe-bench/apps/erpnext

regards.

1 Like

@Ido_Traini yes you are right to use open source as you deem fit, but as instructions from the core developers are clear that the current version installation via install.py script works best with ubunutu 18.04, Centos8 and debian. Anything else would require some hack. This is what I tried to do when I installed it on ubunut20.04. (this installation procedure is true for ERPNEXT 12 version. Version 13 might need some tweaking because there is lots of new things in it.)

Since all this OS behaves little different than others + lots of custom application installed on any given machine, it is impossible to have installation script to have 1 size fits all mode.

I have already shared a post of installing ERPNEXT12 on WSL on windows 10. If that might help you in anyway.

Anyways best of luck in your troubleshooting and if at all you find something working with your WSL please create a post and share it with community, just in case some core team developer might get something important from it in future.

@Nikunj_Patel
I’ve just concluded with success installation on Ubuntu 20.04 in wls2 environment. Your suggestions contain some command errors but with minimum tweaking it is possible.

now I will retry the procedure in a fresh installation and I will create a new post as reference for whatever want o need to do the same.
Thanks for your work.

Glad to know this works for you. I am a novice and tried it and didn’t work and since I’m unabke to dual boot my PC I’m unable to try it out. I will be looking forward to your post where you have a fail proof approach and also possible you try for v13?

@tobsowo sure. I will try for a fresh install later this week and post my sequence, but it will be mostly similar at the @Nikunj_Patel instructions.

Also, I’ve tried with this: Install v13 Production on Ubuntu 20.04 VPS - This is how I did it "Easy Install" script
and I was able to complete the installation (but I have actually some problems with DB).

In both cases, just remember to install this script before: GitHub - DamionGans/ubuntu-wsl2-systemd-script: [Does not work anymore!] Script to enable systemd support on current Ubuntu WSL2 images for activate the systemd.

1 Like

Cool. I will check that out. Thank you.

I tried using the script to activate systemd but did not work, here is what I have

oluwatobi@Oluwatobi-PC:/mnt/c/Users/TOBI/ubuntu-wsl2-systemd-script$ bash ubuntu-wsl2-systemd-script.sh
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]
Ign:2 http://apt.vestacp.com/focal focal InRelease
Get:3 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [619 kB]
Hit:4 http://archive.ubuntu.com/ubuntu focal InRelease
Get:5 http://nginx.org/packages/mainline/ubuntu focal InRelease [2861 B]
Err:6 http://apt.vestacp.com/focal focal Release
  404  Not Found [IP: 104.236.66.100 80]
Get:7 http://nginx.org/packages/mainline/ubuntu focal/nginx amd64 Packages [25.0 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [126 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [7436 B]
Get:11 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [181 kB]
Get:12 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [26.8 kB]
Get:13 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 c-n-f Metadata [396 B]
Get:14 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [551 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Get:16 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [82.1 kB]
Get:17 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [10.7 kB]
Get:18 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [14.8 kB]
Get:19 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [3160 B]
Get:20 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [340 B]
Get:21 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [944 kB]
Get:22 http://archive.ubuntu.com/ubuntu focal-updates/main Translation-en [216 kB]
Get:23 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [13.2 kB]
Get:24 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [206 kB]
Get:25 http://archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [30.6 kB]
Get:26 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [440 B]
Get:27 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [759 kB]
Get:28 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [162 kB]
Get:29 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [17.0 kB]
Get:30 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [21.6 kB]
Get:31 http://archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [5508 B]
Get:32 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [600 B]
Get:33 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [4032 B]
Get:34 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [224 B]
Reading package lists... Done
E: The repository 'http://apt.vestacp.com/focal focal Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

SUCCESS: Specified value was saved.

SUCCESS: Specified value was saved.

Did you tried to control if all ok? You have to restart Ubuntu e launch systemctl. If it runs (quit with “q”), you have installed the script

Sorry, didn’t get that can you help with the command to run?

I uninstalled the WSL Ubuntu and install a fresh one and the script worked. Then I used this script to install ERPNext v13 installer · GitHub although there were few error but it successfully install but unfortunately, I can access ERPNext on my browser.

how to do this:

Fixed that by copying the snippet for wkhtmltox again to /tmp/.bench/playbooks/roles/wkhtmltopdf/tasks/main.yml.

I honestly don’t remember anymore. I’ll try to recreate over the weekend if I find time, but I can’t guarantee that.

1 Like

I installed it. Just change ubuntu version

hi @Nikunj_Patel can u help me out to install the erpnext