Install files to executable directory instead of working directory #2865

Open
opened 2026-03-04 02:31:55 -05:00 by deekerman · 3 comments
Owner

Originally created by @MichaIng on GitHub (Jun 24, 2021).

Have a question or an idea? Please search it on our forum to make sure it was not yet asked. If you cannot find what you had in mind, please submit it here.

Prerequisites

Please answer the following questions for yourself before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • I am running the latest version
  • I checked the documentation and found no answer
  • I checked to make sure that this issue has not already been filed

Problem Description

The updater currently installs files to the working directory: https://github.com/AdguardTeam/AdGuardHome/blob/master/internal/updater/updater.go#L249-L274
By default the working directory matches the executable directory, but using the -w, --work-dir option changes this, so that files are tried to be installed to the wrong directory.

Proposed Solution

Instead of deriving the target directory from the working directory, the updater could use the location of the running AdGuard Home executable itself, so that the working directory can be changed without breaking the updater.

Alternatives Considered

I'm not sure whether there is already some kind of bin dir implemented that can be used, or otherwise if there is a different way to change the location of config and data without breaking the updater. But it doesn't seem intended to me that -w, --work-dir inherently breaks it.

Additional Information

We use the -w, --work-dir option in our implementation to separate the static binary and install files from variable user data and config, but the updater then fails.

Originally created by @MichaIng on GitHub (Jun 24, 2021). Have a question or an idea? Please search it [on our forum](https://github.com/AdguardTeam/AdGuardHome/discussions) to make sure it was not yet asked. If you cannot find what you had in mind, please [submit it here](https://github.com/AdguardTeam/AdGuardHome/discussions/new). ### Prerequisites Please answer the following questions for yourself before submitting an issue. **YOU MAY DELETE THE PREREQUISITES SECTION.** - [x] I am running the latest version - [x] I checked the documentation and found no answer - [x] I checked to make sure that this issue has not already been filed ### Problem Description The updater currently installs files to the working directory: https://github.com/AdguardTeam/AdGuardHome/blob/master/internal/updater/updater.go#L249-L274 By default the working directory matches the executable directory, but using the `-w, --work-dir` option changes this, so that files are tried to be installed to the wrong directory. ### Proposed Solution Instead of deriving the target directory from the working directory, the updater could use the location of the running AdGuard Home executable itself, so that the working directory can be changed without breaking the updater. ### Alternatives Considered I'm not sure whether there is already some kind of bin dir implemented that can be used, or otherwise if there is a different way to change the location of config and data without breaking the updater. But it doesn't seem intended to me that `-w, --work-dir` inherently breaks it. ### Additional Information We use the `-w, --work-dir` option in our implementation to separate the static binary and install files from variable user data and config, but the updater then fails.
Author
Owner

@ainar-g commented on GitHub (Jun 25, 2021):

Hi, and thanks for the report. There are several ongoing developments wrt the updater and directory evaluation, most notably #2630 and #2902. We'll look at the issue at hand during or after we've handled those.

@ainar-g commented on GitHub (Jun 25, 2021): Hi, and thanks for the report. There are several ongoing developments wrt the updater and directory evaluation, most notably #2630 and #2902. We'll look at the issue at hand during or after we've handled those.
Author
Owner

@MichaIng commented on GitHub (Jun 25, 2021):

Many thanks. There is no way to disable the updater while keeping the update check/notification enabled, right?

@MichaIng commented on GitHub (Jun 25, 2021): Many thanks. There is no way to disable the updater while keeping the update check/notification enabled, right?
Author
Owner

@ainar-g commented on GitHub (Jun 25, 2021):

I don't think so.

@ainar-g commented on GitHub (Jun 25, 2021): I don't think so.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/AdGuardHome#2865
No description provided.