Fedora after installation. Fedora: package management

Application solution "1C: Retail 8" automates the registration of the following operations:

  • arrival of goods from the counterparty to the store’s warehouses;
  • sale of goods and services to the counterparty;
  • movement of goods between stores, internal warehouses of stores, stores and warehouses of a trading enterprise;
  • trade in sets of goods created both at the time of sale of the goods and with pre-sale preparation of the set;
  • returns of goods from customers, including returns after the closing of the cash register shift;
  • inventory of commodity stocks;
  • registration of incoming and outgoing cash orders directly in stores;
  • registration of sales receipts, and at the end of the shift, a summary report on the cash register, taking into account the returned goods per shift;
  • moving Money between stores, internal cash registers of stores, shops and cash registers of a commercial enterprise;
  • working with acquiring systems, accounting for payments for goods using payment cards, accounting for acquiring agreements and conditions for the return/non-return of a trade concession by the acquirer when returning goods; work with bank loans.
  • the use of percentage discounts on discount cards (fixed and cumulative discounts), discounts divided by store, discounts to counterparties, discounts on the amount of the receipt, discounts by validity period, by quantity of goods, by type of payment.
  • support for commercial equipment: fiscal registrars, data collection terminals, barcode scanners, electronic balance, buyer displays, acquiring systems, magnetic card readers.

The application solution "1C: Retail 8" can work with geographically distributed information databases (RIB). At the same time, a clear division of document flow between stores is ensured, and information on all stores in the network is consolidated in the central hub of the RIB. Using the central node, you can quickly create a peripheral RIB node.

Application solution "1C: Retail 8" can automatically exchange information with management information system(back-office). As control system for the application solution "1C: Retail 8" the application solution "Trade Management" can be used. Using the control system, you can create an unlimited number of nodes in the 1C: Retail 8 application solution, which, in turn, can be the central nodes of a distributed information base.

Mechanisms are provided for administering information base users of remote RIB nodes from the main node of the application solution. For example, in the main RIB node, the system administrator can register a user of the remote node's infobase and configure his access rights.

Along with multi-store accounting, multi-company accounting has been implemented, where each warehouse (sales floor) can be assigned to a specific organization (company).

The application solution "1C: Retail 8" can use order schemes for the movement, sale and receipt of goods at store warehouses. The order scheme provides for the preliminary registration of a list of goods required for acceptance or shipment from the warehouse, while the actual transaction with goods in the warehouse is registered with the documents “Outgoing order for goods” or “Receiving order for goods”.

The accounting of inventory in store warehouses and the accounting of cash in store cash registers are automated.

The application solution allows you to regulate retail prices for each store from a central node. At the same time, you can give the store the right to adjust retail prices depending on its location and the presence of competition.

The program implements mechanisms for generating price tags and labels.

Mechanisms have been implemented to automatically determine the VAT rate at the time of sale of goods from store warehouses. The taxation system is established for each warehouse separately. At the time of sale of a product, the sales floor (or warehouse) from which it is necessary to sell the product is determined by the cash register for the sale of the product and the product group to which it (the product) belongs. This makes it possible to correctly enter documents in stores that use a mixed taxation system.

The application solution "1C: Retail 8" implements schemes for the automated distribution of goods among warehouses, when upon receipt of goods the operator can distribute the supply among warehouses (sales floors) of the store depending on the product group.

After the installation of Fedora 24 Workstation has been successfully completed, it is not yet ready for full operation. Despite the fact that the distribution developers have already configured many programs for working with documents, media and file system, there are still a few things left that are not in the distribution out of the box.

In this article we will look at the most important actions after installing Fedora 24. Only after completing all these steps will your system be completely ready for use. This list can be continued indefinitely, but we will consider only the most important.

1. Complete system update

You may think it doesn't matter. But since the system was released, some problems may have already been discovered and fixes have been developed for them. New versions of programs could also be released. Therefore, we update the system to the latest version:

2. Setting up the computer name

In order to configure the computer name that will be displayed in the terminal and other programs, we will use the hostnamectl utility. It can set different kinds of hostnames. To view the current hostname, type:

You can change the hostname with the following command:

hostnamectl set-hostname "losst"

3. Setting up a static IP address

Servers very often use static IP addresses. One of the first things you need to do after installing fedora is to set up your network. If this is your option, open and edit the eth0 or enp2s0 configuration file in the /etc/sysconfig/network-scripts/ folder:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Here are the settings you need to add:

  • BOOTPROTO- protocol for obtaining an address, we need static
  • ONBOOT- automatic connection
  • IPADDR- the IP address you need
  • NETMASK- your network mask
  • GATEWAY- the gateway through which the computer will access the Internet
  • DNS1- DNS, with which you need to resolve domain names.

For example, it could be this configuration:

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=202.88.131.90
DNS2=202.88.131.89

To apply the changes, restart network services:

systemctl restart network.service

To view the changes you can use the command:

4. Add RPMFusion repository

Setting up fedora after installation should include setting up additional repositories. Some packages are not in the official RHEL and Fedora repositories. But you can install these packages from the RPMFusion repository. There are both proprietary and free packages here. To add a repository, run the command:

sudo rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-24.noarch.rpm

5. Install Gnome Tweak

By default, the Gnome desktop environment may not look the way we would like it to. The GNOME Tweak utility will help you configure many settings appearance Fedora 24, panel, desktop space and more.

You can install it by opening the Application Center, searching for Gnome Tweak and clicking the Install button:

6. Connect online accounts

Fedora 24 allows you to access online accounts directly from the system. You can configure them during installation. But if you haven’t done this, you can always do this in the settings, on the Personal tab, online accounts:

7. Installing Gnome extensions

Gnome Shell allows you to install extensions to make your system easier to set up and manage.

Then install with the command:

rpm install teamviewer.rpm

conclusions

This is far from all the actions that need to be done after installing Fedora 24, but the main thing is collected here. If anything was missed, write in the comments.

Sooner or later we have to install software not from official repositories. Not all packages are available there, and the newest versions of newly released programs are not always available. Very often, developers post packages for the most popular distributions on their official website. Usually these are deb and rpm. The latter is a little less common, but if you're using a Red Hat-based distribution, this is the package format you need. You can also often find libraries and other components online that are not available in packaged repositories.

We have previously covered the installation deb packages in Ubuntu. This article will discuss the installation in detail. rpm packages in linux.

