Coder Social home page Coder Social logo

mac-dnf's Introduction

macdnf

A port of Fedora's dnf package manager to macOS, and a compatible package repository.

Supports both x86_64 and arm64 machines, though some packages (notably qemu and gcc) are not yet operational on arm64 due to lack of upstream support.

Since the package repository is small (but getting bigger!) and I am one person working on this, I'm interested to hear about what people want to use! If you've decided to try this out (for some reason) and you're missing your favorite packages from brew or whatever, put in an issue and I'll prioritize porting them.

Installation

This conflicts with Homebrew! I have vague aspirations of changing this, but dnf and rpm are set up to assume that packages will be installed in the same place (here /usr/local) everywhere, so modifying them to support arbitrary-prefix installations is a non-trivial amount of work. I definitely think it's possible, I just haven't really sat down and hashed out what needs to change yet.

If you do have Homebrew installed, the following commands should get it out of the way in a reversible manner:

# Unlink all your Homebrew packages
brew list -1 | tee brew_previously_linked.txt | xargs -n 1 brew unlink
# Put them back later (if you want)
<brew_previously_linked.txt xargs -n 1 brew link

YMMV, though. I don't use brew anywhere at the moment (all my macOS machines are using dnf now) so I haven't tested that.

Then, to install dnf:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/digitalagedragon/mac-dnf/main/install.sh)"

Or clone this repo and run install.sh directly.

Uninstallation

rpm -qa | xargs rpm -e

Notes

This is still in very early development. The author has tested it somewhat on a few Big Sur (both architectures) machines, but there's no guarantee it won't make demons fly out of your nose. Pull requests / issues welcome.

The package repository is currently a work in progress. My current goal is to support most of this sample of Homebrew's top 100 user-installed packages:

brew100 status

brew pkg status dnf pkg
node node
[email protected] python3.9 (python)
postgresql
[email protected] ✔✘ python3.8, but no library support yet
imagemagick
youtube-dl
awscli aws-cli
git
[email protected] libopenssl
yarn
ffmpeg
cmake cmake
wget wget
gnupg gnupg
htop
mysql
vim
pyenv
go
automake automake
zsh
curl curl, libcurl
php
ruby
nvm
tmux
glib glib2, glib2-utils
ansible
gradle
openjdk
sqlite libsqlite, sqlite
nginx
coreutils
watchman
redis
libpq
kubernetes-cli
nmap
composer
heroku/brew/heroku
gh
jq
libxml2
pkg-config pkgconf (pkg-config)
helm
azure-cli
gcc ✔✘ Only on x86_64 hosts.
telnet
readline libreadline
cocoapods
gnutls
krb5 libkrb5, krb5
libtool libtool (need to add glibtool link)
ruby-build
unbound
maven
terraform
docker
zlib
graphviz
pango
git-lfs
pipenv
minikube
mongodb/brew/mongodb-community
fzf
bash
protobuf
gobject-introspection
libksba libksba
pandoc
[email protected]
sphinx-doc python-sphinx
gdk-pixbuf
[email protected]
harfbuzz
rbenv
tree
subversion
libass
aws/tap/aws-sam-cli
[email protected]
poppler
libyaml libyaml
bat
mysql-client
qt libqt
opencv
librsvg
sbt
hugo
unrar
freetds
autoconf autoconf
numpy numpy
mercurial
openldap
ccache
fastlane
direnv

mac-dnf's People

Contributors

m0rg-dev avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.