Linux sources как добавить

Команда source в Bash

source команда считывает и выполняет команды из файла, указанного в качестве аргумента в текущей среде оболочки. Полезно загружать функции, переменные и файлы конфигурации в сценарии оболочки.

source — это оболочка, встроенная в Bash и другие популярные оболочки, используемые в операционных системах Linux и UNIX. Его поведение может немного отличаться от оболочки к оболочке.

Синтаксис команды source

Синтаксис source команды следующий:

  • source и . (точка) — это та же команда.
  • Если FILENAME не является полным путем к файлу, команда будет искать файл в каталогах, указанных в $PATH среды $PATH . Если файл не найден в $PATH , команда будет искать файл в текущем каталоге.
  • Если заданы какие-либо ARGUMENTS , они станут позиционными параметрами для FILENAME .
  • Если FILENAME существует, source выхода source команды равен 0 , в противном случае, если файл не найден, он вернет 1 .

Примеры команды source

В этом разделе мы рассмотрим несколько основных примеров использования source команды.

Функции поиска

Если у вас есть сценарии оболочки, использующие те же функции, вы можете извлечь их в отдельный файл, а затем указать этот файл в своих сценариях.

В этом примере мы создадим файл, который включает функцию bash, которая проверяет, является ли пользователь, запускающий скрипт, корневым, и если нет, он показывает сообщение и завершает скрипт.

Теперь в каждом скрипте, который должен запускаться только пользователем root, просто укажите файл functions.sh и вызовите функцию:

Если вы запустите приведенный выше сценарий как пользователь без полномочий root, он напечатает «Этот сценарий должен быть запущен от имени пользователя root» и завершится.

Преимущество этого подхода заключается в том, что ваши сценарии будут меньше и более читабельны, вы можете повторно использовать один и тот же файл функции, когда это необходимо, а в случае, если вам нужно изменить функцию, вы отредактируете только один файл.

Файл конфигурации Bash

С помощью source команды вы также можете читать переменные из файла. Переменные должны быть установлены с использованием синтаксиса Bash, VARIABLE=VALUE .

Создадим тестовый файл конфигурации:

В вашем сценарии bash используйте команду source для чтения файла конфигурации:

Если вы запустите сценарий, результат будет выглядеть так:

Выводы

В этом руководстве вы узнали, как использовать встроенную команду source в сценариях оболочки.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Локальный репозиторий и sources.list

Помогите, пожалуйста, создать локальный репозиторий!

Терзаю дебиановый линукс на vm.

На сайте искала, но не помогло.

1) Начитавшись Интернет, нашла файл /etc/apt/sources.list

и дописала там строчку:

deb file:/home/itsme/debs stable main contrib non-free

Соответственно положила по указанному пути нужный пакет my.deb

Пишу волшебную строчку:

sudo apt-get update

Получаю в ответ в том числе печальные строки:

W: Не удалось получить file:/home/astraroot/debs/dists/stable/main/binary-amd64/Packages Файл не найден

W: Не удалось получить file:/home/astraroot/debs/dists/stable/contrib/binary-amd64/Packages Файл не найден

W: Не удалось получить file:/home/astraroot/debs/dists/stable/non-free/binary-amd64/Packages Файл не найден

Попыталась продублировать такой путь — все то же.

2) Если пишу в sources.list кроме установочного диска аналогично диск другого дистрибутива (где есть нужный пакет)

Читайте также:  Windows loader windows 9600

deb cdrom:[OS . — amd64 DVD ]/ name2 contrib main non-free

Получаю опять пакость:

W: Не удалось получить cdrom://OS . 1.3 name2 — amd64 DVD /dists/smolensk/contrib/binary-amd64/Packages Пожалуйста, используйте apt-cdrom, чтобы APT смог распознать данный CD. apt-get update не используется для добавления нового CD

W: Не удалось получить cdrom://OS . 1.3 name2 — amd64 DVD /dists/smolensk/main/binary-amd64/Packages Пожалуйста, используйте apt-cdrom, чтобы APT смог распознать данный CD. apt-get update не используется для добавления нового CD

W: Не удалось получить cdrom://OS . 1.3 name2 — amd64 DVD /dists/smolensk/non-free/binary-amd64/Packages Пожалуйста, используйте apt-cdrom, чтобы APT смог распознать данный CD. apt-get update не используется для добавления нового CD

3) Пробовала с помощью apt-cdrom (хотя мне и не с диска надо), но, видимо, «чужое» не пойдет:

gpgv: Не могу проверить подпись: неизвестная хэш-функция

Источник

ℹ️ Как настроить sources.list в Debian 10

Debian является одним из самых популярных дистрибутивов Linux всех времен, и теперь он получил новую версию Debian 10 Buster.

В Debian появилось много производных, наиболее популярным из которых является Ubuntu.

Дистрибутив Debian Linux широко используется из-за его основного управления пакетами – APT и формата пакетов .deb.

Каждое приложение, системная утилита или игра в Debian распространяется в виде пакета.

