Homebrew, -bash: qemu: command not found OSX El Capitan - bash

I'm trying to install qemu on my mac. I used Homebrew, and it seems like it has been successfully installed.
==> Installing qemu
==> Downloading https://homebrew.bintray.com/bottles/qemu-2.6.0.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring qemu-2.6.0.el_capitan.bottle.tar.gz
🍺 /usr/local/Cellar/qemu/2.6.0: 123 files, 127.4M
But when I try to use it I have:
-bash: qemu: command not found
The output of ls /usr/local/Cellar/qemu/2.6.0/bin is:
| ∮ -> ls /usr/local/Cellar/qemu/2.6.0/bin
ivshmem-client qemu-system-aarch64 qemu-system-lm32 qemu-system-mips64 qemu-system-ppc qemu-system-sh4eb qemu-system-x86_64
ivshmem-server qemu-system-alpha qemu-system-m68k qemu-system-mips64el qemu-system-ppc64 qemu-system-sparc qemu-system-xtensa
qemu-img qemu-system-arm qemu-system-microblaze qemu-system-mipsel qemu-system-ppcemb qemu-system-sparc64 qemu-system-xtensaeb
qemu-io qemu-system-cris qemu-system-microblazeel qemu-system-moxie qemu-system-s390x qemu-system-tricore
qemu-nbd qemu-system-i386 qemu-system-mips qemu-system-or32 qemu-system-sh4 qemu-system-unicore32
I now now that the problem is that the qemu file is missing. I still wonder why and how to fix it
Thank you in advance.

Erm... QEMU doesn't have any binary called qemu. Instead, you may use any qemu-system-xxxx binary to virtualize that system.
The documentation (when to use each system and stuff) is available at: http://wiki.qemu.org/Documentation
So, the formulaes names don't necessarily match the binary names. I suppose you know that, but I mention it just in case.
Feel free to keep sharing any problem you have with us!

Just to add on the answer of Lutarisco: to check if it's correctly installed:
$ qemu-system-arm --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

Did you try to install it using brew install qemu?
I did that and got the same error. What I did instead was sudo port install qemu and it worked fine.

Related

How do I build the Firebird database extension (ext-interbase) for PHP on a MacOS M1 Monterey?

