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