RPM or RPM Package Manager is a package manager used in Red Hat-based Linux distributions. The file format of this package manager has the same name.

This format is not very different from the same Deb. You can see their detailed comparison in the article what. Here, I’ll just note that the rpm file is a regular cpio archive, which contains the program files themselves, as well as metadata describing where they should be installed. The database of all installed packages is located in the /var/lib/rpm directory. Among the features, it can be noted that rpm does not support recommended packages, as well as either-or format dependencies.

To manage packages, just like in Debian systems, there is a console, low-level utility of the same name - rpm. We will consider this further in the article. IN different systems Different package managers are used, for example Red Hat uses Yum, Fedora uses DNF, and OpenSUSE uses zypper, but the rpm utility will work on all these systems.

Installing RPM packages on Linux

Let's first look at the syntax of the rpm utility itself:

$ rpm -mode options package

The utility can operate in one of the modes:

  • -q- request, obtaining information;
  • -i- installation;
  • -V- package checking;
  • -U- update;
  • -e- deletion.

Let's consider only the most interesting program options that we will need in this article:

  • -v- show detailed information;
  • -h- display a status bar;
  • --force- perform an action forcibly;
  • --nodeps- do not check dependencies;
  • --replacefiles- replace all old files with new ones without warnings;
  • -i- get information about the package;
  • -l- list of package files;

Now that you already have an idea of ​​how to work with this utility, you can consider installing the rpm package on Linux. The simplest installation command will look like this:

sudo rpm -i package_name.rpm

To work with the command current directory there must be a folder with a package. Here we set the installation mode and transfer the package file. If the installation is successful, the utility will not display anything; if an error occurs, you will know about it.

To view more detailed information during the installation process, use the -v option:

sudo rpm -iv packagename.rpm

You can also enable display of the status bar during the installation process:

sudo rpm -ivh packagename.rpm

To check if the package is installed, we already need to use the query mode:

sudo rpm -q packagename

You can also immediately remove the package if you don’t need it:

sudo rpm -e package_name

But rpm, like dpkg, has one significant drawback. The program cannot resolve dependencies. If the required package is not on the system, you will simply receive an error message and the package will not be installed.

For automatic download dependencies during the installation of rpm linux, you need to use the distribution package manager. Let's look at several commands for the most popular RPM distributions. On RedHat and other distributions that use Yum, use this command:

sudo yum --nogpgcheck localinstall packagename.rpm

The first option disables GPG key verification, and the second says that we will install a local package. In Fedora, dnf makes things even easier:

sudo dnf install package_name.rpm

The Zypper package manager and OpenSUSE do just as well:

sudo zypper install packagename.rpm

This is how easy it is to install an rpm with dependencies. But not everyone likes to work in the console; many new users want to use GUI to solve all problems, including this one. Next we will look at several such utilities.

Installing RPM file in GUI

If you use OpenSUSE this is very easy. The universal YaST system configurator, among other things, allows you to install rpm packages. You can do this with file manager by selecting context menu for the file to open using Yast or by running the command:

yast2 -i package_name.rpm

In Fedora, you can use the distribution's application manager for the same purposes. Previously, there were several more universal utilities for solving this problem, but now they are all outdated.

conclusions

Now you know how to install an rpm file in Linux. In fact, it is very simple and there is not only one way, but several. Although graphic utilities there is a little less here than in Ubuntu. But console utilities completely enough. If you have any questions, ask in the comments!

FOSS systems in general, and Fedora in particular, are organized on a batch basis. In the same way, in the form of packages, any additional programs for them, created by independent developers. And therefore, one of the important tasks of the user is the integration of packages into their system. Packages for Fedora are distributed in rpm format.

rpm format

The invention of the rpm package format and the corresponding utility for managing them had a very large impact on Linux distribution in general. So you need to give him a little attention.

Story

The RPM package format (which then stood for Red Hat Package Manager) and the utility of the same name for manipulating such packages, capable of tracking dependencies and reporting their violation, played a very large role in introducing the general public to Linux. True, this utility did not know how to resolve dependencies, and has not learned to this day: this task is solved by more “advanced” package management tools. But compared to Slackware's silent package tooling, which didn't track dependencies at all, this was a big improvement from the point of view of ordinary users.

The origin of the RPM system (we mean by this both the set of utilities and the format of the packages with which they work) is lost in the darkness of centuries. The first versions of Red Hat used the RPP system, which provided one-command installation of packages, querying for information about them, and checking dependencies. However, assembling packages for it required significant modification of the author's sources, which was stressful for the distribution's maintainers.

In parallel with the early Red Hat, the Bogus distribution, now little known to many, developed for some time. It had its own package system - PMS (Package Management System), written by Rikard E. Faith. It had a weak mechanism for querying information about packages, and there was simply no checking of their dependencies. But packages for PMS could be assembled directly from the author’s sources, without any modification.

During the preparation of the 2nd release of Red Hat, Rickard Veit, together with Doug Hoffman, under a contract with Red Hat, wrote a PM (Package Management) system that incorporated the best features of RPP and PMS. Although practically it was never used, it served as one of the foundations for RPM.