Firebird Extension for PHP on MacOS M1
I have PHP7.4 installed with homebrew and the Xcode command line tools.
I followed the instructions as per the source repository here https://github.com/FirebirdSQL/php-firebird using the following methodology, I have changed the Linux formula to suite the MacOS library locations as per this answer here
Issues compiling firebird driver for PHP-7.4 on macos:
git clone https://github.com/FirebirdSQL/php-firebird.git
cd php-firebird
phpize
CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Headers LDFLAGS=-L/Library/Frameworks/Firebird.framework/Resources/lib ./configure
make
The error I get is
configure: error: libfbclient, libgds or libib_util not found! Check config.log for more information.
In the log file it refers to the following which is the crux of the issue
ld: warning: ignoring file /opt/firebird/lib/libib_util.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
The problem is that the Firebird package for Mac is only built for the 64bit architecture and not the ARM architecture.
Solution
I always seem to struggle building the extension for Firebird on MacOS (Intel or M1) and after a month of leaving the problem I discovered the solution which I leave here for myself all of you who have hit this wall, until ARM is supported on MacOS for Firebird we probably have to run the 64 bit version with 64 bit PHP. The steps below should get you up and running. I came up with 2 solutions, the first most obvious one was to make a docker build.
Docker Solution
docker run -v $(pwd):/app tina4stack/php -ini | grep interbase
Home brew solution
The second solution (more complicated) was to follow these steps, I don't always like to run a docker engine for simple things.
Install latest Firebird for MacOS
First, make sure you have installed the latest Firebird MacOS package, Firebird 3.0 at the time of writing has only one you can install.
The next problem I ran into was home-brew had installed an ARM version of PHP which made the linking to the x86_64 architecture impossible. Kudos to the documentation here https://austencam.com/posts/setting-up-an-m1-mac-for-laravel-development-with-homebrew-php-mysql-valet-and-redis
Install Rosetta
First I installed Rosetta (helps run 64 bit apps on MacOS ARM)
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
Install Home-brew for 64bit architecture
Next I removed homebrew and reinstalled it with the arch -x86_64 bit flag
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Install PHP7.4
Then installed a fresh php#7.4
arch -x86_64 brew install php#7.4
Compile the extension
git clone https://github.com/FirebirdSQL/php-firebird.git
cd php-firebird
phpize
CFLAGS='-arch x86_64' CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Headers LDFLAGS=-L/Library/Frameworks/Firebird.framework/Resources/lib ./configure
make
sudo make install
Tying it all together
I added the following to my php.ini file
extension=interbase
If you don't know where to edit your ini file, run the following command:
php -ini | grep php.ini
When I ran php -ini | grep interpose I got errors about not finding the firebird libraries. In the end I copied the libraries to the PHP bin and lib folders
cp /Library/Frameworks/Firebird.framework/Resources/lib/* /usr/local/Cellar/php#7.4/7.4.25/lib
cp /Library/Frameworks/Firebird.framework/Resources/lib/* /usr/local/Cellar/php#7.4/7.4.25/bin
I'm sure someone could comment on making the above a bit neater but I was happy to find that the ini command returns now as expected.
php -ini | grep interbase
interbase
Let me know if you hit issues I didn't find, there were some other things I tried for the Firebird library resolution but I'm not sure they worked.
Installing modules with PECL
As an addition the the above solution, easily install other PHP modules using the following command
arch -x86_64 pecl install <module>
Example
arch -x86_64 pecl install openswoole

Unable to build and install Valgrind on macOS High Sierra

I cannot install Valgrind on macOS High Sierra. It's not available through brew. I've tried with 3.10. After make install, I get this message:
configure: error: Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x and 14.x (Mac OS X 10.6/7/8/9/10)
Homebrew says:
valgrind: This formula either does not compile or function as expected on macOS
versions newer than Sierra due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
I had the problem like this.
So, I found the solving. You should install valgrind by this code
brew install --HEAD valgrind
I have created a port of valgrind 3.13.0 to work on macOS High Sierra (10.13.x). You can get it here: https://github.com/padiakalpesh/valgrind_3.13_high_sierra
Once you have obtained the source, run the following commands from inside the source directory:
./configure
make
sudo make install
brew install Valgrind has some compatibility problem when installing on latest macOS but there is a workaround with this problem. You must be getting this error message when you try to install it using brew.
$brew install valgrind
valgrind: This formula either does not compile or function as expected on macOS
versions newer than High Sierra due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
-------------------------------------------------------------------SOLUTION--------------------------------------------------------------
Step1: $brew edit valgrind
Step2: Find this line in the file ->(url "https://sourceware.org/git/valgrind.git")
Step3: Replace it with -> (url "git://sourceware.org/git/valgrind.git")
Step4: $brew update
Step5: $brew install --HEAD valgrind
And Done!
Let me know if it still doesn't work.
Thanks!!
I have got this working in July 2018, for reference:
https://gist.github.com/AlessandroMinali/d8316d6cc650c97027433644c2ff31ee
Edit ./configure
- 5468: applellvm-5.1|applellvm-6.*|applellvm-7.*|applellvm-8.*)
+ 5468: applellvm-5.1|applellvm-6.*|applellvm-7.*|applellvm-8.*|applellvm-9.*)
- 5879: 16.*)
+ 5879: 17.*)
Run
./autogen.sh
./configure
make
make install
Create file ~/.valgrind.supp
# false positive for any executable (it seems)
# macOS 10.12.6
# valgrind 3.13.0
{
libtrace initialization false positive
Memcheck:Param
msg->desc.port.name
fun:mach_msg_trap
fun:mach_msg
fun:task_set_special_port
fun:_os_trace_create_debug_control_port
fun:_libtrace_init
}
Create file ~/.valgrindrc
--suppressions=$HOME/.valgrind.supp
Troubleshooting
if can not read suppresion file copy and paste the contents of $HOME
if it complains about clang versions, bump the first edit up
if it complains about Darwin version, bump the second edit up
using the brew install --HEAD valgrind also worked for me, but be sure to know that it will take awhile to pull the HEAD version, and build/install.
However, no other changes were needed.
I build the git head version of Valgrind on macOS fairly regularly. If you have xcode installed then there isn't much more to it than following the instructions here.
I'll update with my build script later.
As an alternative, you might want to consider clang sanitizers. This can be enabled in xcode, or with the -fsanitize=X option (where X is address, undefined, thread, memory and a few others).
Valgrind is a rather touchy piece of software, and requires updates for each major release of macOS.
As of February 2018, there is no released version of Valgrind which supports macOS High Sierra (10.13). You will need to use a development version of Valgrind, or use alternate tools. (Apple's Instruments may have some of the functionality you are looking for.)
MacPorts version started working for me in Sep 2018!
The command, for completeness sake (completes very fast - apparently, prebuilt):
sudo port install valgrind-devel
Version:
$ valgrind --version
valgrind-3.14.0.GIT
The following worked for me using the latest Valgrind release 3.14.0 (9th October 2018) on macOS 10.13.6.
VERSION="3.14.0"
wget -O - http://www.valgrind.org/downloads/valgrind-"$VERSION".tar.bz2 | tar xjf -
cd valgrind-"$VERSION"
# use --prefix=/path/to if you want it installed somewhere in particular
./configure
make
# may need sudo
make install
# test all is working
valgrind ls -l
These instructions are taken from the README inside the Valgrind release tar ball.

Having trouble running the jos kernel of mit 6.828

OS: ubuntu-17.10-amd64
It seems that the building process succeed but the kernel failed running in qemu.
I have tried to investigate the problem here, but failed. Somehow I managed to fix it by building a i386-elf-gcc toolchain by myself and use that instead of gcc-multilib. Then it works properly.
I am using macOS, so I used this:
$ brew tap nativeos/i386-elf-toolchain
$ brew install i386-elf-gcc --verbose
Then I replaced all "i386-jos-elf" with "i386-elf" in GNUmakefile.

Why can't I setup an SSHFS share? “OSXFUSE file system is not available” error

I'm trying to setup an SSHFS share from my local machine to a remote machine, but it is not working. I'm getting the error OSXFUSE file system is not available (see below). How to fix this??
FYI, my local machine is a MacBook Pro laptop running OSX 10.9.3. The remote machine is actually a VirtualBox on the same hardware running CentOS.
% brew install sshfs # <---- SSHFS is installed
Warning: sshfs-2.5.0 already installed
% brew install osxfuse # <---- OSX Fuse is installed
Warning: osxfuse-2.6.4 already installed
% ssh remote_user#XXX.XXX.XXX.XXX # <---- See, SSH works!!
Last login: Wed Jun 18 18:36:11 2014 from XXX.XXX.XXX.XXX
[remote_user#XXX.XXX.XXX.XXX ~]% exit
% sudo mkdir /mnt
% sudo mkdir /mnt/Share
% sudo sshfs -o IdentityFile=~/.ssh/id_rsa.pub remote_user#XXX.XXX.XXX.XXX:/ /mnt/Share
the OSXFUSE file system is not available (-1)
the OSXFUSE file system is not available (1)
I tried solution described here. But it didn't work for me:
% sudo kextunload -b com.github.osxfuse.filesystems.osxfusefs
(kernel) Kext com.github.osxfuse.filesystems.osxfusefs not found for unload request.
Failed to unload com.github.osxfuse.filesystems.osxfusefs - (libkern/kext) not found.
If you run brew info osxfuse and follow the instructions to the letter, I believe it would work.
From what You described, you just tried unloading the (possible) previous kernel extension, but did not complete the last important step to actually install the new extension.
This is what brew info osxfuse tells me:
If upgrading from a previous version of osxfuse, the previous kernel extension
will need to be unloaded before installing the new version. First, check that
no FUSE-based file systems are running:
mount -t osxfusefs
Unmount all FUSE file systems and then unload the kernel extension:
sudo kextunload -b com.github.osxfuse.filesystems.osxfusefs
The new osxfuse file system bundle needs to be installed by the root user:
sudo /bin/cp -RfX /usr/local/opt/osxfuse/Library/Filesystems/osxfusefs.fs /Library/Filesystems
sudo chmod +s /Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs
There appears to be a problem loading the KEXT installed by the regular osxfuse Homebrew package. You can use brew cask to install the official FUSE for OS X build from their own DMG:
brew rm osxfuse
brew install caskroom/cask/brew-cask
brew cask install osxfuse
SSHFS itself is also available as a Cask package, though on my system mixing osxfuse from Cask with plain sshfs binary bottle works just fine.
The downside to this approach is that brew upgrade or brew outdated will no longer be able to update FUSE for OS X as brew cask is not version-aware for now.
I have observed that OSXFUSE is a bit tricky, though I don't know exactly why, and brew tries to avoid changing the system, so using it to manage kernel extensions is not a good idea. I suggest using the packaged installers for OSXFUSE and SSHFS from http://osxfuse.github.io/ instead of using brew.
Open System Preferences, choose FUSE, then update to the latest version. Thats what worked for me.
The problem when installing SSHFS with brew is that osxfusefs is not signed: the Console outputs com.apple.kextd: ERROR: invalid signature for com.github.osxfuse.filesystems.osxfusefs, will not load. See also https://github.com/osxfuse/osxfuse/issues/122.
The binary for OSXFUSE from http://osxfuse.github.io/ (as suggested by the answer of Old Pro) does not have this problem, and therefore installing this one instead resolved it for me.

mac os x 10.9 lua update to latest 5.2.2

On my Mac OS X 10.9 Mavericks I have lua already installed:
MacBook-Pro-Dmitri:~ dmitri$ lua
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
I want to upgrade it to latest 5.2.2 version..
Unfortunately brew throws an error when I'm trying to do this:
MacBook-Pro-Dmitri:~ dmitri$ brew install lua
Warning: lua-5.1.5 already installed
or:
MacBook-Pro-Dmitri:~ dmitri$ brew upgrade lua
Error: lua-5.1.5 already installed
Does this mean that I need to update only with building it myself?
Did somebody solve this issue on his/her machine?
Thanks!
5.2.2 is the latest, do yourself a favour and forget brew
wget http://www.lua.org/ftp/lua-5.2.2.tar.gz
tar -zxvf lua-5.2.2.tar.gz
cd lua-5.2.2
make macosx
sudo make install
That certainly sounds like brew does not have lua 5.2.2 available under the lua name.
That being said about two minutes worth of searching on google and reading around (to be fair I had to read the lua.rb formula but it was in a comment nearly at the very top of the file) found that there is a lua5.2 version in Homebrew-Versions.
So what I've done is:
I checked that brew already installed lua 5.1.5 and highlight is requiring it..
I installed lua 5.2.1 as:
brew install lua52
and linked it like:
brew link lua52
brew doctor is saying everythings ok and terminal runs lua version 5.2.1:
MacBook-Pro-Dmitri:bin dmitri$ lua
Lua 5.2.1 Copyright (C) 1994-2012 Lua.org, PUC-Rio
I'm not sure that my solving was correct, so put your comments please!

Resources