Вы можете установить эти пакеты в вашу систему, используя APT (автоматически или вручную).

В этом руководстве мы кратко рассмотрим новые возможности Debian 10, познакомимся с менеджером пакетов APT и узнаем, как настроить его файл sources.list на Debian 10 Buster.

Давайте посмотрим, каковы новые функции и самые важные изменения.

Новые возможности Debian 10 Buster

Наиболее важные функции нового Debian 10 Buster:

  • GNOME Desktop 3.30
  • Linux Kernel 4.19.0-5
  • OpenJDK 11.0
  • AppArmor Enabled by Default
  • Nodejs 10.15.2
  • NFtables заменяет iptables
  • Поддержка множества плат ARM 64 и ARMHF SBC
  • Mailman 3
  • Bash 5.0
  • Debian implementing /usr/merge
  • Secure-boot поддержка
  • Calameres Live-установщик образов Debian-Live

Что такое APT-менеджер и его sources.list

APT – менеджер пакетов, используемый в Debian и его производных.

APT расшифровывается как Advanced Package Tool и представляет собой набор инструментов для управления пакетами Debian и, следовательно, всеми приложениями, установленными в вашей системе Debian.

APT используется для установки, обновления или удаления приложений и пакетов.

APT способен разрешать проблемы с зависимостями и извлекать запрошенные пакеты из репозиториев пакетов.

Он делегирует фактическую установку и удаление пакетов dpkg – низкоуровневому инструменту Debian Package.

APT в основном используется инструментами командной строки, но есть и инструменты с графическим интерфейсом.

Файл /etc/apt/sources.list в Debian содержит список «источников», из которых можно получить пакеты.

Файл sources.list может отличаться в зависимости от различных факторов (с какой среды был установлен Debian, был ли он обновлен с предыдущего выпуска и т. д.)

Это список, который мы имеем в нашей системе:

Теперь мы обсудим содержимое этого файла и его различных разделов.

Содержимое и разделы файла Debian sources.list

Разделы файла sources.list следующие:

  • Тип архива
  • URL репозитория
  • распределение
  • Составная часть

Теперь мы подробно рассмотрим каждый из этих разделов.

Тип архива

Первая запись в каждой строке – deb или deb-src представляет тип архивов репозитория.

deb означает, что репозиторий в указанном URL-адресе содержит предварительно скомпилированные пакеты.

Это пакеты, установленные по умолчанию при использовании менеджеров пакетов, таких как apt-get, aptitude, synaptic и т. д.

deb-src указывает исходные пакеты с управляющим файлом Debian (.dsc) и diff.gz, содержащий изменения, необходимые для упаковки программы.

Читайте также:  Windows 10 pro или insider preview

URL репозитория

Следующий раздел в строке ввода – это URL-адрес хранилища, из которого будут загружаться пакеты.

Вы можете найти основной список репозиториев Debian из зеркал исходников Debian Worldwide.

Распределение

Дистрибутивом может быть либо кодовое имя релиза / псевдоним (jessie, stretch, buster, sid) или класс релиза (old stable, stable, testing, unstable) соответственно.

Если вы собираетесь отслеживать класс выпуска, используйте имя класса, если вы хотите отслеживать выпуск версии Debian, используйте кодовое имя.

Составная часть

Обычно в Debian можно использовать три компонента, а именно:

  • main – содержит пакеты, которые являются частью дистрибутива Debian. Эти пакеты соответствуют DFSG.
  • contrib – Пакеты здесь совместимы с DFSG, но содержат пакеты, которых нет в основном хранилище.
  • non-free – содержит пакеты программного обеспечения, которые не соответствуют требованиям DFSG.

Как мы видим в следующем файле sources.list на Debian 10 Buster, что в строках были перечислены все три типа компонентов:

Если ваш файл sources.list отличается, вы должны будете добавить разделы contrib и non-free после main, чтобы все пакеты были перечислены.

Если это так в вашей системе, вы можете отредактировать файл /etc/apt/sources.list с помощью nano, vim или любого другого редактора, чтобы внести изменения.

Мы рассмотрим это в следующем разделе статьи.

Если вам также нужны компоненты Backports, contrib и non-free, добавьте строки buster-backports.

Например, для Debian 10 Buster:

Вместо этого вы можете использовать https:// … во всех приведенных выше URL-адресах, чтобы использовать репозитории через зашифрованные соединения HTTPS.

(Пользователи Debian 9 Stretch или более ранних выпусков должны сначала установить пакет apt-transport-https.)

Если ваш sources.list содержит все разделы, мы можем запустить обновление пакета, используя apt-get.

Это обеспечит синхронизацию вашего индекса apt.

Затем вы можете установить новые пакеты из репозитория.

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

В этом случае используйте apt, а не apt-get. apt предпочтительнее apt-get для интерактивного использования.

Если это не решает проблему, тогда второй вариант – использовать –allow-releaseinfo-change

Добавление пользовательских репозиториев