The RPM system itself was created by Mark Ewing (one of the company's co-founders) and Erik Troan, who built on all the achievements of their predecessors - the developers of RPP, PMS and PM. Its version, prepared for test versions of the second release, was written in Perl for the sake of speed, which created a number of problems, for example, when loading from a floppy disk (and in those days this was quite in the usual way Linux start). And just before the release of Red Hat 2.0, the system was completely rewritten in C, the package database was redesigned for greater reliability and performance, and to use RPM functionality third party developers The rpmlib library was created. In other words, the RPM system acquired almost the form in which we know it today, having since then been subjected only to error correction and cosmetic improvements.

The RPM system (that is, the format and utility), having become standard and publicly available in the Red Hat 2.0 release, released in September 1995, immediately gained popularity outside the parent system. They were soon used in Caldera Linux (later called OpenLinux), which was initially an exact clone of Red Hat. Following this, the Suse distribution (genetically a descendant of Slackware) switched to packaging in rpm format. Of course, all subsequent Red Hat clones and derivatives, such as Mandrake, also used RPM.

I can testify as an eyewitness that by the turn of 1996–1997 (the time of my first experiments with Linux), the RPM system was widespread, considered stable and used far beyond the boundaries of the native distribution.

General information

Over its long life, the rpm format has undergone various changes, but in its general line it has retained both its characteristic features and backwards compatible up to the present time. Its current version from among those officially supported by the project of the same name at the moment (02/01/2011) is 4.8.1. It is used in countless distributions, representing both direct clones of Red Hat (CentOS, Scientific Linux, Oracle Enterprise Linux), and its derivatives, even if they have moved away from the progenitor, like Mandriva or Altlinux. In addition, it can be seen even in some systems that are not genetically related to it (for example, in all Suse variants).

In parallel with the general version of rpm, its updated version, known as rpm5, is also being developed. It was created by Jeff Johnson, who was previously one of the main developers of the “regular” rpm. According to his opinion, a new version significantly improved compared to its ancestor, for which, however, it was necessary to pay for the lack of compatibility between these two formats. Therefore, rpm5 is not officially supported by either the rpm project or any of the common rpm based distributions. It is used, as far as I know, only in the PLD distribution and, according to the announcement, will be used in the Mandriva 2011.1 release

Despite the fact that the listed rpm-based distributions (and many others not listed) theoretically use the same package format, in reality the details of their design differ. This is especially true for source packages (which will be discussed separately). However, on these pages I will limit myself to considering rpm packages for the Fedora distribution. True, what has been said about them will also be valid for RHEL, CentOS, Scientific Linux, Oracle Enterprise Linux, ASPLinux.

Package nomenclature

As part of the Fedora distribution you can find different types packages of the format we are interested in.

Firstly, binary rpm packages and the same ones, but with source codes, are distinguished. As the name suggests, the former contain precompiled components of the distribution package, such as:

  • executable binary files;
  • possibly libraries necessary for their functioning;
  • configuration files (or at least examples of them);
  • documentation.

Source packages contain their tarballs, patches necessary to adapt the author's packages to the target system, and various kinds of service information.

It is very easy to recognize both by their names, formed according to certain rules, which we will consider using the example of the most indicative package - the rpm package itself

The names of binary rpm packages are formed according to the following scheme:

Rpm-4.8.1-6.fc14.x86_64.rpm

where rpm is the name of the package, 4.8.1 is the number of the branch, version and specific release of the package, 6 is the build number for the current version of this distribution, fc14 is the name and version of it (that is, in this example, Fedora version 14), x86_64 - the architecture for which the package was assembled.

The source package name will be something like:

Rpm-4.7.1-6.fc12.src.rpm

You can see that the only difference is in the additional src suffix, symbolizing that we are dealing with a source package, and not with a precompiled binary. And it is obvious that the concept of architecture for source codes does not make sense - they (theoretically) should be compiled for any of them.

Among the binary packages you can also find those that are not tied to any architecture - they are identified by the additional suffix noarch. These include scripts in interpreted languages ​​such as Perl, Python, etc., font packages, documentation, and so on. For example, this is what a package for one of the Dejavu font family will look like:

Dejavu-sans-fonts-2.30-2.fc12.noarch.rpm

It was already mentioned above that binary rpm packages may contain libraries of functions necessary for their functioning. However, this is rather an exception: as with all UNIX-like systems, there is a tendency in rpm-based distributions to compile libraries as separate packages. Moreover, each library is usually presented in the form of two packages.

The first package contains the actual code of the library functions needed in any case; for example, the rpm package is provided by a library package

Rpm-libs-4.7.1-6.fc12.x86_64.rpm

The second package includes header files that are necessary only when assembling packages yourself - in everyday life you can do without them:

Rpm-devel-4.7.1-6.fc12.x86_64.rpm

Having dealt with the nomenclature of rpm packages, we can move on to the question of their internal structure - that is, to the format itself.

Arrangement of binary rpm packages

The rpm binary package includes two components. On the one hand, it is a set of compiled files, such as executable binaries and libraries, accompanied by the necessary configs, documentation, etc., ready for incorporation into the system file hierarchy.

On the other hand, the package contains metainformation - a description compiled according to certain rules. It includes the package name, version and build number, information about the developer and his master site, a list of files, their position in the file hierarchy, and a list of dependencies. If necessary, installation and configuration scripts may be present here. All this together allows you to control the integrity of the package, track dependencies, ensure the installation procedure itself is completed, and also remove packages “cleanly”.

The components of the rpm package are packaged into a cpio archive - one of the oldest compressed archiving tools in UNIX. Previously, up to and including Fedora version 11, this was done using the gzip utility. Starting from version 12 of Fedora, rpm packages are compressed using the LZMA algorithm, which provides a much higher degree of compression - albeit at the cost of the time spent on it. Which, however, will not cause any inconvenience for the user - because lzma files are unpacked, paradoxically, at almost the same speed as gzip. But downloading them, of course, happens much faster, which cannot but please the owners of “thick” and cheap channels: under these conditions, installing packages over the Internet is faster than from local media.

Let’s return, however, to what’s inside the rpm package. To do this, first unpack the package using any standard tool (rpm2cpio, for example, or using the rpm2tgz utility) and see what happens:

$ ls rpm-4.7.1-6/ bin/ etc/ usr/ var/

That is, we see those components of the package that will be incorporated into the file hierarchy of the target system.

The easiest way to introduce the second component is with Midnight Commander. By key F3(the rpm package is still considered as an example) it will display all the metainformation in summary form. First, this will be a formal description of the package:

Name: rpm Relocations: (not relocatable) Version: 4.8.1 Vendor: Fedora Project Release: 5.fc14 Build Date: Tue 10 Aug 2010 11:43:21 Install Date: (not installed) Build Host: x86-12.phx2 .fedoraproject.org Group: System Environment/Base Source RPM: rpm-4.8.1-5.fc14.src.rpm Size: 2035701 License: GPLv2+ Signature: RSA/SHA256, Wed 11 Aug 2010 05:58:10, Key ID 421caddb97a1071f Packager: Fedora Project URL: http://www.rpm.org/ Summary: The RPM package management system Description: The RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating software packages. Each software package consists of an archive of files along with information about the package like its version, a description, etc.

The meaning of all fields is intuitive. I just ask you to pay attention to the Group field: we will have to remember about the group membership of the package when it comes to managing packages using the yum system.

The installation script will then follow:

Posttrans scriptlet (using /bin/sh): # XXX this is klunky and ugly, rpm itself should handle this dbstat=/usr/lib/rpm/rpmdb_stat if [ -x "$dbstat" ]; then if "$dbstat" -e -h /var/lib/rpm 2>&1 | grep -q "doesn"t match environment version | Invalid argument"; then rm -f /var/lib/rpm/__db.* fi fi exit 0

Rwxr-xr-x 1 root root 20392 Aug 10 11:42 /bin/rpm drwxr-xr-x 2 root root 0 Aug 10 11:42 /etc/rpm -rwxr-xr-x 1 root root 7424 Aug 10 11: 42 /usr/bin/rpm2cpio ...

Then the library files:

Rw-r--r-- 1 root root 40537 Aug 10 11:42 /usr/lib/rpm/macros drwxr-xr-x 2 root root 0 Aug 10 11:42 /usr/lib/rpm/platform drwxr-xr -x 2 root root 0 Aug 10 11:42 /usr/lib/rpm/platform/amd64-linux ...

Rw-r--r-- 1 root root 44206 Dec 7 2009 /usr/share/doc/rpm-4.8.1/COPYING -rw-r--r-- 1 root root 639 Dec 7 2009 /usr/share/ doc/rpm-4.8.1/CREDITS -rw-r--r-- 1 root root 496233 Jun 11 2010 /usr/share/doc/rpm-4.8.1/ChangeLog.bz2 -rw-r--r-- 1 root root 656 Dec 7 2009 /usr/share/doc/rpm-4.8.1/GROUPS ...

And finally, variable files:

Drwxr-xr-x 2 root root 0 Aug 10 11:42 /var/lib/rpm -rw-r--r-- 1 root root 0 Aug 10 11:42 /var/lib/rpm/Basenames -rw-r --r-- 1 root root 0 Aug 10 11:42 /var/lib/rpm/Conflictname -rw-r--r-- 1 root root 0 Aug 10 11:42 /var/lib/rpm/Dirnames .. .

All this information can be viewed in parts - by fixing the cursor on the file in Midnight Commander

Rpm-4.7.1-6.fc12.x86_64.rpm

and pressing Enter.
Now we will see a list of “metainformation” files included in the package:

/.. │-on-up-│ December 16 12:04 /Info │ 0 │ SC 21 00: 00 00 00 │CPIO │ 0 │S 21 00:00 Header │ 1185 │S 21 00:00 *Install │ 39 P. 21 00:00 *UPGRADE │ 39│Sep 21 00:00

The contents of the files are easy to guess. So, CONTENTS.cpio is a complete list of all files and paths to them:

Rwxr-xr-x 1 root root 20808 Sep 21 17:30 ./bin/rpm drwxr-xr-x 2 root root 0 Sep 21 17:30 ./etc/rpm ...

and so on. The HEADER file contains the same description that we just saw through F3, *INSTALL and *UPGRADE - executable scripts for the corresponding purpose. And in the /INFO directory there are many small files, from which summary metainformation is ultimately collected. Of these, I will only focus on REQUIRENAME - this is the notorious list of dependencies, which for the rpm package looks something like this:

/bin/bash /bin/sh /bin/sh config(rpm) = 4.8.1-5.fc14 coreutils curl db4-utils libacl.so.1())(64bit) ...

