Управление пакетами и хранилища программного обеспечения
В дистрибутивах Linux на основе Debian используются репозитории (базы данных пакетов установки приложений и пакетов обновлений) для обновления операционных систем, а также для простого извлечения и установки новых пакетов программного обеспечения. Расположение этих репозиториев хранится в /etc/apt/sources.list
, однако дополнительные источники, обычно уникальные для конкретных приложений, могут храниться в каталоге /etc/apt/sources.list.d
.
Когда выполняется команда обновления индекса индекса apt-get update
, ваша операционная система проверяет эти хранилища пакетов на наличие доступных пакетов и регистрирует доступные программные продукты как доступные для вашей операционной системы, которые вы можете продолжить устанавливать с помощью традиционной установки apt-get install <package>
команда.
Пример одного из этих источников программного обеспечения:
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted
Для этих источников важно ссылаться на конкретные версии дистрибутивов Linux. В качестве примера можно привести верное кодовое имя для Ubuntu 14.04. Вы можете запросить полную информацию в своей ОС (на основе debian) с помощью lsb_release -a
или lsb_release -sc
что означает short и кодовое имя.
В вашем вопросе, часть $(lsb_release -sc)
интерпретируются и результат от операционной системы выводятся в пользовательском источнике файлы РОС-latest.list котором команда будет создавать при исполнении.
Переводчик командного языка
Команда sh
- это оболочка Борна. Это одна из нескольких оболочек, но она считается старым стандартом, и, как правило, вы можете быть уверены, что она существует. Также часто можно увидеть bash
во многих сценариях оболочки. В этом объявлении указывается оболочка для использования, поскольку разные оболочки используют разный синтаксис.
Что касается флага -c
, цитируя man bash
:
Если присутствует опция -c, то команды читаются из строки. Если после строки есть аргументы, они присваиваются позиционным параметрам, начиная с $ 0.
Все в ''
читается как строка, вам не нужно разбираться в том, как избежать различных кавычек или беспокоиться о том, что оболочка интерпретирует что-то неправильно.
ТЛ; др
Команда печатает deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main
в пользовательский исходный файл, заменяя $(lsb_release -sc)
интерпретированным значением.