Краткий обзор MEGA: Как легче искать программы, когда нет доступа к интернет-браузеру с графическим интерфейсом, у меня нет телефона и т.д. Просто есть CLI в Linux.

Допустим, я использую CentOS 7 и ищу программу для установки. Я хочу установить команду "locate". Для этого я пишу yum search locate . Оболочка отвечает списком пакетов.

mlocate.x86_64 : An utility for finding files by name
perl-File-ShareDir.noarch : Locate per-dist and per-module shared files
which.x86_64 : Displays where a particular program in your path is located

В этом случае я интуитивно знаю, что mlocate.x86_64 - это, вероятно, то, что я ищу, поэтому я устанавливаю его с помощью yum install mlocate.x86_64 но у меня огромные проблемы, связанные с программами, которые при поиске выдаются мне как гигантский список пакетов. Например: я устанавливаю минимальную установку Centos 7. После этого я ищу среду dekstop xfce yum search xfce . Вывод огромен, и я не знаю, что это за пакеты. Я знаю, что xfce - это "окружение рабочего стола", поэтому я yum search xfce | grep dekstop . Это дает мне:

libxfce4util.i686 : Utility library for the Xfce4 desktop environment
libxfce4util.x86_64 : Utility library for the Xfce4 desktop environment
xfce4-power-manager.x86_64 : Power management for the Xfce desktop environment
exo.i686 : Application library for the Xfce desktop environment
exo.x86_64 : Application library for the Xfce desktop environment
xfdesktop.x86_64 : Desktop manager for the XFce Desktop Environment

Единственное, что близко подходит к тому, что я думаю, я хочу, это:

xfdesktop.x86_64 : Desktop manager for the XFce Desktop Environment

Однако я не уверен. Нигде не сказано "среда рабочего стола Xfce". Это просто говорит о том, что это менеджер рабочего стола для этой среды. Я не знаю, что это значит. Может быть, этот конкретный пример просто показывает, что я глуп, но у меня эта проблема со многими программами, которые я хочу установить.

Я ищу клиента SSH:

[root@box-codeanywhere /]# yum search ssh | grep client
gsi-openssh-clients.x86_64 : SSH client applications with GSI authentication
libguac-client-ssh.i686 : SSH support for guacd
libguac-client-ssh.x86_64 : SSH support for guacd
ne7ssh.i686 : SSH Library is a Secure Shell client software written in C++
ne7ssh.x86_64 : SSH Library is a Secure Shell client software written in C++
openssh-clients.x86_64 : An open source SSH client applications
perl-Net-OpenSSH.noarch : Perl SSH client package implemented on top of OpenSSH
perl-Net-SSH-Perl.noarch : SSH (Secure Shell) client
dropbear.x86_64 : SSH2 server and client
perl-Net-SFTP-Foreign.noarch : SSH File Transfer Protocol client
putty.x86_64 : SSH, Telnet and Rlogin client
                            : clients and server

Как узнать, какой пакет мне нужно установить ... У меня эта проблема встречается очень часто. Похоже, мне нужно знать точное имя строки пакета, ответственного за установку определенной программы. Мой вопрос: как проще искать программу, когда нет доступа к интернет-браузеру с GUI, у меня нет телефона и т.д. Просто есть CLI в Linux.

1 ответ1

1

Ваш инструмент для поиска программы - это apt-файл, который вы устанавливаете следующим образом:

# Install apt-file, which allows you to search
# for the package containing a file
sudo apt-get install apt-file

# Update the package/file mapping database
sudo apt-file update

Если вы знаете абсолютный путь к программе, вы можете искать его:

$ apt-file search /usr/bin/locate

Или вы можете найти программу, указанную в пути:

# Search for "locate" at the end of a path
apt-file search --regexp '/locate$'

В выходных данных только один пакет будет указывать исполняемый файл, расположенный в вашем стандартном PATH, что дает подсказку, что он может быть правильным.

Вы также можете узнать больше о пакете, чтобы убедиться, что он кажется правильным:

$ apt-cache show <package-name>

Это перечислит все программы, включенные в пакет и может служить проверкой.

Yum также принимает команду whatprovides (или provides) для поиска установленных или не установленных двоичных файлов:

yum whatprovides <path-to-file>

Команда поиска zypper может проверять списки файлов при использовании с параметром -f:

zypper se -f /usr/bin/locate

Pkgfile, доступный как pkgtools для систем на основе pacman, предоставляет функцию поиска, аналогичную приведенной выше:

pkgfile -si /usr/bin/mysqldump

Для получения дополнительной информации см .:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .