Contents
Introduction
Linux Distros | BSD-Based | Mac OS X | |||
---|---|---|---|---|---|
Base/Origin | Debian | Slackware | RedHat | BSD | (BSD-core) |
Derivates / More known distros1 | Knoppix, Ubuntu | Suse | CentOS | FreeBSD, NetBSD, OpenBSD | Mac OS X 10.x |
Primary Pkg Mgr(s) |
apt, dpkg | pkgtool | rpm | google to learn more | MacPorts, Fink, Homebrew (brew) |
1Aside base/origin distros. |
General
- Google package managers
- Wikipedia:
- how-to.linuxcareer.com / comparison of major linux package management systems
Distros, History – Linux, *NIX
- wikipedia:
- Linux: Linux distribution
- (e.g. GNU/Linux distro timeline)
- Unix: File: Unix history simple.svg – including BSD, Minix, Linux, Mac OS X, HP-UX, Solaris, …
- Linux: Linux distribution
- google linux distros
APT – Advanced Package Tool (Debian origin)
- wikipedia: Advanced Packaging Tool
- wiki.debian.org / Apt
- www.debian.org / doc / FAQ / ch-pkgtools.en.html (also in dpkg)
dpkg (Debian origin)
- wikipedia: Dpkg
- wiki.debian.org / Teams / Dpkg
- www.debian.org / doc / FAQ / ch-pkgtools.en.html (also in apt)
Mac OS X – Related
In alphabetical order, not in any priority. (Personally most often used during 2010s and into 2020s is Homebrew/brew.)
- Homebrew (below) – most common, most useful (early 2020s)
- MacPorts (below) – somewhat common, possibly also useful (early 2020s)
- Fink – (below) – not sure if any usefulness any longer (early 2020s)
- google.com/search?q=macos+package+manager
- google.com/search?q=fink+vs+homebrew+vs+macports
- scivision.dev/homebrew-macports-fink/
- slant.co/versus/1589/1674/~fink_vs_homebrew (really user UNFRIENDLY presentation w/ ads)
Fink – apt/dpkg-based
Not really that useful any longer, maybe was in early 2010s but not in early 2020s.
Homebrew, brew
The most useful package manager on macOS in the early 2020s.
MacPorts (was DarwinPorts)
“In-between” useful between Homebrew (best, most useful) and Fink (least useful) among package managers on macOS in the early 2020s.
RPM (RedHat origin)
- wikipedia: RPM Package Manager
- wikipedia: Yellowdog Updater, Modified (yum)
- Debian and RPM
Slackware
Embedded Systems – Use
(2014 Oct)
Use cases:
- Use on Host, development workstation (e.g. Mac OS X with virtual machine running a Debian distro, X86)
- For tools etc for host-only use – easy and defintely appropriate
- For libraries used in development of target code, then also require integration in build system with cross compilation etc
- Use on Target, possibly… (e.g. Debian-based, w/ BusyBox, Arm)
Functionality needs: How advanced capabilities do we really need? Overhead: For learning how to actually package files for some more capable package manager system (‘PMS’)
In building and maintaining, cross-compiling, PMS tool(s) for use on embedded systems.Availability: If PMS even available for cross compilation on your target env? Footprint (size) How much resources will PMS take up on embedded system?
Example, specific case Oct 2014
Package Manager Solution | Runtime Env. | |||
---|---|---|---|---|
Host* |
Target w/ |
Fetch |
||
APT – Advanced Package Tool |
Yes |
No |
Yes |
|
dpkg – for Debian package mgmt. |
Yes |
Yes |
No |
|
RPM Package Manager (RedHat) |
No |
Yes |
No |
Legend:
Host – whether package exist in development environment host (*Debian 7.6 in this case), if exist simplifies dev and test of packages, as doesn’t have to get and build package also for this environment.
BusyBox – whether functionality is available in this package, not that we’re currently including among options when building it.
Fetch – whether package include capabilities to also fetch packages from remote destination
Programming Language – Specific
- nmp – for JavaScript, io.js, jQuery, Node.js, Angular, …
- Perl
- PHP
- PEAR (PHP Extension and Application Repository) and PECL
- Composer
- Python
- Ruby
- Swift