Управление пакетами и хранилища программного обеспечения
В дистрибутивах 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
что означает сокращенное и кодовое имя .
В вашем вопросе, часть $(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)
его интерпретированным значением.