Request/Question: Is there a way to do a non-interactive install? #132

Closed
opened 2026-04-24 22:59:15 +02:00 by adam · 7 comments
Owner

Originally created by @Abraxos on GitHub (Dec 15, 2021).

I've been trying to write an ansible playbook to deploy this app consistently to my server. I was running into issues and realized that the installation process runs a user-interactive script, which makes it very difficult to install/manage through a configuration management system. I also ran into package-signing issues with the repo, but that just might be me doing something wrong.

I even tried installing manually, grabbing the configuration file generated by the interactive section, figuring out how its structured, and adding the creation of this file to my ansible playbook. However, when I re-ran the playbook, I realized that it asks me whether I want to use the existing configuration or not.

Is there a way to run the install non-interactively? Even if I have to create a configuration file somewhere. Is there some parameter I can set? If not, can we add one, it would be really helpful for this to be deployable non-interactively.

Also (and I understand if you would prefer for me to file this as a separate issue) the interactive installer script appears to overwrite the /etc/default/audiobookshelf file with its own before it prompts the user to confirm whether they want to keep the existing file. It overwrites it with something like this:

AUDIOBOOK_PATH=                                       
METADATA_PATH=/metadata                               
CONFIG_PATH=/config                                   
FFMPEG_PATH=/usr/lib/audiobookshelf-ffmpeg/ffmpeg     
PORT=                                                    
Originally created by @Abraxos on GitHub (Dec 15, 2021). I've been trying to write an ansible playbook to deploy this app consistently to my server. I was running into issues and realized that the installation process runs a user-interactive script, which makes it very difficult to install/manage through a configuration management system. I also ran into package-signing issues with the repo, but that just might be me doing something wrong. I even tried installing manually, grabbing the configuration file generated by the interactive section, figuring out how its structured, and adding the creation of this file to my ansible playbook. However, when I re-ran the playbook, I realized that it asks me whether I want to use the existing configuration or not. Is there a way to run the install non-interactively? Even if I have to create a configuration file somewhere. Is there some parameter I can set? If not, can we add one, it would be really helpful for this to be deployable non-interactively. Also (and I understand if you would prefer for me to file this as a separate issue) the interactive installer script appears to overwrite the /etc/default/audiobookshelf file with its own *before* it prompts the user to confirm whether they want to keep the existing file. It overwrites it with something like this: ``` AUDIOBOOK_PATH= METADATA_PATH=/metadata CONFIG_PATH=/config FFMPEG_PATH=/usr/lib/audiobookshelf-ffmpeg/ffmpeg PORT= ```
adam closed this issue 2026-04-24 22:59:15 +02:00
Author
Owner

@advplyr commented on GitHub (Dec 15, 2021):

For sure, this needs to be updated.
The PPA w/ installer was a quick and dirty solution to make sure it could be done. I haven't iterated on it since because it wasn't getting used yet (as far as I know). The last build in the PPA is probably 40 versions behind.

I will update that to the latest version and look into the best way to handle bypassing the interactive installer. How is this handled with other software you are deploying with ansible?

@advplyr commented on GitHub (Dec 15, 2021): For sure, this needs to be updated. The PPA w/ installer was a quick and dirty solution to make sure it could be done. I haven't iterated on it since because it wasn't getting used yet (as far as I know). The last build in the PPA is probably 40 versions behind. I will update that to the latest version and look into the best way to handle bypassing the interactive installer. How is this handled with other software you are deploying with ansible?
Author
Owner

@Abraxos commented on GitHub (Dec 15, 2021):

Uh I hate to tell you, but this is the only piece of software I have ever installed that uses an interactive installer like this. I have literally never seen it before.

I think I've seen something similar with Java (because of Oracle Licensing Crap) and the solution was to use debconf to just say "yes I agree to whatever".


That being said, I do in fact want to use the PPA installer, and would appreciate it if this worked. I was in fact just about to post another issue that the installer does not work (error below) but seeing as this is 40 versions behind, I am pretty confident an update would fix it