In fact, the rpm package does not contain any file hierarchy within itself. And the fact that it appears to us as such is entirely the merit of Midnight Commander, who restores it to the form in which it was before assembly.

RPM Database

The rpm package database is a component necessary for the functioning of the system: it provides the ability to obtain information about packages, update and delete them. It is created during system installation in the /var/lib/rpm directory and changes with each operation with packages.

The database of rpm packages uses Berkeley DB, an ancient (bottling year 1986), simple (non-relational) DBMS, but fast, efficient and therefore widely used to this day.

The RPM database files are binary, and even the magic of the “night commander” will not allow you to discern anything understandable in them. So all that remains is to take the word of the authors of the documentation that

  • the Packages file is the main one and stores indexed package header fields,
  • files Basenames, Group, Requireversion and others are used to optimize queries to the database, and
  • files __db.001, __db.002 and so on - contain information about which files were changed and created when installing and uninstalling packages.

The database of rpm packages is necessary for the normal functioning of this system - its damage entails unpleasant consequences, and therefore there are ways to restore its integrity in emergency situations, which we will consider over time.

rpm utility

Having familiarized ourselves in general terms with the structure of rpm packages, let's see what can be done with them. Let's start with the utility of the same name, designed to work with single packages. In ancient times, it was a blessing and a curse for novice users of the Red Hat distribution, its clones and derivatives.

Introduction

As already mentioned, the rpm utility has become a blessing for users of the Red Hat distribution and all its successors. Because it freed them from the need for independent compilation: almost all developers who did not disdain distributing their packages in binary form assembled them in rpm format, and services like http://rpmfind.net made it easy to find them on the Internet. I remember in those years the following life maxim was in circulation:

with the help of rpm and the Internet, any distributions can be made into twin brothers overnight

However, it also turned out to be the curse of users, primarily beginners: while tracking package dependencies during installation and removal, the rpm utility did not resolve them at all, but only reported about detected sedition, and in a form that was quite incomprehensible for a beginner.

Those days have sunk into oblivion: the age of package repositories and tools for working with them has arrived, such as apt-rpm, urpmi and, finally, yum - the main character of the next series of notes. Which take care of the routine manipulation of packages. However, the rpm utility is still the most simple means for operations with single packages, especially those not included in official repositories. And in some cases - for example, when connecting third-party repositories - it can be almost irreplaceable.

So let’s spend some time getting acquainted with its basic, most popular in Everyday life, functions. This is just a short summary for practical application. Moreover, it is aimed at those who have not previously dealt with rpm-based systems. Those who will shout from the audience - give me the details, I will send them in advance to Aunt Manya, she will tell you everything.

general characteristics

The rpm utility, like dpkg in Deb-based distributions, is just one of the representatives of a whole family, developed, along with the format of the same name, as part of an independent project.

Among the additional utilities, it is worth mentioning rpm-build - a tool for creating your own packages, and rpm2html - a utility for extracting metainformation from packages and presenting it in human form (a complete list of the entire family can be found). However, at the beginning of this series of pages we will only talk about rpm itself.

There are five main modes of using the rpm utility:

  • query mode (query);
  • verification mode (verify);
  • installation mode (install);
  • update mode (upgrage);
  • erase mode.

There is also a package build mode, but we won’t talk about that for now.

