05-19-2025 10:58 AM
Followed the directions. Did a successful sha256sum of the file on download.
Running install fails.
Make did not appear to throw any errors.
This was the command used, from the directions-
sudo ./duoauthproxy-build/install --install-dir /opt/duoauthproxy --service-user duo_authproxy_svc --log-group duo_authproxy_grp --create-init-script yes
The install target dir, /opt/duoauthproxy has 865M avail and nothing else in the directory. Host is a fresh install, have repeated build attempt a few times.
Output from failed install follows:
Preparing for upgrade installation...
Removing initscript...
Preserving old installation...
Traceback (most recent call last):
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/shutil.py", line 853, in move
os.rename(src, real_dst)
OSError: [Errno 16] Device or resource busy: '/opt/duoauthproxy' -> '/opt/duoauthproxy.1'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/site-packages/duoauthproxy/linux_installer/authproxy_upgrade_manager.py", line 68, in save_old_files
shutil.move(self.inst_dir, self.inst_dir_old)
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/shutil.py", line 871, in move
rmtree(src)
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/shutil.py", line 763, in rmtree
onerror(os.rmdir, path, sys.exc_info())
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/shutil.py", line 761, in rmtree
os.rmdir(path, dir_fd=dir_fd)
OSError: [Errno 16] Device or resource busy: '/opt/duoauthproxy'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/./duoauthproxy-build/install", line 37, in <module>
sys.exit(main(sys.argv))
^^^^^^^^^^^^^^
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/./duoauthproxy-build/install", line 34, in main
return do_install(src_dir, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/site-packages/duoauthproxy/linux_installer/authproxy_installer.py", line 1015, in do_install
installer.install()
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/site-packages/duoauthproxy/linux_installer/authproxy_installer.py", line 436, in install
upgrader.start()
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/site-packages/duoauthproxy/linux_installer/authproxy_upgrade_manager.py", line 27, in start
self.save_old_files()
File "/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/usr/local/lib/python3.11/site-packages/duoauthproxy/linux_installer/authproxy_upgrade_manager.py", line 70, in save_old_files
raise UpgradeFailed("Failed to store files") from e
duoauthproxy.linux_installer.base.UpgradeFailed: Failed to store files
Solved! Go to Solution.
05-27-2025 08:49 AM
Went back to Debian 12, and performed some checks running the make as root. The following packages should also be listed for fresh Debian installs: sudo zlib1g-dev python3-pip python3-venv
There are assumptions being made about Python and shell pathing on Debian that probably should be revisited.
Build completes, and install completes with (different) errors, but now the service will start.
Also, the target for nologin on the Debian platform is /usr/sbin/nologin, not /bin/nologin.
05-22-2025 06:52 AM
You noted "host is a fresh install". Is the Authentication Proxy install fresh too or is trying to upgrade an existing install of that?
The output seems to indicate something is holding the existing directory and is preventing the Duo installer from clearing an old install to upgrade versions.
Whether it is a clean install of Duo or not, try using lsof to see what might be holding /opt/duoauthproxy.
05-22-2025 12:38 PM
Thought of that. There is no output for lsof /opt or lsof /opt/duoauthproxy before or after running build. lslocks only ever lists the crond.pid.
The install is fresh as well. There is nothing else and no other regular users on the guest.
Removed the /opt/duoauthproxy.# directory, and removed the build directory as well when trying again every time. Found pkg-config was missing from the Debian install directions, added that, but nothing changed in the outcome.
The perms on the /opt/duoauthproxy partition are:
drwxr-xr-x 2 root root 4096 May 15 16:45 duoauthproxy
Here are the rest of the warnings, in case I'm missing something else:
configure: WARNING: unrecognized options: --with-threads, --enable-unicode, --disable-sqlite
configure: WARNING: --with(out)-system-ffi is ignored on this platform
configure: WARNING: unrecognized options: --with-threads, --enable-unicode, --disable-sqlite
install: cannot create regular file '/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/conf/features.txt': No such file or directory
make: [Makefile:155: /home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build/conf/features.txt] Error 1 (ignored)
05-23-2025 07:11 AM
Can the sudo user write to `/home/[REDACTED]/duoauthproxy-6.5.0-src/duoauthproxy-build` and subdirectories?
05-23-2025 07:19 AM
05-23-2025 01:20 PM
Also, performed the same build on a fresh RL9 vm, with a /opt/duoauthproxy partition, same defaults, same exact results when running the install.
05-27-2025 08:49 AM
Went back to Debian 12, and performed some checks running the make as root. The following packages should also be listed for fresh Debian installs: sudo zlib1g-dev python3-pip python3-venv
There are assumptions being made about Python and shell pathing on Debian that probably should be revisited.
Build completes, and install completes with (different) errors, but now the service will start.
Also, the target for nologin on the Debian platform is /usr/sbin/nologin, not /bin/nologin.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide