Differnce between typicall package managers and portage/ports?
Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
If you mean by typical package management systems like APT or RPM, then the difference is that Portage and Ports are usually source based systems, while APT and RPM usually are used with binary packages provided by the distro maintainer.
Usually, because you can use Portage to install Portage-compatible packages created by a third party, while APT and RPM also include tools to create your own packages from scratch.
NetBSD uses pkgsrc which was conceived as a portable build framework/infrastructure for *nix like OS, not just NetBSD. But, apart from NetBSD of course, only MINIX (since v3) uses pkgsrc as it's standard package management system (but that's arguably because MINIX 3 uses the NetBSD userland as well).
The 'BSDs have binary package management tools also, the most sophisticated being FreeBSD's pkg (also used in some FreeBSD based OS and DragonFly), which aims to mimic apt/yum like functionality.
OpenBSD still uses the older pkg_add, pkg_delete, pkg_info, etc binary package management tools which were also used in FreeBSD prior to pkg.
In general terms whatever you compile and install from ports, should result in a binary package which gets installed and can be upgraded/removed using the pkg / pkg_add / pkg_delete tools (or pkgin for NetBSD).
In many cases there is simply no reason to build from source, if there is a binary package available, unless you specifically want to change compile flags.
The BSD system sounds very much like Crux. I update my Crux using the prt-get wrapper, which is sort-of like apt-get, but underneath are ancient tools called pkgmk, pkgadd and pkgrm. These are shell scripts, whereas I believe Gentoo's portage is written in python.
Yes, I believe CRUX Linux uses a BSD style init and has a ports tree of some sort?
Yes, the init is BSD (lovely simple scripts!) and there is a ports tree, but it's much simpler than the Gentoo one. Packages are classified only by repository, not by software function. There are three built-in repositories -- core, opt and xorg -- and two additional ones that can be activated if desired -- contrib and lib32. Contrib contains big, complex packages like libreoffice that are not consistent with Crux's KISS principles.
Ports & Co. implies that the software will be compiled on your machine. Packages are an archive of the result of compilation. Most distros are deployed using a collection of packages all compiled in a consistent way, which are then 'installed' on the target machine.
Usually, a package consists of not only items such as directory, files, etc. but also includes some mechanism for carrying out actions which relate to making the content or service of the package usable. This mechanism co-operates with the package installer. A package installer is not necessarily a package manager.
Other distros, like gentoo, depend on the whole system being compiled on the target machine, using some sort of bootstrapping method.
ports were originally a way to provide additional software to UNIX or clones -outside of what was a core or full installation of the main OS. UNIX systems provide both a kernel and a certain number of userspace tools, which together constitute a usable OS. Some argue that a kernel by itself is a complete OS, but the fact is that a kernel by itself can do no work -it expects to hand over execution to a program called 'init', do its' bidding and then receive a signal from init that it has finished its' job, so that the kernel can exit/stop in an orderly way.
Linux distros, on the other hand, do not have single control of both kernel and userspace, so any distro consists of a kernel plus some number of runtime applications, libraries, etc. Every distro has a different set of available software -both as a minimum needed to have a runnable system, and as a maximum which is available.
I believe CRUX was a binary distro (uses binary, pre-compiled packages) - used it for a year or 2 a few years back - not 100% sure though. FreeBSD ports builds packages from source code, just like Gentoo. FreeBSD packages are binary, pre-compiled packages ready for install.
I believe CRUX was a binary distro (uses binary, pre-compiled packages) - used it for a year or 2 a few years back - not 100% sure though.
No, Crux has always been source-based. Originally it just used simple scripts to build and install packages, but now it has an apt-like binary program called prt-get that wraps around the scripts. However you install it like a binary distro; only the kernel, the ports and the updates are built locally.
It was originally recommended to me by Oz, one of the moderators of Linux Forums, on account of its simplicity of structure and speed at boot. I fell in love with it and used it until they stopped supporting 32-bit. Then, when I got my present 64-bit machine, I went back to it.
OK, thanks for the clarification. I couldn't remember. I liked the distro for its simplicity but have since moved away from source based because altough my machine is powerful and compile times are short, I am less patient than I used to be
One of the reasons I like source-based distros is that I find the compilation hypnotic.
How funny to hear someone else say this! I too find it mesmorizing but my issue is when there are problems, I hate having to figure them out. Normally, my go to distro is Gentoo so if there is an issue, it's something an ebuild maintainer did accidentally and will be worked out in a few hours. Other than that, Gentoo has proved quite reliable. I go through phases where I literally spend days trying out distros to find the "perfect" one, even though I know there is no such thing. In frustration I end up installing a no-brainer distro that uses systemd which is not at all what I want, but they tend to just work so...
In a few days my "OCD" will force me into that "dog circling bed, can't find a spot to lay down" cycle. Sigh.
There's only one way to find/have the perfect distro for you. Design, bootstrap and build the thing yourself, but without using any 'weenie' solutions like gentoo -a bunch of pre-made build scripts, or even LFS, where the scripts are disguised as code snippets in a web page. No, you must define exactly what you want from your OS and implement that on your own.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.