Each mode corresponds to one of the basic options of the rpm command. They may be accompanied by additional options, either specific or common to all modes. The first will be considered when describing the modes. Among the latter, the following are most in demand:

  • -? , --help display detailed help about using the rpm command (short help is printed in response to the command without any options or arguments);
  • --version print the version number of the rpm package;
  • --quiet display a minimum of messages during command execution (usually only error messages);
  • -v display detailed messages about the progress of the command.

There are also several "out-of-mode" options used, in particular, to restore the package database.

The argument to the rpm command is usually the name of the package file; often there can be several such arguments (in the limit - as many as you like). In some cases, specifying the short name of the package is enough - for example, for our permanent example, just rpm . In other situations, the full name is required, indicating the version number, build, distribution, architecture - for example, rpm-4.8.1-5.fc14.x86_64.rpm. And if the package file is not in the current directory, then you will need to preface it with the full path to it, say /var/cache/akmods/ .

Request mode...

... serves to obtain information about the package, in particular, its status (whether it is installed on the system). The main query option is -q (or --query), in response to it the full package name will be displayed:

Rpm -q rpm rpm-4.8.1-5.fc14.x86_64

Please note that the short package name is sufficient as an argument with the request option, and the command itself can be given on behalf of regular user.

Additional options depend on the purpose of the request. Thus, the presence of a package in the system is checked with the following command:

$ rpm -qa pkgname

where the additional option -a (or --all) specifies a request to all packages available in the database. If the package is installed, the response to this command will be

$ rpm -qa opera opera-10.00-4440.gcc4.shared.qt3.x86_64

If not, the invitation will be returned command line.

A formal description of the package can be obtained with the command

$ rpm -qi rpm

the answer to which would be:

Name: rpm Relocations: (not relocatable) Version: 4.8.1 Vendor: Fedora Project Release: 5.fc14 Build Date: Tue 10 Aug 2010 11:43:21 Install Date: Sun 31 Oct 2010 10:28:06 Build Host: x86-12.phx2.fedoraproject.org Group: System Environment/Base Source RPM: rpm-4.8.1-5.fc14.src.rpm Size: 2035701 License: GPLv2+ Signature: RSA/SHA256, Wed 11 Aug 2010 05:58 :10, Key ID 421caddb97a1071f Packager: Fedora Project URL: http://www.rpm.org/ Summary: The RPM package management system Description: The RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing , uninstalling, verifying, querying, and updating software packages. Each software package consists of an archive of files along with information about the package like its version, a description, etc.

It's easy to see that this is the same header part (HEADER) that we previously viewed through Midnight Commander.

The additional option l will allow us to extract the contents of CONTENTS.cpio:

$ rpm -ql rpm /bin/rpm /etc/rpm /usr/bin/rpm2cpio /usr/bin/rpmdb /usr/bin/rpmquery /usr/bin/rpmsign /usr/bin/rpmverify ...

The above discussion concerned obtaining information about the installed package. However, it is much more interesting to obtain information about a package that is not installed - to determine whether it is needed or not in our business. And this is possible - by adding to -qi additional option p and specifying the full package name and path to it. And since the uninstalled package most likely lies on some network source, the path will be a URL, for example:

$ rpm -qip http://mirror.yandex.ru/fedora/linux/releases/14/Fedora/x86_64/os/Packages/joe-3.7-5.fc13.x86_64.rpm

Which will output exactly the same information as when querying the local package:

Name: joe Relocations: (not relocatable) Version: 3.7 Vendor: Fedora Project Release: 5.fc13 Build Date: Wed 10 Feb 2010 09:57:06 Install Date: (not installed) Build Host: x86-03.phx2.fedoraproject .org Group: Applications/Editors Source RPM: joe-3.7-5.fc13.src.rpm Size: 1177186 License: GPLv2+ Signature: RSA/SHA256, Wed 28 Jul 2010 21:59:42, Key ID 421caddb97a1071f Packager: Fedora Project URL: http://sourceforge.net/projects/joe-editor/ Summary: An easy to use, modeless text editor Description: Joe is a powerful, easy to use, modeless text editor. It uses the same WordStar keybindings used in Borland's development environment.

An additional option f allows you to determine the name of the package that owns a certain file:

$ rpm -qf /usr/lib/rpm/rpm2cpio.sh rpm-4.8.1-5.fc14.x86_64

In query mode, many more options are possible, which, if necessary, can be found in the man page of the rpm package.

Check mode...

...provides verification of the integrity of the installed package. This is done by comparing its files with their counterparts from the original package according to parameters such as type, size, checksum (MD5), ownership and access attributes. The main option for this mode is -V ; without additional options, specifying the package name, it checks the correct location of its files in the file hierarchy.

In case of successful completion of the test, that is, complete coincidence of the established and original files, no messages are displayed - only the command line prompt is returned. If there are discrepancies between them in any parameter, then it will be displayed in symbolic form. Mismatches are indicated as follows:

  • 5 - MD5 checksum
  • S - size
  • L - symbolic link
  • T - file modification date
  • D - device
  • U - user
  • G - group
  • M - mode (including permissions and file type)
  • ? - file could not be read

Matching parameters are indicated by a single dot. Alas, I can’t give examples - no matter what package I poke into to check, everything turns out to be okay. But I don’t want to spoil it on purpose.

And besides, the output of any message does not always mean that something is wrong with the installed package. For example, if we try to verify our model package rpm with the command

$ rpm -V rpm

we will see the following in the output:

Prelink: /bin/rpm: at least one of file"s dependencies has changed since prelinking S.?...... /bin/rpm prelink: /usr/bin/rpm2cpio: at least one of file"s dependencies has changed since prelinking S.?...... /usr/bin/rpm2cpio

This simply means that the executable files of the rpm package, after its installation, underwent a preliminary linking procedure (prelink - I will tell you what this is in due course). As a result, of course, they lost their identity with their namesakes from the original package.

Additional scan mode options allow you to verify a specific file:

$ rpm -Vf /usr/bin/rpm2cpio

compare the installed package with its original rpm package:

$ rpm -Vp path2/full_packagename

and also perform a full scan of all installed packages:

# rpm -Va

Since the output of the last command will be very long, it makes sense to use it in a rootweigher with a command like less or most . You can also use the grep command to identify only packages; containing discrepancies with the original according to one of the criteria listed above. For example, the command structure

# rpm -Va | grep S

will produce a list of packets that differ in size from the originals, and the pipeline

# rpm -Va | grep 5

will identify differences in checksums.

I would like to draw your attention to the change in the appearance of the command line prompt when using additional option a: if the previous verification commands are usually run on behalf of a regular user, then it is better to perform full verification of all packages with administrator rights, since only he has the right to access some files and directories of the system.

In addition to those listed, there are also numerous verification options. digital signature and public keys - as usual, they can be found on the man (8) rpm page.

Installation and update modes...

... are closely related. Their main options are:

  • -i (from install - not to be confused with the additional query mode option) installs a package that is not on the system;
  • -F update the installed package to a more recent version;
  • -U is a generalized installation and update option: when used, the installed package will be updated, and the uninstalled package will be installed.

It is important that the scope of the -i and -F options is strictly delimited: a command specifying the first will refuse to be executed if there is old version package of the same name. And vice versa - the command with the second option will give an error message if the previous version is not installed on the system. Therefore, the generic option -U is used most often. Obviously, administrator privileges are required to successfully execute commands from any of these options.

The arguments to the installation and update commands must be the full names of the package files, indicating the local path to them or the network address. Arguments, that is, packages to install or update, in general case you can set as many as you like. And in some cases, specifying two arguments in a command is necessary.

I said earlier that the rpm utility not only installs packages, but also checks their dependencies. Although, unfortunately, it does not resolve them, but only reports violations. For example, an attempt to install kdebase directly

Rpm -ihv http://mirror.yandex.ru/fedora/linux/releases/14/Fedora/x86_64/os/Packages/kdebase-4.5.2-2.fc14.x86_64.rpm

will produce a long list of unsatisfied dependencies:

Retrieving http://mirror.yandex.ru/fedora/linux/releases/14/Fedora/x86_64/os/Packages/kdebase-4.5.2-2.fc14.x86_64.rpm error: Failed dependencies: kdebase-libs(x86 -64) = 6:4.5.2-2.fc14 is needed by kdebase-6:4.5.2-2.fc14.x86_64

This, as they say, is an everyday matter, and how to resolve such a situation is clear. Because installing such large packages with such complex dependencies directly through rpm is a thankless task; other tools have been invented for that. For example, yum, which we will get to in due course.

There are situations that are more different: a seemingly simple package, when trying to install, requires another one as a dependency. And that, in turn, refuses to be installed, as it refers to the absence of the first one. So, just now, having started upgrading one of my experimental systems to the “rawhide” version, I was faced with the fact that the fedora-release-rawhide-15-0.3.noarch.rpm package did not want to be installed without fedora-release -15-0.3.noarch.rpm - and vice versa.

It is in such cases that you need to specify all interdependent packages as arguments to one command:

# rpm -ivh http://URL/path2/(fedora-release-15-0.3.noarch.rpm, fedora-release-rawhide-15-0.3.noarch.rpm)

Moreover, which is typical, the order of names does not play any role - if all interdependent packages are specified, then they will all be installed successfully.

IN last team suddenly and without warning, two options popped up - v and h. However, the first one has already been mentioned before - this additional all-mode option instructs to display detailed messages about the progress of any tasks. And the -h (or --hash) option provides a convenient form of presenting this output.

In addition to the basic installation and update options, there are many more additional options, but behind them, as always, is Aunt Mana.

Delete mode...

... often turns out to be no less popular than installation and update modes. However, this task is not difficult, and in general it is done like this:

# rpm -e pkgname

The base package name is sufficient here, but obviously superuser rights are required.

If dependencies are broken during deletion, an error message appears:

Error: Failed dependencies:

Of course, it can be ignored using the additional --nodeps option. Or, if you are fully confident that you are right, put in the deletion command line the names of the package files that have dependencies associated with the one being deleted.

However, all this is fraught with consequences - so in ambiguous cases it is better not to use the rpm command to delete files. However, as already mentioned, yum exists so that the user does not tremble.

Repositories

The rpm utility is intended primarily for installing individual packages from any source - local or network (for example, from developer sites), but mainly the former. The yum package management system is focused on access to package repositories, mainly network ones. Although using it with local repositories is also not prohibited.

What is a repository

First of all, let's try to answer the question of what a repository is. Because its presence today is one of the main dystro-defining signs.

Translated into Russian the word repository means storage— and this is what language purists (aka those who prefer to call themselves grammar nazi). However, as usually happens in life, the people have adopted a different name for them - repo or, in our language, in Brazilian Cyrillic, turnips. Why in the plural will become clear from the subsequent story. Well, as a synonym I prefer the term crap.

The repository itself can indeed, to a first approximation, be defined as a storage place for packages specially collected for a given distribution, to which free access is possible (we are only talking about free systems).

However, the availability of the server storing the packages is not enough to be called a repository. Packages in the repository must be structured according to certain principles inherent to a given distribution. Their storage system must ensure their replenishment, updating, and most importantly, maintaining the integrity and consistency of packages in relation to dependencies, and for all currently supported versions of the distribution.

In other words, packages in the repository must be accompanied by databases - the same ones that are used by the package management system of a given distribution, as well as by its package building system.

In addition, it is highly desirable that the repository be mirrored on several independent servers - for obvious reasons. True, this is not an indispensable requirement. However, the presence of mirrors is one of the reasons for using the word repository in the plural.

Now let's see how all these general considerations look in practice - in relation to Fedora repositories.

Physical structure of repositories

Physically, Fedora repositories are a set of nested subdirectories on ftp or http servers, and they sometimes have a rather complex and not entirely transparent structure. Knowledge of it is not necessary for the user - but in a number of emergency situations it will not be superfluous. And since this structure is not described anywhere, at least in Russian, we will give it a little attention.

However, impatient readers can immediately move on to the next section - about the logical structure of repositories. And to the present it will be formed only when the need arises.

Main repository structure

The main, so to speak, repository of packages, as you might guess, is located at the address and further in depth. However, in practice the user almost never gets there: as we will see in the section on package management, this system automatically sends it...

no, not where you thought to the extent of your depravity, but to the fastest mirror. Moreover, it is precisely the fastest physically and precisely in this moment- because this is checked not by zonal affiliation and other formal criteria, but by response to a genuine request. If, of course, the appropriate plugin for yum is installed - but we will talk about this a little later.

