pulsejet / memories

Fast, modern and advanced photo management suite. Runs as a Nextcloud app.
https://memories.gallery
GNU Affero General Public License v3.0
3.22k stars 87 forks source link

exiftool failed test: failed to run exiftool: perl /usr/local/www/nextcloud/apps/memories/bin-ext/exiftool/exiftool -ver. #1131

Open imsand opened 7 months ago

imsand commented 7 months ago

Describe the bug exiftool failed test: failed to run exiftool: perl /usr/local/www/nextcloud/apps/memories/bin-ext/exiftool/exiftool -ver.

Platform:

Additional context Nextcloud server logs: PHP proc_open(): Exec failed: No such file or directory at /usr/local/www/nextcloud/apps/memories/lib/Exif.php#513 Memories: Write hook failed to index file

pulsejet commented 7 months ago

Do you have perl in PATH?

imsand commented 6 months ago

Hi, yes echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin

.. and perl is installed in /usr/local/bin

perl -version This is perl 5, version 36, subversion 3 (v5.36.3) built for amd64-freebsd-thread-multi

If i use the same command from command line it works: perl /usr/local/www/nextcloud/apps/memories/bin-ext/exiftool/exiftool -ver 12.70

Is there possible a problem with cron? Do I need to add the full path of perl in cron.php? If yes, can someone support?

Do you have perl in PATH?

Hi, yes echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin

.. and perl is installed in /usr/local/bin

perl -version This is perl 5, version 36, subversion 3 (v5.36.3) built for amd64-freebsd-thread-multi

If i use the same command from command line it works: perl /usr/local/www/nextcloud/apps/memories/bin-ext/exiftool/exiftool -ver 12.70

Is there possible a problem with cron? Do I need to add the full path of perl in cron.php? If yes, can someone support?

johnjaylward commented 1 month ago

I was able to do a work-around by creating a symlink from /usr/local/bin/perl to /usr/bin/perl.

But it would be preferable if the application detected the Perl path and explicitly called perl -m script.pl instead of relying on the hard coded path at the top of the script file.