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

Point only to handbook.datalad.org for (certain) installation targets? #151

Open
adswa opened this issue Jan 8, 2025 · 1 comment
Open

Comments

@adswa
Copy link
Member

adswa commented Jan 8, 2025

@mslw shared an installation issue in the lab chat:

Here's an e-mail I got from our new SFB1451-Z03 contact. Previously, I had shared a link to https://www.datalad.org/#install

Hey Michal, as I am nowhere near knowing my way around programming, I am actually struggling with installing DataLad. Our IT-service wasn't able to help. Maybe you know what could be going on here? Thanks so much for looking into it!

The attached traceback suggests that datalad-installer got lost with permissions and crashed. Will share in a second and consider posting a datalad-installer issue.
In a response, I suggested to follow the installation instructions from the Handbook instead, ignore datalad-installer, use the git-annex installer from git-annex website, and use a virtual environment for datalad.

With the traceback being:

[Version 10.0.22631.4460]
(c) Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\perlovak>
C:\Users\perlovak>python -m pip install datalad-installer
Collecting datalad-installer
  Downloading datalad_installer-1.1.1-py3-none-any.whl.metadata (23 kB)
Downloading datalad_installer-1.1.1-py3-none-any.whl (32 kB)
Installing collected packages: datalad-installer
Successfully installed datalad-installer-1.1.1

C:\Users\perlovak>datalad-installer git-annex -m datalad/git-annex:release
2025-01-07T09:58:30+0100 [INFO    ] datalad_installer: Writing environment modifications to C:\Users\perlovak\AppData\Local\Temp\dl-env-olv07jku.sh
2025-01-07T09:58:30+0100 [INFO    ] datalad_installer: Installing git-annex via datalad/git-annex:release
2025-01-07T09:58:30+0100 [INFO    ] datalad_installer: Version: None
2025-01-07T09:58:30+0100 [INFO    ] datalad_installer: Downloading https://github.com/datalad/git-annex/releases/download/10.20250102/git-annex-installer_10.20250102_x64.exe
2025-01-07T09:58:37+0100 [INFO    ] datalad_installer: Running: 'C:\Users\perlovak\AppData\Local\Temp\tmp87s0f7iu\git-annex-installer_10.20250102_x64.exe' /S
2025-01-07T09:58:38+0100 [INFO    ] datalad_installer: Operation requires elevation; rerunning as administrator
2025-01-07T09:58:38+0100 [INFO    ] datalad_installer: Running as administrator: C:\Users\perlovak\AppData\Local\Temp\tmp87s0f7iu\git-annex-installer_10.20250102_x64.exe /S
2025-01-07T09:58:43+0100 [INFO    ] datalad_installer: git-annex is now installed at C:\Program Files\Git\usr\bin\git-annex.exe
2025-01-07T09:58:48+0100 [ERROR   ] datalad_installer: C:\Program Files\Git\usr\bin\git-annex.exe does not exist!

C:\Users\perlovak>datalad-installer git-annex -m datalad/git-annex:release
2025-01-07T10:16:28+0100 [INFO    ] datalad_installer: Writing environment modifications to C:\Users\perlovak\AppData\Local\Temp\dl-env-l_gizsmn.sh
2025-01-07T10:16:28+0100 [INFO    ] datalad_installer: Installing git-annex via datalad/git-annex:release
2025-01-07T10:16:28+0100 [INFO    ] datalad_installer: Version: None
2025-01-07T10:16:29+0100 [INFO    ] datalad_installer: Downloading https://github.com/datalad/git-annex/releases/download/10.20250102/git-annex-installer_10.20250102_x64.exe
2025-01-07T10:16:41+0100 [INFO    ] datalad_installer: Running: 'C:\Users\perlovak\AppData\Local\Temp\tmpnstep0xo\git-annex-installer_10.20250102_x64.exe' /S
2025-01-07T10:16:41+0100 [INFO    ] datalad_installer: Operation requires elevation; rerunning as administrator
2025-01-07T10:16:41+0100 [INFO    ] datalad_installer: Running as administrator: C:\Users\perlovak\AppData\Local\Temp\tmpnstep0xo\git-annex-installer_10.20250102_x64.exe /S
Traceback (most recent call last):
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\shutil.py", line 625, in _rmtree_unsafe
    os.unlink(fullname)
    ~~~~~~~~~^^^^^^^^^^
PermissionError: [WinError 5] Zugriff verweigert: 'C:\\Users\\perlovak\\AppData\\Local\\Temp\\tmpnstep0xo\\git-annex-installer_10.20250102_x64.exe'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Scripts\datalad-installer.exe\__main__.py", line 7, in
 <module>
    sys.exit(main())
             ~~~~^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 3142, in
 main
    return manager.main(argv)
           ~~~~~~~~~~~~^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 746, in main
    self.addcomponent(name=cr.name, **cr.kwargs)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 785, in addcomponent
    component(self).provide(**kwargs)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 1343, in
 provide
    bins = self.get_installer(method).install(self.NAME, **kwargs)
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 1475, in
 install
    bindir = self.install_package(package, **kwargs)
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 2053, in
 install_package
    with suppress(NotADirectoryError), tempfile.TemporaryDirectory() as tmpdir_:
                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\tempfile.py", line 946, in __exit__
    self.cleanup()
    ~~~~~~~~~~~~^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\tempfile.py", line 950, in cleanup
    self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\tempfile.py", line 930, in _rmtree
    _shutil.rmtree(name, onexc=onexc)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\shutil.py", line 790, in rmtree
    return _rmtree_unsafe(path, onexc)
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\shutil.py", line 629, in _rmtree_unsafe
    onexc(os.unlink, fullname, err)
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\tempfile.py", line 905, in onexc
    _os.unlink(path)
    ~~~~~~~~~~^^^^^^
PermissionError: [WinError 5] Zugriff verweigert: 'C:\\Users\\perlovak\\AppData\\Local\\Temp\\tmpnstep0xo\\git-annex-installer_10.20250102_x64.exe'

C:\Users\perlovak>datalad-installer git-annex -m datalad/git-annex:release
2025-01-07T10:18:10+0100 [INFO    ] datalad_installer: Writing environment modifications to C:\Users\perlovak\AppData\Local\Temp\dl-env-i3x3q3nl.sh
2025-01-07T10:18:10+0100 [INFO    ] datalad_installer: Installing git-annex via datalad/git-annex:release
2025-01-07T10:18:10+0100 [INFO    ] datalad_installer: Version: None
2025-01-07T10:18:11+0100 [INFO    ] datalad_installer: Downloading https://github.com/datalad/git-annex/releases/download/10.20250102/git-annex-installer_10.20250102_x64.exe
2025-01-07T10:18:14+0100 [INFO    ] datalad_installer: Running: 'C:\Users\perlovak\AppData\Local\Temp\tmp0o4faoog\git-annex-installer_10.20250102_x64.exe' /S
2025-01-07T10:18:15+0100 [INFO    ] datalad_installer: Operation requires elevation; rerunning as administrator
2025-01-07T10:18:15+0100 [INFO    ] datalad_installer: Running as administrator: C:\Users\perlovak\AppData\Local\Temp\tmp0o4faoog\git-annex-installer_10.20250102_x64.exe /S
Traceback (most recent call last):
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\shutil.py", line 625, in _rmtree_unsafe
    os.unlink(fullname)
    ~~~~~~~~~^^^^^^^^^^
PermissionError: [WinError 5] Zugriff verweigert: 'C:\\Users\\perlovak\\AppData\\Local\\Temp\\tmp0o4faoog\\git-annex-installer_10.20250102_x64.exe'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Scripts\datalad-installer.exe\__main__.py", line 7, in
 <module>
    sys.exit(main())
             ~~~~^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 3142, in
 main
    return manager.main(argv)
           ~~~~~~~~~~~~^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 746, in main
    self.addcomponent(name=cr.name, **cr.kwargs)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 785, in addcomponent
    component(self).provide(**kwargs)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 1343, in
 provide
    bins = self.get_installer(method).install(self.NAME, **kwargs)
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 1475, in
 install
    bindir = self.install_package(package, **kwargs)
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\site-packages\datalad_installer.py", line 2053, in
 install_package
    with suppress(NotADirectoryError), tempfile.TemporaryDirectory() as tmpdir_:
                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\tempfile.py", line 946, in __exit__
    self.cleanup()
    ~~~~~~~~~~~~^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\tempfile.py", line 950, in cleanup
    self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\tempfile.py", line 930, in _rmtree
    _shutil.rmtree(name, onexc=onexc)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\shutil.py", line 790, in rmtree
    return _rmtree_unsafe(path, onexc)
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\shutil.py", line 629, in _rmtree_unsafe
    onexc(os.unlink, fullname, err)
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\perlovak\AppData\Local\Programs\Python\Python313\Lib\tempfile.py", line 905, in onexc
    _os.unlink(path)
    ~~~~~~~~~~^^^^^^
PermissionError: [WinError 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'C:\\Users\\perlovak\\AppData\\Local\\Temp\\tmdatalad-installer git-annex -m datalad/git-annex:release

C:\Users\perlovak>

It is worthwhile thinking about maintaining less sources for installation instructions. At least for Windows, the handbook is much more verbose and actually showcases a different installation method. Also, it is more often used by users to report installation issues. Maybe we should -- at least for Windows -- only point to the handbook.

@mslw
Copy link

mslw commented Jan 9, 2025

+1; I might be biased, but I never found datalad-installer that useful from user perspective. CI, yes; installing different annex releases on Debian to try them out, yes; regular user installs not so much. In my personal opinion, due to the combination of external dependencies (Git, git-annex) with the Python side (pip, conda...), preferred installation can be heavily setup-dependent. The Handbook does a good job explaining the (potential) complexities and making suggestions to let first-time users make informed decisions.

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

2 participants