Hello!
On all my other distros on this machine running tor-browser is as simple as going to the download page (https://nightlies.tbb.torproject.org/nightly-builds/tor-browser-builds/tbb-nightly.2026.05.03/nightly-linux-aarch64/) and unpacking the tar and running the ./start-tor-browser launcher
On NixOS nothing is happening. No output or anything, it just says it’s going to launch and then never launches
I am a novice user
Thanks!
Just have time to do this.
My current hack to install tor-browser on aarch64 for the time being.
I used this guide to overlay nixpkgs.
You can change the version and src/urls with corresponding hash for your preferred version of tor-browser.
When stable version of tor-browser for aarch64 is out, it should be packaged in nixpkgs and no need to do such overlays after that.
{ pkgs, ... }:
{
nixpkgs.overlays = [
(final: prev: {
tor-browser-aarch64-bin = (
prev.tor-browser.overrideAttrs (
finalAttrs: previousAttrs: {
version = "16.0a5";
src = prev.fetchurl {
urls = [
"https://dist.torproject.org/torbrowser/${finalAttrs.version}/tor-browser-linux-aarch64-${finalAttrs.version}.tar.xz"
];
hash = "sha256-9elX8PRDtpWPevgsiNwldmKEb09MbJr4GYMmljIJwkw=";
};
meta.platforms = [ "aarch64-linux" ];
buildPhase =
builtins.replaceStrings [ "TorBrowser/Data/Tor/torrc-defaults" ] [ "TorBrowser/Tor/torrc-defaults" ]
previousAttrs.buildPhase;
}
)
);
})
];
environment.systemPackages = with pkgs; [ tor-browser-aarch64-bin ];
}
1 Like
holy smokes.. how is a normal person ever supposed to figure that out on their own?
i may have to accept that while NixOS seems like a cool concept that it’s just way, way too unfriendly to a newbie like me. I can’t be going through this ordeal every single time I want to run tor-browser, this is ridiculous
I appreciate your reply, thank you for trying, this is just totally unacceptable.. It’s fulfilling the stereotypes about linux, and not the good ones
You don’t need to. that goes in your nixos config and then you can just rebuild and run tor-browser normally after that. If you are just using /etc/nixos with channels just put that in /etc/nixos/tor-browser-aarch64.nix and put ./tor-browser-aarch64.nix in imports in /etc/nixos/configuration.nix.
To answer what you could have done without expert knowledge…
The reason your expected mechanism didn’t work is that nixos doesn’t have a global library path, so downloaded binaries generally don’t work. I’m guessing you didn’t try running that binary from a terminal, or you would have seen error output to that effect.
The error output would have linked you to Frequently Asked Questions — nix.dev documentation which goes over some of the things you can do in this scenario. The simplest solution if you just want it to run without being declarative or elegant is just to use steam-run to run the binary.
1 Like
Note steam-run is a toss-up even so, if it doesn’t cover certain libs that the app needs, or if the app tries to access other hardcoded paths that would never exist on NixOS, or so on.
While that is true (NixOS* config, not nix config), they’d have to manually fuss with versions on every update (or separate it into a separate file, use nix-update, etc.)
Ultimately the answer is more like “for a beginner, it’s probably not feasible right now, it’s best to wait until it’s added to nixpkgs”.
3 Likes
Really, if software you want/need is not packaged with nix and not something you want to maintain a package for, I’d just use a distrobox with Podman. Solves
by being a regular Linux distro in a container.
3 Likes
For more details about how to use the above code:
Just put all my text in the code box above into a file with a name, say tor-browser-aarch64.nix beside your configuration.nix
In your nixos configuration.nix file, import the above file like this according to nixos wiki guide:
{
imports = [
./tor-browser-aarch64.nix
];
}
then run nixos-rebuild switch, your tor-browser is installed.
Again, this is quite a hacky way only because tor-browser for aarch64 is not yet packaged in nixpkgs. When it hit stable and packaged in nixpkgs, it can be installed just like other normal packages.
This is only the nixpkgs approach. Other approach still exist and mentioned above by others, like steam-run and distrobox, which is much easier.
I don’t know steam-run (which provide typical Linux Filesystem Hierarchy Standard (FHS)), but distrobox is like using other package manager from other distros, like apt(debian), pacman (arch linke), etc in any distro, NixOS included. You may try install tor-browsor with distrobox with those package manager you are comfortable with.
1 Like
I appreciate all the replies.. I still am using it as I type this message but I will say there are some growing annoyances that I am still trying to work with and feel some frustration. I don’t like how long it’s taking them to fix the ‘libcpuid’ package on aarch64, I reported it days ago and it’s still a problem bringing my entire system to a halt for installing packages unless I echo something into my terminal every time.. Like honestly? Why? The package is already compiled and on my system, so why isn’t it intelligent enough to shut up about it?
And then of course the tor-browser being absent from the aarch64 repos is another brutal one, since NixOS is the only distro it appears I can’t run the software on simply because I’m held hostage by it not being maintained by Nix?
And also how slow they’ve moved on libcpuid I’m guessing it’s gonna be MONTHS before we see a tor-browser package
All in all, I have some definite frustrations but it’s not directed at anybody here of course and regardless of everything I do appreciate the help as always
Officially x86_64-linux gets the primary support.
But honestly it feels like ARM darwin gets better support than tier 2 based on number of users. That is to say, more help would be appreciated, since aarch64-linux doesn’t get enough love.
It’s fixed, hydra just needs to build everything that’s changed and run tests. In fact current nixos-unstable is fixed, you just need to update your channels.
You can run non-Nix-packaged apps on other distros in a distrobox on NixOS as previously mentioned, works great 99% of the time.
1 Like