Categories
linux Microsoft

What are .deb, .rpm and .msi?


Files such as .deb and .rpm are more akin to a .zip file. They’re a directory tree of files and sub-directories that contain files related to a particular application and/or library of files.

Distros

The .deb files are meant for distributions of Linux that derive from Debian (Ubuntu, Linux Mint, etc.). The .rpm files are used primarily by distributions that derive from Redhat based distros (Fedora, CentOS, RHEL) as well as by the openSuSE distro.

What’s special about them?

These files have one other special trait that sets them apart from .zip files, in that they can include a specification that contains rules that tell the package manager software running on a system that’s installing one of these files to do additional tasks. These tasks would include things such as:

  • creating user accounts on the system
  • creating/modifying configuration files that aren’t actually contained in the .deb or .rpm file
  • set ownership/permissions on the files after installation
  • run commands as root on the system that’s installing the package
  • dependencies, both formats can include names or packages and/or service names that they require to be present on a system, prior to installation.

What about .msi files?

.msi files are similar to .deb & .rpm files but likely even more sophisticated. The .msi files are utilized by the Windows Installer and offer additional features such as:

  • GUI Framework
  • generation of uninstall sequences
  • A framework within itself – for use by 3rd party installers
  • Rollbacks
  • Advertisement
  • User Interface
  • etc.

I’d suggest taking a look at the various Wikipedia pages on these subjects if you want a more in-depth explanation.

References

'Coz sharing is caring
Categories
linux

ls command with a long listing format

When we execute the ls command with a long listing format, what does this mean?

ls -l filename

-l option of a ls command will instruct ls to display output in a long listing format which means that instead of output containing only a name(s) of file or directory the ls command will produce additional information.

linux ls command

Example:

ls -l file
-rw-rw-r--. 1 root swat 0 Jan 26 09:30 file1

From the output above we can deduct a following information:

  • -rw-rw-r- permissions
  • 1 : number of linked hard-links
  • root: owner of the file
  • swat: to which group this file belongs to
  • 0: size
  • Jan 26 09:30 modification/creation date and time
  • file1: file/directory name

To answer your question we will look more closely at the permissions part of ls long listing format output:

- -rw-rw-r--

The permissions part can be broken down to 4 parts. First part in this example is “-” which specifies that this is a regular file. Other common uses are:

  • l this specifies symbolic links
  • d stands for directory
  • c stands for character file

Next three parts are also called octets and they define a permissions applied to this file. First octet ( -rw- ) defines a permission for a file owner. In this case owner has read and write permissions. Second part ( rw- ) defines read and write permissions defined for a group. And the last part defines read-only permissions for others ( everyone else ).

From permissions listed as:

lrwxrwxrwx

we can conclude that this particular file is a symbolics link pointing to yet another file somewhere within a file system. It lists full permissions for an owner, group and everyone else. Although it has full permissions for everyone it does not mean that the file it is pointing to will also have the same permissions ( in most cases it does not !). We can check the file name to see where this symbolic link is pointing to. For example this X executable binary points to Xorg in the same directory:

$ ls -l X
lrwxrwxrwx. 1 root root 4 Feb 22 10:52 X -> Xorg
'Coz sharing is caring