Linuxjourney 's section about Packages - .deb for Manjaro, yum and pacman and more questions alike


#1

I’ve been following the linuxjourney website to learn a little bit more about linux, and I have loved it so far. It gives information in short, easy reads, that you can binge through, and revisit easily if needed. However, I have come to my first problem while using the site.

Im currently in the Packages section of Grasshopper and I have realized that this section is mainly directed to Debian and Red Hat based systems. I’ve read though it, and although it seems really interesting, and I can use the utilities of any of the commands they talk about such as tar or gzip, I stopped when they talked about .deb and .rpm. This has lead me to a few questions.

Because Manjaro is Arch based, it doesn’t natively support .deb or .rpm packages. I know that you can install dpkg to install .deb in Debian based systems, and rpm for .rpm in Red Hat based systems, but is there any equivalent for Arch Based systems?

At the last chapter of the section, they talk about how you can use the command checkinstall to compile the source code of a programm into a single .deb file, instead of using make install, as if you later want to unistall, it is messier. Is there an equivalent in Arch?

Also, since they explained yum and apt but not pacman, why is pacman so different, and how is it used?

It’s funny how the guide just assumes that I’f you have been following though to that point, you must be using either Ubuntu and one of it’s flavours or Fedora, but if this is not the case, then I don’t know why would they leave Arch systems out of the guide, seeing as they AUR is the most complete repositories, out of their guide.

Thanks in advance, and sorry for the rant in italics. I actually quite like the guide, it just bums we that I can’t follow this part of the tutorial because I chose Manjaro to be my distro


Also, I tried to install Discord the way they describe in the last section, using ./configure and sudo make install, but it isn’t working. Is it because of Discord, or just that these commands are unique to Debian or Red Hat systems


#2

A must read, step by step, each link


You will understand …


#3

Its kinda like asking can you run a .dmg in linux.
Not as unrelated … because we are still linux, but you get the idea.
We have our version - pacman and pkgbuilds and pkg.tar.gz .
You cant zypper debs and you cant dpkg rpms.
We have some tools like debtap and alien that attempt automate the process of converting them. Say a deb to one of our pkgs. But they dont work perfectly. The best is done by hand. And thats the work that goes into ‘packaging’ … each of these packages in whatever form are built off of uncompiled sources … like how you can get something from github and run a script or makefile and it works on X amount of distros [again … some of these uncompiled sources are still meant for specific environments … but it is the ‘lower level’ before packaging]. All of our ways of automating this into our respective managers, systems , distros is what produces your given RPMs and DEBs … they are tailor made for each structure.

Our PKGBUILDS are actually more of just instructions of how you would install it by hand.
[often with special sauce to make it extra nice … like creating a desktop file]
See here: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=discord

If you want to learn how to do the manual make/build thing I suggest starting on something a bit less complex (and known to be annoying) than discord.


#4

I actually have zero clue of what you are talking about. What is a .dmg? :joy::joy:


However, I understand the underlying message even if I don’t fully comprehend the examples you used. Basically, you are saying things are different: built for different systems and for different commands (right?). Then, what would be the equivalent of .deb or .dpkg in Manjaro, or an arch based system? Is there anything like that? And if not, why? .deb seems terribly useful


#5

Mac’s .exe … uhm … their ‘wrapped up installation object’. Their ‘package’.

Ok no … its a disk image … but its how a bunch of mac software is distributed.
…ok fine. bad analogy. but it got the point across. :sigh:


#6

Ok, thanks. :blush:

As you can guess, I’m pretty newbie at this


#7

Will do, is just that I had to update it, so I was had to try if it would work either way. I’ll find something easier (I’m thinking of Hedge wars)


#8

For command line syntax for pacman, you might want to check up this cheat sheet.

https://wiki.archlinux.org/index.php/Pacman/Rosetta

But Manjaro uses the package format used by Arch Linux, which is different from .deb and .rpm files. Package management in Manjaro/Arch is, in itself, not the exactly same as on Debian-based or Redhat-based distros.

If you want a deeper understanding of how packaging works on Manjaro/Arch, you should consider reading some articles that targets more Manjaro/Arch than other distros.

The Arch Wiki, despite being meant for Arch Linux in the first place, would be a good start. A lot of stuff written here applies for Manjaro too.

Pacman: https://wiki.archlinux.org/index.php/Pacman
AUR: https://wiki.archlinux.org/index.php/Arch_User_Repository
makepkg: https://wiki.archlinux.org/index.php/Makepkg
PKGBUILD: https://wiki.archlinux.org/index.php/PKGBUILD

(On most of Manjaro editions, in addition to pacman, you have Pamac, a package manager made in-house that can be used both in a graphical environment and a command-line environment. For a list of available command in CLI, run pamac --help; for a description of that command, run pamac <COMMAND> --help . It uses a syntax similar to apt or yum.)


To get Discord on Manjaro, the most easy way to install it IMO would be to use AUR.

https://aur.archlinux.org/packages/discord/

AUR doesn’t hosts pre-built packages, but rather files needed to build the packages (once the package is built, you can install it on your system with your package manager).


#9

Also worth reading:

along with many other articles in the #faq section. It’s there for a reason. :wink:


#10

The Arch equivalent for dpkg and rpm is pacman. There is this nice Rosetta page with examples.

But to understand this you might need to look back. Because Debian and RedHat are old. They had time to experiment. Debian created the deb standard and the dpkg tool. It is kind of simple but powerful. But how to track version numbers, check for updates and how to download package to a system? This are important questions and they created apt-get. But apt-get with it’s siblings (apt-search, …) might be a little bit confusing and some developers created apt.
On Redhat it is similar. There was yum which is now replaced by dnf. But yum was not this first one. There is a constant development and optimization.
Arch is a little bit younger and learned form some mistakes. There is only one tool, called pacman. That combines, for example the Debian dpkg and apt, into one. Also it uses an own very simple package standard. A Arch packages ends usually in pkg.tar.xz , and is only a tar file that can be compressed with a compressing algorithm. If it is not compressed it ends just in pkg.tar

There is no real equivalent for checkinstall. On Arch it is usually easier to create a PKGBUILD file and create a real package that can be installed by pacman. The tool for it is called makepkg or buildpkg which is similar to debuild.

In the end pacman is not different at all. It does exactly the same as dpkg,rpm and apt,dnf.

The three historical most important commands of free software usually work only on free software. (not the free beer type.) It is called the Gnu Build system. This software need to use autotools which generates the configure file which creates the make file. make compiles the source code and make install installs the binaries in the filesystem. Today autotools are sometimes conditioned ancient. So you might see on newer projects the Meson build system. It is the one with the ninja build command.


#11


closed #12

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.