A tutorial explaining how to use this software is provided in the download section as a PDF. The data that go along with this tutorial are available as a zip file. If you would like to reference the tutorial in a publication, report, or online posting, an appropriate citation is: Steven J. A Brief Tutorial on Maxent. DeathSoundCore DSBCOR001 Audio Preview. Internet Archive HTML5 Uploader 1.6.0. Plus-circle Add Review. Reviews There are no reviews yet. Download 100 Files download 100 Original. IN COLLECTIONS. Folksoundomy: A Library of Sound.
As I am sure many of you are aware I have tried over twenty different Linux distributions, many of which use different package managers to one another. Each package manager has several different characteristics, all of which influence my decision to use them and hence also my decision to use the respective Linux distribution(s) on which they are used for package management.
In this comparison I will compare the following package managers (note, each package manager’s long name is hyperlinked to their respective section):. ( APT), the default package manager of Debian and its various derivatives. I will also discuss the related package managers aptitude and Synaptic in this section.
( DNF), the default package manager of Fedora ≥22 and its up-to-date derivatives (e.g. Chapeau and Korora) and the successor to yum., the default package manager of Sabayon Linux., the default package manager of Arch Linux and its derivatives., the package manager of Gentoo Linux and its derivatives such as Calculate and Sabayon. ( yum), the default package manager of CentOS, Fedora ≤21 and the predecessor of DNF. ( zypper), the default package manager of openSUSE and its derivatives.with respect to the following areas:. Beginner-friendliness.
Does it have an easy to understand and remember syntax? Does it have a high-quality of free documentation?
Does it have an officially-supported graphical user interface? If so, is this GUI intuitive and easy to use?.
Customizability. How much customization of installed packages and the options for this package manager are allowed?. Development: How easy is developing packages for this package manager?. Features. Does this package manager allow users to abbreviate commands? Does it allow users to skip confirmation checks?
Does it include search functions? Does it show users detailed information about the packages when asked? Does it support local installs? Can it install packages from a specified URL? Does it support installing the dependencies of a target package only? Apt-get build-dep) Does it support installation from source code and binary packages?
Does it support wildcards?. Speed. This is something that will be based on research, along with one test. The test is I will reinstall the vim package (reinstalling so to ensure the time measured is only the time taken to install the package and not the time to download the package, download and install its dependencies, etc.) on a Virtual machine. This process I will time using the time command. Debian/- changelog- compat- control- copyright- rules- source/- formatthe contents of the changelog and copyright files I think are pretty obvious, so I will skip them and just mention what is in the compat, control and rules files.
The compat file is a file that contains nothing but the number nine (9) in it, as it is supposedly a “magic number”. The control file contains most of the package’s metadata like its description, name, version, dependencies, etc. While the rules file contains the build instructions for the debuild command to follow, in order to build the Debian binary package.
Frequently, a single upstream package will be split up into over three different Debian packages, each with different suffixes (most commonly debug, dev and doc) and/or prefixes (most commonly lib). This package splitting, to my understanding, is designed to give users greater freedom over their installed packages. If they want debugging symbols, development features, documentation or the package’s installed libraries they can install them separately, while if they just want basic functionality for the package in question they can install the base package and not install these extras, hence saving space. FeaturesAPT, by default, installs binary packages, with the file extension.deb, although a RPM rewrite for APT exists called APT-RPM that uses binary packages with the.rpm file extension. APT-RPM is only used by one Linux distribution I have personal experience with, PCLinuxOS, and I have personally noticed no syntactic, performance or other difference between it and APT, based on my limited experience with it. APT can also be used to build and install software from source code packages (which are provided by the APT src repositories). Its enabled repositories are listed in /etc/apt/sources.list, here is an example one taken from my Debian 8.3 VM.
Deb jessie maindeb-src jessie maindeb jessie/updates maindeb-src jessie/updates main# jessie-updates, previously known as 'volatile'deb jessie-updates maindeb-src jessie-updates main. One disadvantage of APT, as opposed to DNF, yum or ZYpp, is that it cannot be used to download a package and install it from a specified URL. Instead, if one wishes to install a.deb package from a URL one has to run something like.
User $ wget $URLuser $ sudo dpkg -i $package.debuser $ sudo apt-get -f installwhere $URL is the URL you wish to install the Debian package from, while $package is the package’s name, without its.deb file extension. The third of these lines installs any missing dependencies that are available from enabled repositories (listed in /etc/apt/sources.list) and then will install the $package.deb file, if line 2 failed to, due to missing dependencies. I have heard that later releases of APT may be able to install local packages and do dependency management without dpkg having to be explicitly called. In other words, these later releases of APT may be able to install a package from URL with just two commands, namely. User $ wget $URLuser $ sudo apt-get install $package.deb. One feature of APT that can be handy is that it supports the use of wildcards, e.g.
Root # apt-get install lua5.2.should install all packages with the lua5.2 prefix. It supports the installation of package groups too. To list available package groups I suggest you install the tasksel if it is not presently installed (via issuing root # apt-get install tasksel)and run user $ tasksel ‐‐list-tasks.Then to install the package group you run root # apt-get install $group^,where $group is the package group in question. One-click installs are supported by APT, on Ubuntu at least. SpeedRunning root # time apt-get install -y ‐‐reinstall vimgives. Reading package lists.
DoneBuilding dependency treeReading state information. Root # apt-get update && apt-get upgradeUpdate index lists and upgrade all installed packages.1: Note: in this table I use the short-hand notations $package and $repository to refer to the target package(s) or repository, respectively, that the user wishes to perform the mentioned action on.DNF( DNF) is a rewrite of yum that’s major distinguishing feature, from its predecessor, is the fact it uses ZYpp’s libsolv library for dependency resolution and hence has performance advantages over yum. Despite this DNF is very similar to its parent, as it has an almost identical syntax, is written in Python and it serves as a front-end (for dependency resolution, repository management, etc.) for the RPM package manager. DNF has replaced yum as the default package manager of Fedora since the release of Fedora 22 in May 2015. CentOS is likely to follow suit sometime in the future. Beginner-FriendlinessDNF is more intuitive than APT as there is just a single command that calls it,.
Its syntax is simple, for example root # dnf install octaveshould install GNU Octave, while root # dnf remove octaveshould uninstall it. Fedora and most of its derivatives use PackageKit front-ends such as Apper (for Qt-based desktop environments such as KDE) and GNOME Software, for graphical package management, both of which run DNF in the background. Overall I would rate DNF as 8/10 for beginner-friendliness.
Its basic syntax is. Root # dnf action option(s) target( s) (1)for more details see its.
CustomizabilityAs with APT, DNF is primarily a binary package manager, so by default there are not many customizations that can be done to existing packages. Like with Debian packages for APT, however, a single upstream software package is often split into multiple smaller RPM packages, with each RPM package providing different functionalities of the upstream package. Root # dnf updateUpgrade all installed packages.1: Note: in this table I use the short-hand notations $package and $URL to refer to the target package(s) or repository URL, respectively, that the user wishes to perform the mentioned action on.EntropyEntropy is the default package manager of Sabayon, although Sabayon also comes with the package manager pre-installed, but only the use of Entropy is supported by the Sabayon community. Entropy has similarities to Portage, along with several key differences. It is written in Python and shell script, like Portage, but unlike Portage, which, by default, installs software from source code following instructions found in ebuilds, Entropy installs software from binary packages. These binary packages were originally built using Portage, however, then they are converted to binary packages suitable for Entropy using Entropy itself (via root # equo pkg inflate $package.tbz2).Entropy has both an official command-line and graphical user interface; from the command-line it is called by the command, while Rigo is its GUI.
Entropy is the second-youngest package manager mentioned in this post, after DNF, with its first public release being in 2007 and its first stable release being in 2012.Entropy is not a front-end for any lower-level package managers, unlike APT which is a front-end for dpkg and DNF which is a front-end for RPM. Beginner-FriendlinessIt is a fairly beginner-friendly package manager, its command-line syntax is intuitive, for example, root # equo install octaveshould install GNU Octave, without prompting, while root # equo remove octaveshould uninstall it without prompting.
The only prompting that Entropy does, unless you, the user, specify that it should by passing it the -ask or -a options to it, is asking if you accept any relevant package licenses that are not accepted by default. Its basic syntax is. Root # equo action option(s) target( s) (2)Several abbreviated actions exist, for example, i for install, rm for remove, up for update and u for upgrade.
It has a graphical user interface which is always a nice beginner-friendly touch. Overall I would rate its beginner-friendliness at 8/10. CustomizabilityAs Entropy installs software from binary packages, there is no real freedom to customize the packages to your liking. Except by, of course, writing your own ebuild, or modifying existing ebuilds, to your liking and building and installing them. Or building/installing existing ebuilds in the Portage Tree or unofficial overlays with custom USE flags enabled. As far as customizing Entropy itself, there are several files in the /etc/entropy directory that can be used to customize Entropy’s options.
Root # equo update && equo upgradeUpgrade all installed packages.1: Note: in this table I use the short-hand notation $package to refer to the target package(s) that the user wishes to perform the mentioned action on.pacmanis the default package manager of Arch Linux and its various derivatives as well as at least two supposedly “independent” distributions, Frugalware Linux and KaOS. It adheres quite strictly to the Arch philosophy of keeping it simple, at least to those that understand it well enough. See, its syntax is far from intuitive or straight-forward to a beginner, in fact, it can quite easily become confusing, but once one understands pacman and how it works well enough, it becomes clearer. It is written almost entirely in C and this likely contributes to the fact that it is probably the fastest Linux package manager available today.
Pacman’s first stable release was in February 2002. It is not a front-end for any other lower-level package managers.Its packages have the.pkg.tar.xz file extension and are generated by running the command (which is provided by the pacman package) in a directory in which a specialized Bash script called a PKGBUILD is located. The PKGBUILD, analogous to a RPM file’s specfile, contains instructions read by makepkg to build the package.Arch Linux has two main types of repository: the pacman repositories which pacman accesses and uses to install software and the (AUR). The AUR is managed by git and presently contains over 30,000 different PKGBUILDs for packages that are not in the pacman repositories and as pacman itself does not have access to this repository this leaves one with far fewer packages to choose from. Fortunately, however, several exist that have access to both the AUR and the pacman repositories. When it comes to installing packages in the AUR what many of these helpers will do is they will download the PKGBUILD (either by git cloning the AUR repository in which it lies or downloading a tarball snapshot of this repository), install any missing dependencies with either pacman or from the AUR, then build the package with makepkg and install it with pacman.The most popular AUR helper, which is also the one I have the greatest experience with, is Yaourt, which is written in Bash script and has a pacman-like syntax.
So running root # yaourt -S atom-editorshould build and install atom-editor from the AUR. Trizen is another AUR helper I have used, it has a pacman-like syntax, but unlike Yaourt it is written in Perl. Beginner-FriendlinessAs previously mentioned pacman has a syntax that is non-intuitive to newcomers, for example, to install a package one runs root # pacman -S $packagewhile to remove it one runs root # pacman -Rs $package.If you are interested in making the transition from another package manager to pacman, I suggest you read the article at The ArchWiki, along with the man page. Pacman has no officially-supported graphical front-end, although unofficial front-ends (such as Octopi and Pamac) exist and are included, by default, in the Arch derivative, Manjaro Linux.Its basic syntax is. Root # pacman options action target( s) (3) Customizabilitypacman’s settings (like a list of enabled repositories) are stored in /etc/pacman.conf, but as pacman is a binary package manager some freedom is taken away from the user, in terms of customizing their system.
Despite this, Arch Linux has the (ABS), a Portage Tree-like set of subdirectories found in /var/abs/ that contain the PKGBUILDs and associated other files used to build the software in the pacman repositories. The ABS is not included, by default, on Arch Linux, however, it has to be installed by the user and setup. Once installed, it is possible that the user can use it to customize all packages installed on their system to their liking and any extra packages they would like to install. DevelopmentDeveloping pacman packages is far simpler than developing any other packages mentioned in this post. See it involves just writing PKGBUILDs, which are easier to write, in my opinion, than ebuilds, rules files and spec files. Once one is written or desired adjustments are made to one, the user can test it by running user $ makepkg -sfrom within the PKGBUILD’s directory.
This will download the upstream source code packages required, if they are not already in the PKGBUILD’s directory, install any required build dependencies for the package and build it, by following the instructions within the PKGBUILD. Featurespacman’s feature set is fairly limited compared to other package managers mentioned in this post, with respect to previously mentioned features, at least. It does not have an autoremove (it is possible to do an autoremove though, by piping the output of one pacman command through another, namely by running root # pacman -Qdtq pacman -Rs)or builddep action (although the makepkg command can be passed the -s option to get it to install all required build dependencies, prior to making a package), nor does it support the use of wildcards.
It also provides fewer details in its output than DNF or Entropy. It does support the use of meta-packages or package groups to automate the installation of a large group of related packages.
For example, root # pacman -S gnomeshould install all the basic components of the GNOME desktop. While root # pacman -S gnome-extrainstalls assorted extra packages related to GNOME like its core application suite.pacman does have several actions that can be built into a single pacman command, though, giving it more power and compactness in its syntax than more beginner-friendly package managers like APT or DNF. For example, root # pacman -Syyu $packagecan be used to synchronize local repositories, upgrade all installed packages on the system (note this will not upgrade packages installed via the AUR or custom PKGBUILDs) and install the package(s) specified in $package. This is as opposed to root # apt-get update && apt-get upgrade && apt-get install $packagefor APT and root # dnf update && dnf install $packagefor DNF.pacman can download and install packages from a specified URL too, using the -U option.
SpeedFrom root # time pacman -S vim ‐‐noconfirmI received the output. Warning: vim-7.4.1294-1 is up to date - reinstallingresolving dependencies.looking for conflicting packages.Packages (1) vim-7.4.1294-1Total Installed Size: 2.70 MiBNet Upgrade Size: 0.00 MiB:: Proceed with installation? Y/n(1/1) checking keys in keyring ###################### 100%(1/1) checking package integrity ###################### 100%(1/1) loading package files ###################### 100%(1/1) checking for file conflicts ###################### 100%(1/1) checking available disk space ###################### 100%:: Processing package changes.(1/1) reinstalling vim ###################### 100%real0m0.464suser0m0.227ssys0m0.067sso it took 0.464s total to reinstall this package. I think this time is very fair, as in my experience pacman is the fastest Linux package manager I have ever used. Basic Usage Table 4: Basic Usage of pacman ActionCommand 1DescriptionBuild package from source. Root # pacman -SyuUpgrade all installed packages present in the pacman repositories.1: Note: in this table I use the short-hand notation $package to refer to the target package(s) that the user wishes to perform the mentioned action on.Portageis the default package manager of Gentoo Linux and many of its derivatives, including Calculate and Funtoo Linux. The main command that invokes Portage from the command-line, is.
It is written in Python and Bash script and unlike all other package managers mentioned in this post it works with source code packages, by default. As such there are several differences between it and other package managers, in term of how it operates.Its chief repository is found in the /usr/portage directory (the so called “Portage Tree”, it can be searched from ), which is structured similarly to the FreeBSD ports system and contains ebuilds, a specialized type of Bash script, along with patch files and Manifests (a file that contains checksums and file size information about ebuilds and other files). This structure is such that the top-level subdirectory of /usr/portage is for package categories like app-editors for text editors, x11-wm for window managers, etc., the next lower level is for specific packages (e.g.
/usr/portage/app-editors/gvim is where gVim ebuilds and related files can be found). Ebuilds contain instructions that Portage can use to build a binary software package (in the.tbz2 format) and/or install the software package from source code or a binary package from another distribution (e.g. Debian packages and RPM packages).Additional Portage repositories (which are more commonly referred to as overlays), have the same internal file structure to the Portage Tree, that is, their top-level subdirectories are package categories and their subdirectories are for specific packages. They are managed by a tool also developed by the Gentoo Foundation called Layman which stores its repositories in the /var/lib/layman directory. For example, /var/lib/layman/sabayon-tools, if it exists on one’s system, would contain my Portage overlay,.
Layman is written in Python too and is not included with Gentoo Linux by default (although it is included with Sabayon Linux, by default) and instead has to be installed with Portage before it can be used. Beginner-FriendlinessPortage is probably the least beginner-friendly package management system mentioned in this post, its syntax is less than intuitive and quite frequently installing, removing and upgrading software is not as simple as running a single command. This is due to USE flag constraints, package conflicts, etc., that the user sometimes has to deal with.
It has no official graphical front-ends, although an unofficial GTK-based one called Porthole is available from the Portage Tree. Despite this it does have pretty high-quality documentation for a Linux package manager, so the really motivated and persistent beginners could probably learn how to use it without needing help from others. Overall I would rank it at 2-3/10 for beginner-friendliness.Its basic syntax is.
Root # emerge options action ebuild tbz2file file @set atom (4)For further details on its syntax go. CustomizabilityBeing a source code package manager, Portage affords users almost infinite control over the packages on their system. It does this via the specification of so called “USE flags”. They are usually options that ebuilds pass to the respective configure script of the package they build.
The Portage Tree (PT) and unofficial Portage overlays usually contain several different versions of the same package too (each with different ebuilds), hence affording users a choice of multiple different versions of the same package. For example, the package (which is for the Enlightenment window manager) at the time of writing has the following different versions available in the PT:. 0.16.9999. 0.17.9999. 0.18.8.
0.19.10. 0.19.12. 0.20.1.
0.20.2. 1.0.11. 1.0.17These packages also differ in their allowed USE flags, the 0.20.2 package has the wayland USE flag, for example, which if enabled will build the package with Wayland support. Additionally one is free to set up one’s own overlay, like I have, and install one’s own custom packages using it.
DevelopmentPackage development with Portage is easier than developing Debian packages, about as difficult as developing RPM packages and more difficult than writing PKGBUILDs and developing pacman packages, in my opinion. By package development I mean both writing working ebuilds and building binary packages from them. Writing ebuilds is a skill that comes slowly and only by doing several examples, and having a good knowledge of Bash syntax is a prerequisite for doing it well. Those interested in writing ebuilds may wish to read the command man page and the file format man page, both of which are hosted on this site. FeaturesPortage is one of the most feature-packed package managers out there. Its output can be made more detailed (or verbose) by passing the -verbose/-v flag to it.
The -buildpkgonly/-B option can be passed to get it to only build a binary package and not install the program into the live file system. It does not do installs from a specified URL, although it can be used to install local binary packages, although they have to be in a specific location in the root file system. The way it downloads the source files, that are used to build the package, is via wget and, if possible, rsync. SpeedPortage is, by far, the slowest package manager compared in this comparison, as it builds software packages from source code, by default. To test its speed I ran root # time emerge app-editors/vim::sabayon-toolswhen the latest version of Vim (and the version in my sabayon-tools overlay) was 7.4.1342, the full output it gave was very long so I have placed it and rather I will just give the time it took to reinstall app-editors/vim (none of the related packages like vim-core or gvim). Root # emerge -syncroot # layman -Sroot # emerge -uDU -with-bdeps=y @worldUpgrade all installed packages, after synchronizing (with their respective version control system) the Portage Tree and all locally-installed overlays.1: Note: in this table I use the short-hand notation $package to refer to the target package(s) that the user wishes to perform the mentioned action on.yum( yum) is a front-end for the RPM package manager that is written in Python. Prior to the release of Fedora 22 in May 2015 it was the default package manager of Fedora, and it is still the default package manager of CentOS, Oracle Linux, Red Hat Enterprise Linux (RHEL) and Scientific Linux.
Yum, as its name suggests, started off as a modified version of the Yellowdog Updater (YUP) used by the Yellow Dog Linux distribution, that was developed for use by the Red Hat Linux systems at Duke University in the early 2000s. RHL at the time used the up2date package manager. Later yum was adopted by CentOS, Fedora and their descendants, along with Yellow Dog Linux itself. Its development has since been ceased in favour of its supposedly faster successor,.
Beginner-FriendlinessLike DNF ’s syntax is fairly intuitive with root # yum install $packageto install a package and root # yum remove $packageto uninstall it. It also has the Qt-based Apper and GTK+ based GNOME Software graphical front-ends available. I would personally rate it at 7-8/10 for beginner-friendliness.Its basic syntax is. Root # yum action option(s) target( s) (5) CustomizabilityAs yum is a binary package manager its packages cannot be as easily customized as source code packages would be.
Source code packages can be downloaded though (with the command user $ yumdownloader ‐‐source $package),modified, rebuilt and installed as described in the DNF section of this post. DevelopmentDeveloping packages for yum is the same as developing DNF packages as they are both RPM packages. You can use the outlined at the Fedora Wiki or using the Open Build Service. FeaturesLike its descendant, DNF, yum has in-built support for downloading and then installing software packages from a specified URL, via running. Root # yum updateUpgrade all installed packages.1: Note: in this table I use the short-hand notations $package and $URL to refer to the target package(s) or repository URL, respectively, that the user wishes to perform the mentioned action on.ZYpp(also known as libzypp) is the default package manager of openSUSE, SUSE Linux Enterprise (SLE) and their derivatives. ZYpp provides the libraries for openSUSE’s command-line package manager, and its graphical package manager, YaST2. ZYpp serves as a front-end for the RPM package manager, providing advanced features like repository management, dependency resolution, etc., making it similar to DNF and yum in that regard.
ZYpp, unlike most other RPM package manager front-ends I am aware of (the only exception is, of course, APT-RPM), is written predominantly in the compiled language, C, as opposed to DNF and yum which are written mostly in the interpreted language, Python, and urpmi (from Mageia/Mandriva/OpenMandriva) which is written in the interpreted language, Perl. The significance of this, from the point of view of users, is that it may give ZYpp a speed advantage over these package managers. Zypper is written in C too while YaST is written in Ruby (another interpreted language, equally, if not more, slow than Perl or Python). The YaST2 Control CenterZYpp is a fairly beginner-friendly package manager. Zypper has an intuitive syntax, which includes abbreviated commands such as zypper in for zypper install, zypper rm for zypper remove and zypper up for zypper update. YaST2 is probably the most powerful graphical package management system I have ever used, in that it gives users the greatest number of options, with which to configure their system. YaST2 is also the default installer of openSUSE, that is, it is used to install the openSUSE operating system.
Overall I would rate it as 9/10 for beginner-friendliness. CustomizabilityZYpp, being a binary package manager, does not afford users much control over installed packages, although, it is possible to download the source packages (that is, the packages with the file extension.src.rpm) of installed packages, customize them and install the customized package. DevelopmentAs ZYpp works with RPM packages, following the instructions should suffice. It essentially involves creating a mock user called makerpm, with the required file system structure, getting the required spec file, source code files, etc. Into their respective locations in your /home/makerpm/rpmbuild directory and finally running user $ rpmbuild -ba $specfile.spec(from the rpmdevtools package, which is not in the default repositories of any presently-supported openSUSE version, so to add it I recommend you use the devel:tools repository. Is where you can find one-click install files and installation instructions for the rpmdevtools package from this repository).Here is an example /home/makerpm/rpmbuild directory structure, to serve as a guide for the discussion that follows.
Loading repository data.Reading installed packages.Forcing installation of 'vim-8.0.130-1.1.x8664' from repository 'Main Repository (OSS)'.Resolving package dependencies.The following package is going to be reinstalled:vim1 package to reinstall.Overall download size: 0 B. Already cached: 1.4 MiB. No additional space will be used orfreed after the operation.Continue? Shows all options (y): yIn cache vim-8.0.130-1.1.x8664.rpm (1/1), 1.4 MiB ( 2.9 MiB unpacked)Checking for file conflicts.done(1/1) Installing: vim-8.0.130-1.1.x8664.donezypper -no-refresh install -y -force vim 1.02s user 0.22s system 14% cpu 8.338 totalgiving time of 1.02s.
Making it the second-fastest package manager in this comparison. Basic Usage Table 7: Basic Usage of zypper ActionCommand 1DescriptionAdd a repository.
Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
January 2023
Categories |