Не всегда рекомендуется добавлять пользовательские и сторонние репозитории в файл /etc/apt/sources.list.

Вместо этого вы можете создать файл в каталоге /etc/apt/sources.list.d.

Например, чтобы установить docker-ce на Debian 10 Buster из его репозитория upstream, вы должны сделать следующее:

Вы можете использовать инструмент GNOME для редактирования вашего файла sources.list.

Доступ к нему осуществляется через Меню → Система → Администрирование → Источники программного обеспечения.

Другой способ – использовать команду apt, используемую для добавления сторонних репозиториев:

Затем вы можете перейти к обновлению apt-cache и установить пакет docker-ce с помощью apt-get.

Это рекомендуемый способ добавления любого другого стороннего репозитория.

Вы заметите, что это не сработает, потому что в вашей системе нет ключа GPG репозитория Docker.

Мы рассмотрим это далее.

Импорт ключей apt

При работе с репозиториями apt и sources.list в какой-то момент вам необходимо импортировать ключи GPG.

Обычно это делается с помощью команды apt-key с синтаксисом:

# apt-key adv —keyserver [server-address] —recv-keys Linux sources как добавить

Или вы можете загрузить ключ GPG напрямую и установить его из текущего каталога.

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

Для проверки правильности установки ключа выполните следующее:

После этого вы запустите:

Использование Apt с Tor

Если вы обеспокоены вопросами конфиденциальности или небезопасной передачи данных, вы можете использовать Tor с репозиториями Debian в вашем файле sources.list.

Читайте также:  Чем отличается dos от linux

Apt может получать и загружать обновления через Tor.

Чтобы это сработало, вам нужно установить пакеты tor и apt-transport-tor.

Затем вы можете использовать официальные onion сервисы, предоставляемые Debian.

Заключение

Мы видите, как мы можем манипулировать репозиториями файлов и пакетов sources.list в Debian Linux.

Это обновленная статья для нового выпуска Debian – Debian 10 Buster.

Источник

Команда source в Linux

Командная оболочка играет очень важную роль в работе семейства операционных систем Linux. Она используется не только пользователями для работы в терминале, но и программами, а также компонентами операционной системы для обмена данными между собой. Для этого применяются переменные окружения. Для перезагрузки переменных окружения из файла часто используется команда source.

Эта команда позволяет выполнить скрипт в текущем процессе оболочки bash. По умолчанию для выполнения каждого скрипта запускается отдельная оболочка bash, хранящая все его переменные и функции. После завершения скрипта всё это удаляется вместе с оболочкой. Команда source позволяет выполнить скрипт в текущем командном интерпретаторе, а это значит, что всё переменные и функции, добавленные в этом скрипте, будут доступны также и в оболочке после его завершения. Как вы уже поняли, в этой статье будет рассмотрена команда source linux.

Команда source linux

Синтаксис команды очень прост. Надо вызвать саму команду и передать ей путь к исполняемому файлу:

$ source путь_к_файлу аргументы

Никаких опций более не нужно. Если указан не абсолютный путь к файлу, а просто имя файла, то утилита будет искать исполняемый файл в текущей папке и директориях, указанных в переменной PATH. Давайте разберём несколько примеров работы с утилитой. Создаём скрипт, объявляющий переменную:

Затем загрузим переменную из этого файла:

Теперь можно попытаться вывести содержимое переменной и убедиться, что всё работает:

Однако, переменная есть только в текущем командном интерпретаторе, в других командных интерпретаторах её нет. Это отличие команды source от команды export, позволяющей экспортировать переменные окружения глобально.

Если выполняемому скрипту нужно передать параметры, можно это сделать, просто перечислив их после пути к файлу скрипта. Модифицируем наш скрипт, чтобы переменная бралась из первого параметра:

И снова выполняем:

source losstsource losst.ru

Аналогично работают и функции. Если объявить функцию в скрипте bash, а затем выполнить его с помощью команды source linux, то функция станет доступна в интерпретаторе:

#!/bin/bash
print_site() <
echo «losst.ru»
>

Теперь можно выполнить функцию print_site в терминале или любом другом скрипте:

Для тех, кто знаком с программированием на языке Си, можно провести аналогию с директивой #include, делающей доступными в текущем файле функции из других файлов. Если файл, имя которого передано как параметр команде, не существует, она вернёт код возврата 1 и завершится:

Вместо команды source можно использовать точку (.), однако здесь следует быть осторожными — между точкой и именем файла должен быть пробел для того, чтобы bash интерпретировал эту точку как отдельную команду, а не как часть имени файла:

Однако, нельзя писать .losstsource или ./losstsource, потому что обозначение ./ — это уже отсылка на текущую директорию, скрипт будет выполнен как обычно.

Выводы

В этой небольшой статье мы рассмотрели работу с командой source linux. Как видите, это очень простая и в то же время полезная команда, очень сильно облегчающая работу в терминале. Именно с её помощью работают виртуальные окружения Python и многие другие подсистемы.

Источник

Оцените статью