So, by typing something like http://download.fedoraproejct.org into the browser line, our Soviet user will end up on a server with a URL like http://mirror.name_rek.ru/fedora/linux/ (and it’s possible that even and not ru at all). I will not pronounce the name of this very name - the river - a complete list of possible options can be seen here http://mirrors.fedoraproject.org/publiclist. And to give preference to one of them means, as Shurik would say, to show injustice to the other name of the river.

Naturally, the structure of all rivers name is identical, so it can be considered using the example of any mirror.

So, once we are at river_name/fedora/linux/, we see the following directories:

As you might guess, the development directory contains packages that are in a state of development (the /development/rawhide/ subdirectory is important here, which we will return to in due course), while the updates directory contains recently updated packages. But the releases catalog is exactly what interests us at the moment.

12 13 14

and a test subdirectory. Sometimes it is empty, the contents in it appear when the alpha version of the next release is split off from the development branch (the same rawhide).

Let's continue climbing the hierarchical tree. In its release branch we see the following subdirectories:

Everything Fedora Live

The first one includes packages different versions and assemblies produced during the life of the release. The former, as the name suggests, contains current package build updates, while the latter contains LiveCD images for both supported architectures (i686 and x86_64). Both will be discussed in a timely manner. But we will continue to climb through the Fedora directory - especially since it can be considered as an example of the structure of any directory on the project servers.

So, in the fedora/linux/releases/14/Fedora/ directory you can see the following subdirectories:

I386 source x86_64

The second of them includes source rpm packages (the so-called *.src.rpm), which will also be discussed separately. The first and third contain assemblies for 32- and 64-bit architectures, respectively. Obviously, inside they are absolutely the same, so let’s look at their internals using the example of the now more relevant x86_64 architecture.

Iso jigdo os

The first contains images of installation disks - a DVD, a set of CDs and a disk for network installation(netinst), which will be discussed in the section on system installation. The second contains metadata files for jigdo (Jigsaw Download), a large file distribution system (in in this case- images of the same installation disks) and serves the same purpose as the previous one. Well, in the third, in the Packages subdirectory, the required packages are actually located.

In addition, in the fedora/linux/releases/14/Fedora/x86_64/os/ directory you can see service files, such as GPG keys for authentication, repository description files (in the repodata and repoview subdirectories), files for building your own images boot disks (in the images and isolinux subdirectories), which are not of interest to us at the moment.

As for the contents of the Packages directory, it is represented by rpm packages - those that are directly supported within the Fedora project.

RPMFusion Repository Structure

The main repository, however, does not exhaust the list of packages available for our distribution. There is also a repository for additional packages maintained by volunteers as part of a self-hosted project, RPMFusion.

The actual repository of additional packages is located. In it we see two directories - free and nonfree. The first one is for sure free software(in the main Fedora repository, by the way, only these are available), the second is for programs whose distribution is subject to some restrictions. Which ones exactly? We will return to this question later.

The internal structure of both directories is the same. They contain subdirectories el and fedora. The first includes packages backported from RHEL and is not of interest to us now. The second one includes subdirectories:

Development/ releases/ updates/

as well as repository description files.

The purpose of the directories is more or less clear from their names (we will return to this issue later), so we will focus only on the releases directory. It contains subdirectories for half a dozen of the latest releases, including some that are much more “deep” than those supported in the main repository. In each of them we will see a single Everything subdirectory. And it contains the already familiar “architectural” subdirectories:

Debug/os/

The first, as you might guess, contains debugging information that is not interesting to us now. But in the second - the actual packages. Including the main repository description package - rpmfusion-free-release . The same one, the installation of which clearly leads to the connection of this “turnip”. And in the corresponding subdirectory of the nonfree directory, a similar package will be named accordingly - rpmfusion-nonfree-release .

RFRemix repository structure

For users of the original Fedora, the listed repositories in their pure form are sufficient. However, for our Russian-speaking fellow citizens, if not mandatory, then more than desirable, familiarity with the russianfedora repository is.

It is located in the directory of the same name at the following address (as far as I know, the only one so far). And its structure is as follows: at the first level of nesting there are subdirectories

  • build/ with repository description files,
  • releases/ with images of installation disks and LiveCD, and
  • russianfedora/, containing the actual packages.

At the moment we are only interested in the last subdirectory. It includes three subdirectories:

  • fixes/ , which represents a kind of delta between the basic and additional packages of the original Fedora, on the one hand, and RFRemix, on the other;
  • free/ , intended for completely free packages of the Russian Fedora project;
  • nonfree/ , intended for packages of the Russian Fedora project, the distribution of which is limited by the laws of some countries (but not ours).

The composition of all three categories will be discussed in more detail in the next section - for now we are only interested in the physical structure of the corresponding directories.

It is identical: each of them includes subdirectories el/ and fedora/ for the same purposes as in RPM Fusion. In the fedora/ subdirectory, in turn, there are subdirectories development/, releases/ and updates/, and in the releases/ subdirectory there are directories for the numbers of major (major) releases, currently from 10 to 15.

In each release directory, we see a single Everything/ subdirectory, which includes subdirectories for both supported architectures - i386/ and x86_64/, and a source/ subdirectory for source packages. And finally, on the floor below there are the debug/ and os/ subdirectories of clear (that is, the same as in RPM Fusion) purpose.

Additional repositories

The repositories described above will be enough for most users for almost all occasions. However, in a number of cases, there is a need for additional packages that are not included in the official “turnips” for one reason or another - perhaps not yet included. A typical example today is the Chromium browser: it cannot be found either in RPM Fusion or in Russian Fedora.

And here the Fedora People repository will come to the rescue first of all - it is intended specifically for packages collected by independent maintainers. In terms of content, it does not overlap with the official and “semi-official” repositories, however, as far as I know, its packages are tested for compatibility with them, and therefore can be used without fear.

The structure of the Fedora People repository is extremely simple: at the specified address you will see many directories whose names repeat the names of the packages they contain. Within any of them there will be a series of subdirectories for the supported range of releases - different in different cases. And the subdirectory of each release contains three standard subdirectories - i386/, SRPMS/ and x86_64/, containing the repository description file and the actual package files.

In some cases, the ATrpms repository may be of interest. It contains numerous multimedia content packages, specialized kernel assemblies, and abundant drivers for Nvidia video cards (including for older models that can no longer be found on the company’s official website). WITH full list packages can be found, and you can see the list of supported releases.