ffmpeg-git-20211209-amd64-static/model/vmaf_4k_v0.6.1.pkl.model                            
ffmpeg-git-20211209-amd64-static/model/vmaf_v0.6.1.pkl                                     
ffmpeg-git-20211209-amd64-static/model/vmaf_v0.6.1neg.pkl                                  
ffmpeg-git-20211209-amd64-static/readme.txt                                                
ffmpeg-git-20211209-amd64-static/ffmpeg                                                    
xz: (stdin): Unexpected end of input                                                       
tar: Unexpected EOF in archive                                                             
tar: Unexpected EOF in archive                                                             
tar: Error is not recoverable: exiting now                                                 
dpkg: error processing archive audiobookshelf_1.4.12_amd64.deb (--install):                
 new audiobookshelf package pre-installation script subprocess returned error exit status 2
Errors were encountered while processing:                                                  
 audiobookshelf_1.4.12_amd64.deb                                                           
@Abraxos commented on GitHub (Dec 15, 2021): Uh I hate to tell you, but this is the only piece of software I have ever installed that uses an interactive installer like this. I have literally never seen it before. I think I've seen something similar with Java (because of Oracle Licensing Crap) and the solution was to use debconf to just say "yes I agree to whatever". --- That being said, I do in fact want to use the PPA installer, and would appreciate it if this worked. I was in fact just about to post another issue that the installer does not work (error below) but seeing as this is 40 versions behind, I am pretty confident an update would fix it ``` ffmpeg-git-20211209-amd64-static/model/vmaf_4k_v0.6.1.pkl.model ffmpeg-git-20211209-amd64-static/model/vmaf_v0.6.1.pkl ffmpeg-git-20211209-amd64-static/model/vmaf_v0.6.1neg.pkl ffmpeg-git-20211209-amd64-static/readme.txt ffmpeg-git-20211209-amd64-static/ffmpeg xz: (stdin): Unexpected end of input tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now dpkg: error processing archive audiobookshelf_1.4.12_amd64.deb (--install): new audiobookshelf package pre-installation script subprocess returned error exit status 2 Errors were encountered while processing: audiobookshelf_1.4.12_amd64.deb ```
Author
Owner

@Abraxos commented on GitHub (Dec 15, 2021):

Sorry, don't mean to come on too hard, I actually really appreciate that this software exists and am probably overeager to get it running!

@Abraxos commented on GitHub (Dec 15, 2021): Sorry, don't mean to come on too hard, I actually really appreciate that this software exists and am probably overeager to get it running!
Author
Owner

@advplyr commented on GitHub (Dec 15, 2021):

Be happy to tell me everything! It will make the project better.
I'm removing the installer now, it will use the config found in /etc/default/audiobookshelf
or use this default config:

  AUDIOBOOK_PATH="/usr/share/audiobookshelf/audiobooks"
  METADATA_PATH="/usr/share/audiobookshelf/metadata"
  CONFIG_PATH="/usr/share/audiobookshelf/config"
  FFMPEG_PATH="/usr/lib/audiobookshelf-ffmpeg/ffmpeg"
  PORT=7331

Hopefully that is typical

@advplyr commented on GitHub (Dec 15, 2021): Be happy to tell me everything! It will make the project better. I'm removing the installer now, it will use the config found in `/etc/default/audiobookshelf` or use this default config: ```sh AUDIOBOOK_PATH="/usr/share/audiobookshelf/audiobooks" METADATA_PATH="/usr/share/audiobookshelf/metadata" CONFIG_PATH="/usr/share/audiobookshelf/config" FFMPEG_PATH="/usr/lib/audiobookshelf-ffmpeg/ffmpeg" PORT=7331 ``` Hopefully that is typical
Author
Owner

@Abraxos commented on GitHub (Dec 15, 2021):

yeah that's perfectly reasonable, I can always modify it later with ansible

@Abraxos commented on GitHub (Dec 15, 2021): yeah that's perfectly reasonable, I can always modify it later with ansible
Author
Owner

@advplyr commented on GitHub (Dec 15, 2021):

Okay it is updated now. apt update will show the warning about the key, but it can be ignored.
Then apt install audiobookshelf does not need any interaction.
Also using the latest version now v1.6.41.

Let me know how it goes.

@advplyr commented on GitHub (Dec 15, 2021): Okay it is updated now. `apt update` will show the warning about the key, but it can be ignored. Then `apt install audiobookshelf` does not need any interaction. Also using the latest version now `v1.6.41`. Let me know how it goes.
Author
Owner

@Abraxos commented on GitHub (Dec 15, 2021):

It worked! I'm up and running. Thank you!

@Abraxos commented on GitHub (Dec 15, 2021): It worked! I'm up and running. Thank you!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#132