[GH-ISSUE #1349] Support: Multiple binaries present from brew and pip installs + difficulty running on macOS #3845

Closed
opened 2026-03-15 00:39:44 +03:00 by kerem · 7 comments
Owner

Originally created by @porkchoppie on GitHub (Feb 18, 2024).
Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/1349

$ sudo find / -name config.py -print | grep archivebox

/usr/local/lib/python3.11/site-packages/archivebox/config.py
/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/IPython/core/magics/config.py
/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/matplotlib_inline/config.py
/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/django/apps/config.py
/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/archivebox/config.py
/System/Volumes/Data/usr/local/lib/python3.11/site-packages/archivebox/config.py
/System/Volumes/Data/Users/submerger/Library/Python/3.9/lib/python/site-packages/archivebox/config.py

$ which archivebox
/usr/local/bin/archivebox

I am on a mac, and used brew to install. What to I remove (if anything) and which config file do I update?

Originally created by @porkchoppie on GitHub (Feb 18, 2024). Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/1349 $ sudo find / -name config.py -print | grep archivebox /usr/local/lib/python3.11/site-packages/archivebox/config.py /usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/IPython/core/magics/config.py /usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/matplotlib_inline/config.py /usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/django/apps/config.py /usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/archivebox/config.py /System/Volumes/Data/usr/local/lib/python3.11/site-packages/archivebox/config.py /System/Volumes/Data/Users/submerger/Library/Python/3.9/lib/python/site-packages/archivebox/config.py $ which archivebox /usr/local/bin/archivebox I am on a mac, and used brew to install. What to I remove (if anything) and which config file do I update?
kerem closed this issue 2026-03-15 00:39:50 +03:00
Author
Owner

@pirate commented on GitHub (Feb 18, 2024):

Why are you trying to find config.py? You should never need to directly access that file.

ArchiveBox's exposed config file lives in your data folder (wherever you create it) e.g. ~/archivebox/data and is called ArchiveBox.conf.

No need to remove anything just makes sure you have run pip install --ignore-installed archivebox. All the setup instructions are in the README & Wiki too.

<!-- gh-comment-id:1951141812 --> @pirate commented on GitHub (Feb 18, 2024): Why are you trying to find `config.py`? You should never need to directly access that file. ArchiveBox's exposed config file lives in your data folder (wherever you create it) e.g. `~/archivebox/data` and is called `ArchiveBox.conf`. No need to remove anything just makes sure you have run `pip install --ignore-installed archivebox`. All the setup instructions are in the README & Wiki too.
Author
Owner

@porkchoppie commented on GitHub (Feb 18, 2024):

Simply because it’s not where it is supposed to be. when I did the install, I created directories as indicated in the instructions, but there’s no sign of a configuration file except for configuration.conf or something like that with some environment variables indicated, but nothing else. If I should be creating a new configuration file from scratch, that’s fine if you should be using this one which is no mention of this file away with extension in the documentation.

As such I looked for where was it installed of my machine and I found three different binaries and three different locations and found their Python Configuration files I wasn’t looking to edit the python file mind you but if I looked at it, it should tell me where I can find it’s getting its settings from.. Either they’re all pointing to the location that they’re supposed to or they’re pointing to different locations.

I’m at the point now. I might uninstall everything and start from scratch because it’s a mess. Never a good sign when you have it installed in several different locations. But I was hoping to save time and energy and salvage what I could get it up and running.

if you also think it’s a good idea to remove some of the binaries and their directories. Let me know and I will take a look.

On Sun, Feb 18, 2024 at 2:54 AM, Nick Sweeting @.***(mailto:On Sun, Feb 18, 2024 at 2:54 AM, Nick Sweeting < wrote:

Why are you trying to find config.py? You should never need to directly access that file.

ArchiveBox's config file lives in your data folder (wherever you create it) e.g. ~/archivebox and is called ArchiveBox.conf.


Reply to this email directly,
view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

<!-- gh-comment-id:1951374102 --> @porkchoppie commented on GitHub (Feb 18, 2024): Simply because it’s not where it is supposed to be. when I did the install, I created directories as indicated in the instructions, but there’s no sign of a configuration file except for configuration.conf or something like that with some environment variables indicated, but nothing else. If I should be creating a new configuration file from scratch, that’s fine if you should be using this one which is no mention of this file away with extension in the documentation. As such I looked for where was it installed of my machine and I found three different binaries and three different locations and found their Python Configuration files I wasn’t looking to edit the python file mind you but if I looked at it, it should tell me where I can find it’s getting its settings from.. Either they’re all pointing to the location that they’re supposed to or they’re pointing to different locations. I’m at the point now. I might uninstall everything and start from scratch because it’s a mess. Never a good sign when you have it installed in several different locations. But I was hoping to save time and energy and salvage what I could get it up and running. if you also think it’s a good idea to remove some of the binaries and their directories. Let me know and I will take a look. On Sun, Feb 18, 2024 at 2:54 AM, Nick Sweeting ***@***.***(mailto:On Sun, Feb 18, 2024 at 2:54 AM, Nick Sweeting <<a href=)> wrote: > Why are you trying to find config.py? You should never need to directly access that file. > > ArchiveBox's config file lives in your data folder (wherever you create it) e.g. ~/archivebox and is called ArchiveBox.conf. > > — > Reply to this email directly, [view it on GitHub](https://github.com/ArchiveBox/ArchiveBox/issues/1349#issuecomment-1951141812), or [unsubscribe](https://github.com/notifications/unsubscribe-auth/BF47A7R5CY2VB2BUM7RBGNDYUHMVLAVCNFSM6AAAAABDN36KQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJRGE2DCOBRGI). > You are receiving this because you authored the thread.Message ID: ***@***.***>
Author
Owner

@pirate commented on GitHub (Feb 19, 2024):

Ok, here's a breakdown of the paths you're seeing above:

  • /usr/local/lib/python3.11/site-packages/archivebox/config.py
    indicates you have pip-installed archivebox (its ok but not required to have both pip and brew-installed archivebox versions as pip's ArchiveBox version is often newer, but brew provides auto installation of all the system dependencies that pip cant install automatically)
  • /usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/IPython/core/magics/config.py
    ignore this, it's a sub-dependency of archivebox and is not archivebox's own config.py
  • /usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/matplotlib_inline/config.py
    ignore this, it's a sub-dependency of archivebox and is not archivebox's own config.py
  • /usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/django/apps/config.py
    ignore this, it's a sub-dependency of archivebox and is not archivebox's own config.py
  • /usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/archivebox/config.py
    this is the correct original source location of config.py installed by homebrew
  • /System/Volumes/Data/usr/local/lib/python3.11/site-packages/archivebox/config.py
    this is an artifact of how macOS creates a Data volume for user data causing paths to show up twice, it's not a real duplicate
  • /System/Volumes/Data/Users/submerger/Library/Python/3.9/lib/python/site-packages/archivebox/config.py
    same deal, this is a macOS artifact and not a real duplicate

In summary, your pip-installed config.py is here:
/usr/local/lib/python3.11/site-packages/archivebox/config.py
(you can always find pip's source paths with pip show -f archivebox btw)

and your brew-installed config.py is here:
/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/archivebox/config.py
(it's fine for this to shadow the pip-installed version, pip's will take precedence if you have both and they don't conflict even if both are in your $PATH)

I don't think you need to salvage anything, this looks like a normal install on macOS with brew + pip (as the Wiki/README docs used to recommend).


However if you like, I've improved the brew release + brew install docs somewhat since you installed this, you can reset and get the newer version with:

# uninstall existing versions
pip uninstall archivebox yt-dlp playwright
brew uninstall archivebox
# install latest 0.7.2 release from brew (additional pip-install not needed, brew is enough)
brew tap archivebox/archivebox
brew update
brew install archivebox
# if needed:
# brew link --overwrite archivebox  # force overwite any old conflicting symlinks you have
# brew postinstall archivebox       # creates starter data dir /usr/local/var/archivebox/data
# show installed locations
brew info archivebox  # confirm that brew version is installed
pip show archivebox   # confirm that there is no more pip-installed version
which -a archivebox
archivebox version

To configure archivebox, edit ArchiveBox.conf inside your data folder, for example:

  • using the brew-installed starter data directory location: /usr/local/var/archivebox/data
  • using the the home dir data directory location if you followed the docs instructions: ~/archivebox/data
  • or create a data dir in any path you want: e.g. /Volumes/USB-DRIVE/archivebox/data
cd /usr/local/var/archivebox/data    # auto-created during `brew postinstall archivebox` step
archivebox init
archivebox setup

archivebox config --set TIMEOUT=120
cat ./ArchiveBox.conf
# ...
# TIMEOUT=120

The data/ArchiveBox.conf file starts empty by default, only settings you actually configure get added.
The full list of options you can set is in the Configuration wiki.
More info on how to configure archivebox is here: https://github.com/ArchiveBox/ArchiveBox/wiki/Usage#run-archivebox-with-configuration-options
Both those pages document how you can edit ArchiveBox.conf, use the interactive archivebox config CLI, or use environment variables, and show that all 3 are equivalent.

The docs have changes here too since you probably last checked: https://github.com/ArchiveBox/ArchiveBox/wiki/Install#macos

<!-- gh-comment-id:1951540252 --> @pirate commented on GitHub (Feb 19, 2024): Ok, here's a breakdown of the paths you're seeing above: - `/usr/local/lib/python3.11/site-packages/archivebox/config.py` indicates you have `pip`-installed archivebox (its ok but not required to have both `pip` and `brew`-installed `archivebox` versions as `pip`'s ArchiveBox version is often newer, but `brew` provides auto installation of all the system dependencies that `pip` cant install automatically) - `/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/IPython/core/magics/config.py` ignore this, it's a sub-dependency of archivebox and is not archivebox's own `config.py` - `/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/matplotlib_inline/config.py` ignore this, it's a sub-dependency of archivebox and is not archivebox's own `config.py` - `/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/django/apps/config.py` ignore this, it's a sub-dependency of archivebox and is not archivebox's own `config.py` - `/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/archivebox/config.py` this is the correct original source location of `config.py` installed by homebrew - `/System/Volumes/Data/usr/local/lib/python3.11/site-packages/archivebox/config.py` this is an artifact of how macOS creates a Data volume for user data causing paths to show up twice, it's not a real duplicate - `/System/Volumes/Data/Users/submerger/Library/Python/3.9/lib/python/site-packages/archivebox/config.py` same deal, this is a macOS artifact and not a real duplicate --- **In summary, your `pip`-installed `config.py`** is here: `/usr/local/lib/python3.11/site-packages/archivebox/config.py` (you can always find pip's source paths with `pip show -f archivebox` btw) **and your `brew`-installed `config.py` is here:** `/usr/local/Cellar/archivebox/0.7.1-1/libexec/lib/python3.11/site-packages/archivebox/config.py` (it's fine for this to shadow the `pip`-installed version, `pip`'s will take precedence if you have both and they don't conflict even if both are in your `$PATH`) I don't think you need to salvage anything, this looks like a normal install on macOS with `brew` + `pip` (as the Wiki/README docs used to recommend). --- However if you like, I've improved the `brew` release + [`brew` install docs](https://github.com/ArchiveBox/ArchiveBox/wiki/Install#macos) somewhat since you installed this, you can reset and get the newer version with: ```bash # uninstall existing versions pip uninstall archivebox yt-dlp playwright brew uninstall archivebox ``` ```bash # install latest 0.7.2 release from brew (additional pip-install not needed, brew is enough) brew tap archivebox/archivebox brew update brew install archivebox # if needed: # brew link --overwrite archivebox # force overwite any old conflicting symlinks you have # brew postinstall archivebox # creates starter data dir /usr/local/var/archivebox/data ``` ```bash # show installed locations brew info archivebox # confirm that brew version is installed pip show archivebox # confirm that there is no more pip-installed version which -a archivebox archivebox version ``` --- **To configure archivebox**, edit `ArchiveBox.conf` inside your data folder, for example: - using the brew-installed starter data directory location: `/usr/local/var/archivebox/data` - using the the home dir data directory location if you followed the docs instructions: `~/archivebox/data` - or create a data dir in any path you want: e.g. `/Volumes/USB-DRIVE/archivebox/data` ```bash cd /usr/local/var/archivebox/data # auto-created during `brew postinstall archivebox` step archivebox init archivebox setup archivebox config --set TIMEOUT=120 cat ./ArchiveBox.conf # ... # TIMEOUT=120 ``` The `data/ArchiveBox.conf` file starts empty by default, only settings you actually configure get added. The full list of options you can set is in the [Configuration](https://github.com/ArchiveBox/ArchiveBox/wiki/Configuration) wiki. More info on how to configure archivebox is here: https://github.com/ArchiveBox/ArchiveBox/wiki/Usage#run-archivebox-with-configuration-options Both those pages document how you can edit ArchiveBox.conf, use the interactive `archivebox config` CLI, or use environment variables, and show that all 3 are equivalent. The docs have changes here too since you probably last checked: https://github.com/ArchiveBox/ArchiveBox/wiki/Install#macos
Author
Owner

@porkchoppie commented on GitHub (Mar 1, 2024):

Apologies as i went in to work through your feedback a week or so ago. Before I did anything, i went ahead and updated brew and for some reason is wacky. Likely a path, env issue when using zsh, but of course mac os, has different ways to set up paths, and its different then say ubuntu, or debian. Anyhoo, at the end of the update brew completely vomited.

Error: The brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/archivebox
Target /usr/local/bin/archivebox
already exists. You may want to remove it:
rm '/usr/local/bin/archivebox'

To force the link and overwrite all conflicting files:
brew link --overwrite archivebox

To list all files that would be deleted:
brew link --overwrite archivebox --dry-run

Possible conflicting files are:
/usr/local/bin/archivebox
/usr/local/bin/yt-dlp
==> Downloading https://formulae.brew.sh/api/formula.jws.json
#=#=-# #
==> rm -Rf /usr/local/var/archivebox/data/node_modules
==> ln -sf /usr/local/Cellar/archivebox/0.7.2-1/libexec/lib/node_modules/archivebox/node_modules /usr/local/var/archivebox/data/
==> /usr/local/bin/archivebox init
==> /usr/local/bin/archivebox setup
==> Caveats
To start archivebox/archivebox/archivebox now and restart at login:
brew services start archivebox/archivebox/archivebox
Or, if you don't want/need a background service you can just run:
/usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000
==> Summary
🍺 /usr/local/Cellar/archivebox/0.7.2-1: 20,661 files, 254.2MB, built in 8 minutes 8 seconds
==> Running brew cleanup archivebox...
Removing: /usr/local/Cellar/archivebox/0.7.1-1... (10,231 files, 65.2MB)
Removing: /Users/submerger/Library/Caches/Homebrew/archivebox--0.7.1-1.tar.gz... (436.3KB)
Removing: /Users/submerger/Library/Caches/Homebrew/archivebox--yt-dlp--2023.10.13.tar.gz... (2.7MB)
==> Caveats
==> archivebox
To start archivebox/archivebox/archivebox now and restart at login:
brew services start archivebox/archivebox/archivebox
Or, if you don't want/need a background service you can just run:
/usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000`

I have no idea which rabbit hole to go down, and decided to pause until I had some downtime. Any more feedback you have would be great, and I could use it.

Best.

<!-- gh-comment-id:1973486809 --> @porkchoppie commented on GitHub (Mar 1, 2024): Apologies as i went in to work through your feedback a week or so ago. Before I did anything, i went ahead and updated brew and for some reason is wacky. Likely a path, env issue when using zsh, but of course mac os, has different ways to set up paths, and its different then say ubuntu, or debian. Anyhoo, at the end of the update brew completely vomited. `Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/archivebox Target /usr/local/bin/archivebox already exists. You may want to remove it: rm '/usr/local/bin/archivebox' To force the link and overwrite all conflicting files: brew link --overwrite archivebox To list all files that would be deleted: brew link --overwrite archivebox --dry-run Possible conflicting files are: /usr/local/bin/archivebox /usr/local/bin/yt-dlp ==> Downloading https://formulae.brew.sh/api/formula.jws.json #=#=-# # ==> rm -Rf /usr/local/var/archivebox/data/node_modules ==> ln -sf /usr/local/Cellar/archivebox/0.7.2-1/libexec/lib/node_modules/archivebox/node_modules /usr/local/var/archivebox/data/ ==> /usr/local/bin/archivebox init ==> /usr/local/bin/archivebox setup ==> Caveats To start archivebox/archivebox/archivebox now and restart at login: brew services start archivebox/archivebox/archivebox Or, if you don't want/need a background service you can just run: /usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000 ==> Summary 🍺 /usr/local/Cellar/archivebox/0.7.2-1: 20,661 files, 254.2MB, built in 8 minutes 8 seconds ==> Running `brew cleanup archivebox`... Removing: /usr/local/Cellar/archivebox/0.7.1-1... (10,231 files, 65.2MB) Removing: /Users/submerger/Library/Caches/Homebrew/archivebox--0.7.1-1.tar.gz... (436.3KB) Removing: /Users/submerger/Library/Caches/Homebrew/archivebox--yt-dlp--2023.10.13.tar.gz... (2.7MB) ==> Caveats ==> archivebox To start archivebox/archivebox/archivebox now and restart at login: brew services start archivebox/archivebox/archivebox Or, if you don't want/need a background service you can just run: /usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000` I have no idea which rabbit hole to go down, and decided to pause until I had some downtime. Any more feedback you have would be great, and I could use it. Best.
Author
Owner

@pirate commented on GitHub (Mar 2, 2024):

Don't worry this error is a very common one with brew & pip in general, and the fix is simple. Brew is basically complaining that you've already installed yt-dlp and archivebox with pip, and it doesn't want to overwrite pip's version. You can fix it like so:

# uninstall the conflicting pip packages
pip uninstall archivebox yt-dlp

# reinstall archivebox with brew
brew tap archivebox/archivebox
brew uninstall archivebox
brew install archivebox

# then reinstall the latest yt-dlp and archivebox from pip, telling it to overwrite brew's
pip install --upgrade --ignore-installed archivebox yt-dlp playwright

# install latest chrome (recommended, but skippable if you have a Chrome app in /Applications/)
playwright install --with-deps chromium

# show some info about all the installed versions and which one is linked/active
brew info archivebox
pip show archivebox
which -a archivebox     # first entry in the outputted list is the active one
archivebox version

The reason we install pip again after brew is that the brew channel is unfortunately outdated sometimes because it's difficult to package for homebrew and I don't always update it as fast.

However, brew still provides a lot of the base system packages that pip can't install on its own: like python3, ripgrep, curl, wget, sonic etc.

Installing both is good way to make sure you have all the system packages needed for your OS, but also have the latest archivebox codebase version from pip. You just need to make sure the pip version is always the one installed last (so it overwrites brew's).

They don't conflict once they're installed like the instructions above show, the newer pip archivebox version takes precedence, and the brew archivebox version stays installed but unlinked, still providing the needed system packages.

Hope that helps clear things up.

<!-- gh-comment-id:1974225084 --> @pirate commented on GitHub (Mar 2, 2024): Don't worry this error is a very common one with `brew` & `pip` in general, and the fix is simple. Brew is basically complaining that you've already installed `yt-dlp` and `archivebox` with `pip`, and it doesn't want to overwrite `pip`'s version. You can fix it like so: ```bash # uninstall the conflicting pip packages pip uninstall archivebox yt-dlp # reinstall archivebox with brew brew tap archivebox/archivebox brew uninstall archivebox brew install archivebox # then reinstall the latest yt-dlp and archivebox from pip, telling it to overwrite brew's pip install --upgrade --ignore-installed archivebox yt-dlp playwright # install latest chrome (recommended, but skippable if you have a Chrome app in /Applications/) playwright install --with-deps chromium # show some info about all the installed versions and which one is linked/active brew info archivebox pip show archivebox which -a archivebox # first entry in the outputted list is the active one archivebox version ``` The reason we install `pip` again after `brew` is that the `brew` channel is unfortunately outdated sometimes because it's difficult to package for `homebrew` and I don't always update it as fast. However, brew still provides a lot of the base system packages that `pip` can't install on its own: like `python3`, `ripgrep`, `curl`, `wget`, `sonic` etc. Installing both is good way to make sure you have all the system packages needed for your OS, but also have the latest `archivebox` codebase version from `pip`. You just need to make sure the `pip` version is always the one installed last (so it overwrites `brew`'s). They don't conflict once they're installed like the instructions above show, the newer `pip` `archivebox` version takes precedence, and the `brew` `archivebox` version stays installed but unlinked, still providing the needed system packages. Hope that helps clear things up.
Author
Owner

@porkchoppie commented on GitHub (Mar 3, 2024):

Cool. So I went through all the recommended steps, and I have comments/questions "## inline".

$ brew install archivebox

==> /usr/local/bin/archivebox init
==> /usr/local/bin/archivebox setup
==> Caveats
To start archivebox/archivebox/archivebox now and restart at login:
  brew services start archivebox/archivebox/archivebox
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000
==> Summary
🍺  /usr/local/Cellar/archivebox/0.7.2-1: 21,403 files, 264MB, built in 6 minutes 19 seconds
==> Running `brew cleanup archivebox`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> Caveats
==> archivebox
To start archivebox/archivebox/archivebox now and restart at login:
  brew services start archivebox/archivebox/archivebox
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000
## I dont need a bg service so should be ok.  Weirdly named folder structure.  symlink perhaps?
$ brew info archivebox
==> archivebox/archivebox/archivebox: stable 0.7.2-1
Self-hosted internet archiving solution
https://archivebox.io
/usr/local/Cellar/archivebox/0.7.2-1 (21,403 files, 264MB) *
  Built from source on 2024-03-02 at 16:55:41
From: https://github.com/archivebox/homebrew-archivebox/blob/HEAD/archivebox.rb
License: MIT
==> Dependencies
Required: curl ✔, git ✔, node ✔, python@3.11 ✔, ripgrep ✔, wget ✔, yt-dlp ✔, sonic ✔
==> Caveats
To start archivebox/archivebox/archivebox now and restart at login:
  brew services start archivebox/archivebox/archivebox
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000

## Cool.  but doesnt brew park binaries in Cellar?  why is it not in "/usr/local/bin/" which later can confirm
$ pip show archivebox
Name: archivebox
Version: 0.7.2
Summary: Self-hosted internet archiving solution.
Home-page:
Author:
Author-email: Nick Sweeting <pyproject.toml@archivebox.io>
License: MIT
Location: /usr/local/lib/python3.11/site-packages
Requires: croniter, dateparser, django, django-extensions, ipython, mypy-extensions, python-crontab, requests, w3lib, yt-dlp
Required-by:

$ which -a archivebox
/usr/local/bin/archivebox
/usr/local/bin/archivebox
## How can this live 2x same name same dir?
## as FYI
$ ls -ltr /usr/local/bin/ | grep archivebox
lrwxr-xr-x  1 submerger  admin       43 Mar  2 16:55 gallery-dl -> ../Cellar/archivebox/0.7.2-1/bin/gallery-dl
lrwxr-xr-x  1 submerger  admin       47 Mar  2 16:55 mercury-parser -> ../Cellar/archivebox/0.7.2-1/bin/mercury-parser
lrwxr-xr-x  1 submerger  admin       54 Mar  2 16:55 readability-extractor -> ../Cellar/archivebox/0.7.2-1/bin/readability-extractor
lrwxr-xr-x  1 submerger  admin       44 Mar  2 16:55 single-file -> ../Cellar/archivebox/0.7.2-1/bin/single-file
-rwxr-xr-x  1 submerger  admin      238 Mar  2 16:59 archivebox
$ archivebox version
0.7.2
ArchiveBox v0.7.2 BUILD_TIME=2024-03-02 16:59:08 1709427548
IN_DOCKER=False IN_QEMU=False ARCH=x86_64 OS=Darwin PLATFORM=macOS-14.4-x86_64-i386-64bit PYTHON=Cpython
FS_ATOMIC=True FS_REMOTE=False FS_USER=501:20 FS_PERMS=644
DEBUG=False IS_TTY=True TZ=UTC SEARCH_BACKEND=ripgrep LDAP=False

[i] Dependency versions:
 √  PYTHON_BINARY         v3.11.8         valid     /usr/local/Cellar/python@3.11/3.11.8/Frameworks/Python.framework/Versions/3.11/bin/python3.11
 √  SQLITE_BINARY         v2.6.0          valid     /usr/local/Cellar/python@3.11/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/sqlite3/dbapi2.py
 √  DJANGO_BINARY         v3.1.14         valid     /usr/local/lib/python3.11/site-packages/django/__init__.py
 √  ARCHIVEBOX_BINARY     v0.7.2          valid     /usr/local/bin/archivebox

 √  CURL_BINARY           v8.4.0          valid     /usr/bin/curl
 √  WGET_BINARY           v1.21.4         valid     /usr/local/bin/wget
 √  NODE_BINARY           v21.6.2         valid     /usr/local/bin/node
 √  SINGLEFILE_BINARY     v1.1.54         valid     /usr/local/Cellar/archivebox/0.7.2-1/libexec/lib/node_modules/archivebox/node_modules/single-file-cli/single-file
 √  READABILITY_BINARY    v0.0.11         valid     /usr/local/Cellar/archivebox/0.7.2-1/libexec/lib/node_modules/archivebox/node_modules/readability-extractor/readability-extractor
 X  MERCURY_BINARY        ?               invalid   postlight-parser
 √  GIT_BINARY            v2.23.0         valid     /usr/local/bin/git
 √  YOUTUBEDL_BINARY      v2023.12.30     valid     /usr/local/bin/yt-dlp
 √  CHROME_BINARY         v122.0.6261.94  valid     "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
 √  RIPGREP_BINARY        v14.1.0         valid     /usr/local/bin/rg

[i] Source-code locations:
 √  PACKAGE_DIR           23 files        valid     /usr/local/lib/python3.11/site-packages/archivebox
 √  TEMPLATES_DIR         3 files         valid     /usr/local/lib/python3.11/site-packages/archivebox/templates
 -  CUSTOM_TEMPLATES_DIR  -               disabled  None

[i] Secrets locations:
 -  CHROME_USER_DATA_DIR  -               disabled  None
 -  COOKIES_FILE          -               disabled  None


[i] Data locations: (not in a data directory)

[!] Warning: Missing 1 recommended dependencies
    ! MERCURY_BINARY: postlight-parser (unable to detect version)
      Hint: To install all packages automatically run: archivebox setup
            or to disable it and silence this warning: archivebox config --set SAVE_MERCURY=False
  1. I dont use docker all that much and already have parallels at home. Trivial for me (and i do it often) to spin up a minimal linux distro and buid/run there if no mac support is available. I also have a windows VM that I use for audio and video sw (older stuff) but even the minimal is bloated with crap.
  2. Chrome has no user data cause i dont use it. Is it required for the admin UI?
  3. Do i care about postlight-parser ? Seems like a bunch of work for usage that I am not using at the moment.
<!-- gh-comment-id:1974971637 --> @porkchoppie commented on GitHub (Mar 3, 2024): Cool. So I went through all the recommended steps, and I have comments/questions "## inline". ```bash $ brew install archivebox ==> /usr/local/bin/archivebox init ==> /usr/local/bin/archivebox setup ==> Caveats To start archivebox/archivebox/archivebox now and restart at login: brew services start archivebox/archivebox/archivebox Or, if you don't want/need a background service you can just run: /usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000 ==> Summary 🍺 /usr/local/Cellar/archivebox/0.7.2-1: 21,403 files, 264MB, built in 6 minutes 19 seconds ==> Running `brew cleanup archivebox`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). ==> Caveats ==> archivebox To start archivebox/archivebox/archivebox now and restart at login: brew services start archivebox/archivebox/archivebox Or, if you don't want/need a background service you can just run: /usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000 ``` ```bash ## I dont need a bg service so should be ok. Weirdly named folder structure. symlink perhaps? ``` ```bash $ brew info archivebox ==> archivebox/archivebox/archivebox: stable 0.7.2-1 Self-hosted internet archiving solution https://archivebox.io /usr/local/Cellar/archivebox/0.7.2-1 (21,403 files, 264MB) * Built from source on 2024-03-02 at 16:55:41 From: https://github.com/archivebox/homebrew-archivebox/blob/HEAD/archivebox.rb License: MIT ==> Dependencies Required: curl ✔, git ✔, node ✔, python@3.11 ✔, ripgrep ✔, wget ✔, yt-dlp ✔, sonic ✔ ==> Caveats To start archivebox/archivebox/archivebox now and restart at login: brew services start archivebox/archivebox/archivebox Or, if you don't want/need a background service you can just run: /usr/local/opt/archivebox/bin/archivebox server --quick-init 0.0.0.0:8000 ## Cool. but doesnt brew park binaries in Cellar? why is it not in "/usr/local/bin/" which later can confirm ``` ```bash $ pip show archivebox Name: archivebox Version: 0.7.2 Summary: Self-hosted internet archiving solution. Home-page: Author: Author-email: Nick Sweeting <pyproject.toml@archivebox.io> License: MIT Location: /usr/local/lib/python3.11/site-packages Requires: croniter, dateparser, django, django-extensions, ipython, mypy-extensions, python-crontab, requests, w3lib, yt-dlp Required-by: $ which -a archivebox /usr/local/bin/archivebox /usr/local/bin/archivebox ``` ```bash ## How can this live 2x same name same dir? ## as FYI $ ls -ltr /usr/local/bin/ | grep archivebox lrwxr-xr-x 1 submerger admin 43 Mar 2 16:55 gallery-dl -> ../Cellar/archivebox/0.7.2-1/bin/gallery-dl lrwxr-xr-x 1 submerger admin 47 Mar 2 16:55 mercury-parser -> ../Cellar/archivebox/0.7.2-1/bin/mercury-parser lrwxr-xr-x 1 submerger admin 54 Mar 2 16:55 readability-extractor -> ../Cellar/archivebox/0.7.2-1/bin/readability-extractor lrwxr-xr-x 1 submerger admin 44 Mar 2 16:55 single-file -> ../Cellar/archivebox/0.7.2-1/bin/single-file -rwxr-xr-x 1 submerger admin 238 Mar 2 16:59 archivebox ``` ```bash $ archivebox version 0.7.2 ArchiveBox v0.7.2 BUILD_TIME=2024-03-02 16:59:08 1709427548 IN_DOCKER=False IN_QEMU=False ARCH=x86_64 OS=Darwin PLATFORM=macOS-14.4-x86_64-i386-64bit PYTHON=Cpython FS_ATOMIC=True FS_REMOTE=False FS_USER=501:20 FS_PERMS=644 DEBUG=False IS_TTY=True TZ=UTC SEARCH_BACKEND=ripgrep LDAP=False [i] Dependency versions: √ PYTHON_BINARY v3.11.8 valid /usr/local/Cellar/python@3.11/3.11.8/Frameworks/Python.framework/Versions/3.11/bin/python3.11 √ SQLITE_BINARY v2.6.0 valid /usr/local/Cellar/python@3.11/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/sqlite3/dbapi2.py √ DJANGO_BINARY v3.1.14 valid /usr/local/lib/python3.11/site-packages/django/__init__.py √ ARCHIVEBOX_BINARY v0.7.2 valid /usr/local/bin/archivebox √ CURL_BINARY v8.4.0 valid /usr/bin/curl √ WGET_BINARY v1.21.4 valid /usr/local/bin/wget √ NODE_BINARY v21.6.2 valid /usr/local/bin/node √ SINGLEFILE_BINARY v1.1.54 valid /usr/local/Cellar/archivebox/0.7.2-1/libexec/lib/node_modules/archivebox/node_modules/single-file-cli/single-file √ READABILITY_BINARY v0.0.11 valid /usr/local/Cellar/archivebox/0.7.2-1/libexec/lib/node_modules/archivebox/node_modules/readability-extractor/readability-extractor X MERCURY_BINARY ? invalid postlight-parser √ GIT_BINARY v2.23.0 valid /usr/local/bin/git √ YOUTUBEDL_BINARY v2023.12.30 valid /usr/local/bin/yt-dlp √ CHROME_BINARY v122.0.6261.94 valid "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" √ RIPGREP_BINARY v14.1.0 valid /usr/local/bin/rg [i] Source-code locations: √ PACKAGE_DIR 23 files valid /usr/local/lib/python3.11/site-packages/archivebox √ TEMPLATES_DIR 3 files valid /usr/local/lib/python3.11/site-packages/archivebox/templates - CUSTOM_TEMPLATES_DIR - disabled None [i] Secrets locations: - CHROME_USER_DATA_DIR - disabled None - COOKIES_FILE - disabled None [i] Data locations: (not in a data directory) [!] Warning: Missing 1 recommended dependencies ! MERCURY_BINARY: postlight-parser (unable to detect version) Hint: To install all packages automatically run: archivebox setup or to disable it and silence this warning: archivebox config --set SAVE_MERCURY=False ``` 1. I dont use docker all that much and already have parallels at home. Trivial for me (and i do it often) to spin up a minimal linux distro and buid/run there if no mac support is available. I also have a windows VM that I use for audio and video sw (older stuff) but even the minimal is bloated with crap. 2. Chrome has no user data cause i dont use it. Is it required for the admin UI? 3. Do i care about postlight-parser ? Seems like a bunch of work for usage that I am not using at the moment.
Author
Owner

@pirate commented on GitHub (Mar 7, 2024):

Weirdly named folder structure. symlink perhaps?

archivebox/archivebox/archivebox is not the folder structure, it's the <brew tapname> / <brew packagename>. The tap is archivebox/archivebox and the package name is archivebox so you see it three times, this is normal for brew packages distributed via taps.

Cool. but doesnt brew park binaries in Cellar? why is it not in "/usr/local/bin/" which later can confirm

Packages are installed into Cellar, and binaries are symlinked out into your /usr/local/bin directory after install is complete in a separate linking step. Because the instructions you're looking at execute during the final install step, the binary is not guaranteed to be linked yet (e.g. you could decline linking or it or linking could've been blocked by a conflicting file). So it shows the absolute path to the original binary /usr/local/opt/archivebox/bin/archivebox in the those particular instructions in case you don't have it linked.

How can this live 2x same name same dir?

It's not in the same dir twice, you just have the same dir twice in your $PATH. The binary is only present in that dir once. It's harmless you can ignore the duplicated output, or remove the duplicate $PATH entry in your ~/.zshrc or ~/.bash_profile if it bothers you.

Chrome has no user data cause i dont use it. Is it required for the admin UI?

No it's not required, it's only needed if you're archiving w/ a login session to preserve some private content that needs cookies to view.

Do i care about postlight-parser?

Up to you, you don't necessarily need it but it's a nice backup if readability fails or produces bad output on some URLs.

It'll run fine without it, or you can try to force install it globally with:

npm install -g 'git+https://github.com/ArchiveBox/ArchiveBox.git#dev'

archivebox version
<!-- gh-comment-id:1982676421 --> @pirate commented on GitHub (Mar 7, 2024): > Weirdly named folder structure. symlink perhaps? `archivebox/archivebox/archivebox` is not the folder structure, it's the `<brew tapname>` / `<brew packagename>`. The tap is [`archivebox/archivebox`](https://github.com/ArchiveBox/homebrew-archivebox) and the package name is `archivebox` so you see it three times, this is normal for brew packages distributed via taps. > Cool. but doesnt brew park binaries in Cellar? why is it not in "/usr/local/bin/" which later can confirm Packages are installed into Cellar, and binaries are symlinked out into your `/usr/local/bin` directory after install is complete in a separate linking step. Because the instructions you're looking at execute *during* the final install step, the binary is not guaranteed to be linked yet (e.g. you could decline linking or it or linking could've been blocked by a conflicting file). So it shows the absolute path to the original binary `/usr/local/opt/archivebox/bin/archivebox` in the those particular instructions in case you don't have it linked. > How can this live 2x same name same dir? It's not in the same dir twice, you just have the same dir twice in your `$PATH`. The binary is only present in that dir once. It's harmless you can ignore the duplicated output, or remove the duplicate `$PATH` entry in your `~/.zshrc` or `~/.bash_profile` if it bothers you. > Chrome has no user data cause i dont use it. Is it required for the admin UI? No it's not required, it's only needed if you're archiving w/ a login session to preserve some private content that needs cookies to view. > Do i care about postlight-parser? Up to you, you don't necessarily need it but it's a nice backup if `readability` fails or produces bad output on some URLs. It'll run fine without it, or you can try to force install it globally with: ```bash npm install -g 'git+https://github.com/ArchiveBox/ArchiveBox.git#dev' archivebox version ```
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/ArchiveBox#3845
No description provided.