How to upgrade Bitcoin Core on Mac OS with binaries from tarball?

I want to upgrade to version 0.21.1 from an older version I built from source. However, it is unclear to me how I can upgrade using the .tar.gz file that’s available from the Bitcoin Core website.

I think I found how to do the first step:

tar -xvf bitcoin-0.21.1-osx64.tar.gz

But after that, it’s unclear to me how to proceed. Just trying to learn this stuff – many thanks for your help.

mining theory – How to install the latest bfgminer binaries directly from terminal without ‘aptitude’ on a raspberry pi 4 8gb running raspbian?

months ago I found an entry on StackExchange or somewhere else on how to install the latest (!) bfgminer binaries directly from terminal. I can not find the stackexchange post, no matter how deep I search here / on Google.

I do not remember if it was a download directly from luke-jr’s website via terminal or from somewhere else. I only remember that it was done via the terminal and it created an executeable shortcut in the /bin/ and/or /usr/bin/ folder.

Visiting the website from luke-jr triggers my anti virus software telling me the website is infected or hosts infected files. So I can’t visit it directly sadly.

Months ago I tried it out on my old RPi and it worked just fine. But now that I had to switch to a newer RPi I can not find or remember the correct terminal command for installing bfgminer binaries directly.

More details about why I need the binaries:
Compiling prints out LOTS of errors for me.
Using ‘sudo aptitude install bfgminer’ needs “aptitude” installed, so I tried to install it and it returned lots of errors, most of the package files where not downloadable (my Internet connection is fine by the way).

Can you help me out with a terminal command that let’s me successfully install bfgminer on raspbian?
On my old Pi I managed to install it without aptitude and without compiling it first.

Thanks so far!

apt – Why is my system only looking in /snap for binaries?

I tried to use snap to install node. The package was stale. So, I snap remove‘d that, and I installed node via apt from the nodesource PPA. Great:

$ node -v
v14.15.5

However, when I try to use npm, I get the following error:

$ npm
bash: /snap/bin/npm: No such file or directory

This is weird to me, since /usr/bin is on my $PATH and:

$ ls /usr/bin/npm
/usr/bin/npm

What has snap done to my system’s normal method of looking for binaries in $PATH?

Also, how do I fix this?

How is Apple legally allowed to run x86 compiled binaries on their M1 processors, when Intel and AMD have exlusive rights to the instruction set?

I’m no legal expert, but I was under the impression that Intel and AMD had exlusive rights to produce CPUs capable of natively executing x86 binaries. So even if Apple wanted to make a traditional x86 CPU, they would not be allowed without signing some deal with AMD or Intel (or perhaps both).

Yet clearly, Apple is now selling hardware that is capable of running these binaries using their software translation layer. From one perspective, it is fully within Apple’s rights to sell an ARM processor, and allow the user to emulate x86 on it. From another perspective, Apple is selling a product packaged with an x86 emulator tightly integrated with the operating system and hardware, essentially circumventing the intent of the IP law.

Is Apple facing any legal challenges from AMD or Intel that their IP, the ability to sell hardware capable of executing x86 binaries, is being infringed upon?

rosetta 2 – Does MacOS on M1 prio arm binaries later on path?

I’m trying to nix my new M1 Mac with home-manager and I’m thinking I might wanna skip xcode devtools altogether.

I’ve installed nix and home-manager and built a generation with git, but:

viktor@Viktors-MacBook-Air result % which git                              
/usr/bin/git

So this is the fake Mac binary that prompts to install devtools.

However, my real git from nix is before on PATH:

viktor@Viktors-MacBook-Air result % echo $PATH                              
/Users/viktor/.nix-profile/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Only thing I can think of is that MacOS somehow continues traversing PATH until it finds a arm64 executable?

viktor@Viktors-MacBook-Air result % file /Users/viktor/.nix-profile/bin/git
/Users/viktor/.nix-profile/bin/git: Mach-O 64-bit executable x86_64

viktor@Viktors-MacBook-Air result % file /usr/bin/git                      
/usr/bin/git: Mach-O universal binary with 2 architectures: (x86_64:Mach-O 64-bit executable x86_64) (arm64e:Mach-O 64-bit executable arm64e)
/usr/bin/git (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/git (for architecture arm64e): Mach-O 64-bit executable arm64e

I have rosetta installed and the real git works fine from full path.

Am I misunderstanding the executable resolution? There’s no alias at play at least, but is there something else going on?

teaching – How to do game dev without downloading binaries?

I am trying to start a student club for game development. My initial plan was to have students start by modifying an existing Open Source game, such as Sauerbraten, Tux Racer, or SuperTux. The students all have Windows computers, the problem is they’re locked from installing any binaries such as these games, which would be needed to get started. So is there some option for creating a collaborative project that wouldn’t require downloading of binaries to do?

python – Search for binaries in a folder

I have this function, I would like to optimize it but I don’t know a faster way to search for a file in a folder and subfolder.

def is_installed(software, path):
    if "binaries" not in software or len(software("binaries")) == 0:
        return False, ("NO BINARIES")
    all_binaries_are_here = True
    binaries = software("binaries").copy()
    number_element_delete = 0
    for index, binary in enumerate(software("binaries")):
        exist = False
# this part is slow !
        for file in Path(path).rglob(binary):
            if "include" not in str(file.absolute()) and "lib" not in str(file.absolute()):
                print("le binaire", binary, "EXISTE sur le système -> ", file)
                exist = True
                break
        if not exist:
            print("le binaire", binary, "n'existe PAS sur le système dans ", path)
            all_binaries_are_here = False
            del binaries(index - number_element_delete)
            number_element_delete += 1
    return all_binaries_are_here, binaries