In articles and reviews dedicated to Fedora, you can find references to many other additional repositories for this distribution - a list of them can be seen, for example, in links from the same ATrpms. However, almost all of them have lost relevance. Some (Livna, Freshrpms, Dribble) are now united as part of RPM Fusion. Others contain packages for very old versions of Fedora. Well, the Tigro repository became the basis for Russian Fedora - although it will be useful on its own for lazy owners of older versions of Fedora.

Logical organization of repositories

The physical structure of the Fedora repositories, especially the head one, seems quite confusing. Fortunately, the user, as already mentioned, practically does not have to deal with it. In 99 cases out of 100, it is enough for him to navigate their logical organization, which we will now consider.

Classification of programs

To begin with, we should say why the word repositories was previously used in the plural. And to do this, you need to consider the classification of packages adopted in this distribution. It is extremely simple and includes only two categories.

The second category is called nonfree - the name is not very good, since it evokes associations with all kinds of wares, counterfeits, or the need for any payments when using them. In fact, this is completely wrong. The nonfree category includes exclusively free ones (in the sense free beer) and legally distributed programs. However, certain restrictions are imposed on their distribution. And therefore, from the point of view of the FSF, they cannot be called truly free (in the sense free word).

On the one hand, the nonfree category includes programs distributed only in binary form - without any restrictions, but also without source code. Examples of such programs are proprietary device drivers, such as video cards and network devices, or Flash movie player from Adobe, Opera browser, some fonts and games.

On the other hand, the concept of nonfree includes programs that are available in source code and, it would seem, completely free. However, their distribution in some states is limited for legal reasons. A typical example of this are algorithm-based multimedia codecs that have been patented in one country that recognizes algorithm patents. In most other countries that have not thought of this, their distribution is absolutely legal.

So, the categories free and nonfree are logically independent repositories - and this is the first reason why this term usually appears in the plural. We will learn about other reasons on the next page.

Main repositories

First, let's look at the main repositories that are automatically connected when installing RFRemix.

The main officially maintained Fedora project repository contains only free packages. And therefore it is called simply and unpretentiously - fedora, with a decoding in the form of a version number and target architecture, for example: Fedora 15 - x86_64.

But RPMFusion includes both completely free and “non-free” packages. Therefore, it separates two repositories - rpmfusion-free and rpmfusion-nonfree.

The internal structure of Russian Fedora is even “richer” - it has three repositories:

  • russianfedora-fixes are packages that are available in the fedora or rpmfusion repositories, but presented in versions that are either newer or adapted to our conditions and Cyrillic environment; packages in this repository are not divided into free and non-free;
  • russianfedora-free - completely free packages that are not available in the fedora or rpmfusion repositories;
  • russianfedora-nonfree - “not quite free”, in the sense indicated on the last page, packages that are also absent from the repositories of the original Fedora.

This is the main repository branch for each release. It is accompanied by several additional ones, which are filled with packages that are updated between releases:

  • updates - for Fedora itself;
  • rpmfusion-free-updates - for Rpmfusion-free;
  • rpmfusion-nonfree-updates - for rpmfusion-nonfree;
  • russianfedora-fixes-updates - for Russian Fedora Fixes;
  • russianfedora-free-updates - for Russian Fedora Free;
  • russianfedora-nonfree-updates - for Russian Fedora Nonfree.

In addition, each of the main repositories corresponds to special branches of packages being debugged and tested: fedora-debuginfo and fedora-updates-testing, respectively - for the main repository and formed in the same way - for all the others.

And finally, there is the rawhide repository branch. It contains packages for the next version of the distribution currently being developed and, of course, includes the same repositories as in the stable release branches: fedora-rawhide, rpmfusion-free-rawhide, rpmfusion-nonfree-rawhide and so on.

The above applies to the repositories of binary packages for the i386 and x86_64 architectures. However, there are also source code repositories - fedora-source, rpmfusion-free-source and so on.

As well as other systems, you have to install additional programs. In operating rooms Windows systems everything is very simple, as a rule, there is an installer setup.exe that helps install the software. But in Linux things are a little different. How to install programs on Linux? Now let's look at this question.

Linux has several types of installation packages and each distribution has its own package format. Fedora, Mandriva, Red Hat and Suse distributions use the standard Linux RPM installation developed by Red Hat. The RPM package file is typically named program_name-version.rpm.

Another very popular format is DEB. Used in Debian, Ubuntu, Knoppix and Mepis. Has a name program_name-version.deb.

And we approached the archives. Usually these are .tar , .tar.gz , .tgz extensions. They should be unpacked and then installed/compiled.

You need to perform the program installation procedure as a superuser.

Quick navigation

Installing programs on Debian, Ubuntu

There are many tools for working with DEB packages, but the most commonly used is apt-get, which is included in the standard set of tools. To install the application, enter the command:

apt-get install package_name

For removing:

apt-get remove package_name

APT stores a local database of all packages available for installation and links to where to get them. This database needs to be updated from time to time with the command:

apt-get update

To update outdated packages (programs) on the computer, type the following commands:

apt-get update ; apt-get upgrade

Installing programs on Fedora, Red Hat

A utility similar to APT is yum. To download and install the package from the configured repository, write the command:

yum install package_name

yum remove package_name

The local yum database is not saved, so there is no need to update. To install updates, use the command:

yum update

Select something specific to update:

yum update package_name

Installing programs in Mandriva

Mandriva has its own set of tools for working with packages, called urpmi. For installation:

urpmi package_name

To delete:

urpme package_name

Update the local database with the list of packages:

urpmi. update -a

To install updates:

urpmi --auto-select

Installing programs from archives (tarballs)

For archives compressed using GZIP (gz, gz2, etc.) we do this:

tar -xvz f filename

For archives compressed using BZIP (bz, bz2, etc.) it’s a little different:

tar -xvjf filename

Tar commands:

  • x – extract files from the archive;
  • v – detailed display of information on the screen;
  • f – Required option. If not specified, Tar will try to use tape instead of file;
  • z – process archive compressed using gzip;
  • j – process an archive compressed using bzip.

After executing the command, a folder will be created with a name similar to the name of the package. Then you need to open this created folder with the command:

cd folder_name

Next, in the unpacked archive, read the instructions in the README file, if any. In any case, if the program is compiled as an executable file, then the package will contain a .sh file, usually called install.sh