package-management.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 03 Jan 2021 23:37:00 +0200
changeset 2492 bd3d45148652
parent 2228 837f1337c59b
permissions -rw-r--r--
Fixed example.

.. -*- coding: utf-8; -*-

====================
 Package management
====================
.. contents::
   :local:

Local install without root permission
=====================================

Лучшим решением, если у Вас нету прав root, будет установить ее в домашнем
каталоге. Тут дело личных предпочтений. У меня это ~/usr.

Если программа в бинарном виде - просто распаковываем::

  $ cd /your/temp/dir
  $ gzip -d -c prog.tar.gz | tar xf -
  $ mv prog/* ~/usr

Если программу придестя собирать из исходников, почти всегда можно указать ключ
``--prefix``::

  $ configure --prefix=$HOME/usr
  $ make
  $ make install

Обычно run-инсталляторы разархивируют содержимое в ``$PWD/$pkg``. В любом
случае::

  $ ./nvidia-driver-1.2.9.run --help

Show all installed packages
===========================

RPM based package manager::

  $ rpm -qa

DEB based package manager::

  $ dpkg -l

Find packages a file belong to
==============================

Find what package hold file among installed packages::

  $ rpm -qf /usr/bin/free
  $ zypper search -f stdlib.h

Find what package hold file among all packages from enabled repositories::

  $ yum whatprovides '*/stdlib.h'

  $ sudo yum install yum-utils           # old alternative
  $ repoquery --whatprovides '*bin/grep'

For ``pacman`` package system from ``pkgtools`` package::

  $ pkgfile -si stdlib.h

Show package content
====================

CentOS from repository::

  $ repoquery -l bash
  $ repoquery --list bash

Debian from reposiroty::

  $ sudo apt-file update
  $ apt-file list bash