То, как быстро создать локальный способный репозиторий для случайных пакетов с помощью Debian, основывало дистрибутив Linux?

Я подозреваю, что у Вас есть “поддельный RAID” контроллер. Эти RAID-контроллеры только оказывают минимальную поддержку в BIOS; объем работы сделан в драйвере Windows. Linux часто справляется плохо с этими контроллерами, потому что он испытывает недостаток в драйверах Windows. Наблюдение единственного UUID, но двух дисков является общим симптомом поддельного RAID (драйвер Windows знал бы, что существует два диска, но у них, как предполагается, есть идентичное содержание).

Если у Вас есть поддельное устройство RAID (и Вы, вероятно, делаете: RAID-контроллерами на уровне конечного пользователя является почти всегда поддельный RAID), и Вы не совместно используете диски с Windows, выключаете RAID в BIOS. Затем включите программное обеспечение RAID Linux, которое для RAID-1 выше во всех отношениях (кроме тех случаев, когда Вы совместно используете диски с Windows).

См. также, что Ubuntu фальсифицирует практическое руководство RAID, Как я дифференцирую “поддельный RAID” от реального RAID?

20
17.08.2013, 12:09
3 ответа

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

Во-первых, сделайте каталог для хостинга пакетов:

mkdir <packagedir>

Затем переместите свои .deb файлы пакета туда. Выполните эту команду из каталога выше того, который мы просто создали (удостоверьтесь, что полномочия позволяют это!):

dpkg-scanpackages packagedir | gzip > packagedir/Packages.gz

Теперь создайте файл с расширением .list в /etc/apt/sources.list.d/ с содержанием:

deb [trusted=yes] file:///path_to_dir_above_packagedir packagedir/

и обновите способную базу данных:

apt-get update

В этой точке пакеты в нашем локальном репозитории могут быть установлены как любое другое использование пакета apt-get install <packagename>. Когда новые пакеты добавляются к локальному репозиторию, предписанному dpkg-scanpackages команда должна быть дана снова для обновления файла Packages.gz и apt должен быть обновлен, прежде чем новые пакеты сделаны доступными. Надо надеяться, это может быть полезно для тестирования.

29
27.01.2020, 19:44
  • 1
    С новой Кв. 1.1 каждому нужно [trusted=yes] между deb и file:/// URI (см. sources.list(5) страница справочника), иначе apt-get update сбои из-за отсутствия подписи. –  vinc17 27.11.2015, 04:31

Если вы хотите создать репо с полной структурой, необходимой для таких инструментов, как debootstrap, я нашел самый простой способ:

  1. Создать каталог репозитория.

     # mkdir -p / opt / debian 
     
  2. Создать подкаталог conf.

     # mkdir / opt / debian / conf 
     
  3. Создайте файл / opt / debian / conf / distributions с таким содержимым (настройте его в соответствии с используемым вами дистрибутивом):

     Ярлык: Локальный репозиторий APT 
    Кодовое имя: jessie 
    Архитектуры: amd64 
    Компоненты: main 
    Описание: Локальный репозиторий APT для debootstrap 
     
  4. Импорт ваш пакет с реппро.

     # репро-b / opt / debian includedeb jessie /path/to/package.db
    
  5. Импортируйте группу пакетов с помощью цикла for-loop, например все из вашего APT-кеша:

     # cd / var / cache / apt / archives 
     # для DEB в * .deb; выполните репрезентацию -b / opt / debian includedeb jessie $ DEB; done 
     

Будет создан неподписанный архив. Его можно использовать с debootstrap с параметром --no-check-gpg.

2
27.01.2020, 19:44

Хотя аналогичный ответ уже существует и несколько похожих ответов также есть на AU , я публикую этот ответ, чтобы рекомендовать использование apt-ftparchiveвместоdpkg-scanpackages

Почему apt-ftparchiveвместо dpkg-scanpackages?

    Команда
  • dpkg-scanpackagesпредоставляется пакетом dpkg-dev, который не поставляется с установочным образом дистрибутива, по моим наблюдениям, он может быть не установлен на вашем компьютере. Сначала вам нужно установить пакет dpkg-dev, чтобы воспользоваться командой dpkg-scanpackages. И цель настройки локального репозитория обычно состоит в том, чтобы управлять пакетами программного обеспечения в автономном режиме на машине, которая не подключена к Интернету. Принимая во внимание, что командаapt-ftparchiveпредоставляется командой apt-utils, которая поставляется с обычным установочным образом дистрибутива. Таким образом, вам не нужно устанавливать никаких дополнительных пакетов.

  • Поскольку мы собираемся управлять пакетами -с помощью apt вместо dpkg, почему бы не использовать apt и для сканирования пакетов?:)


Как настроить локальный репозиторий APT?

Шаг 1:Создайте каталог, в который вы будете помещать свои файлы deb.

$ mkdir ~/apt-local-repository

Шаг 2:Добавьте локальный каталог в начало списка репозиториев по адресу/etc/apt/sources.list

$ head -n 1 /etc/apt/sources.list
deb [trusted=yes] file:/home/pandya/apt-local-repository/./
  • Обратите внимание: если вы не установите [trusted=yes], вам нужно будет установить аргумент --allow-unauthenticatedпри установке пакетов через apt.

  • Строка добавляется в начало списка репозиториев, чтобы присвоить ей наивысший приоритет.Если вместо этого вы добавите его в /etc/apt/sources.list.d/, apt попытается установить его из онлайн-репозитория (, как определено в /etc/apt/sources.list), отдав вашему локальному репозиторию меньший приоритет.

Шаг 3:Положите долги на~/apt-local-repository

Шаг 4:Индексирование списка пакетов с помощьюaptftparchive

$ cd ~/apt-local-repository/; apt-ftparchive packages. > Packages

Шаг 5:Обновите индекс/базу данных apt, используяsudo apt update

Готово . Теперь вы можете установить свой пакет deb, используя sudo apt install <packagename>. Просто повторяйте шаги с 3 по 5 каждый -раз, когда вы меняете локальную базу данных.


Полезные советы:

  • Вы можете запустить apt-cache policy <packagename>, чтобы выяснить, распознает ли APT ваш локальный пакет deb и присваивает ли ему наивысший приоритет

  • Вы можете запустить sudo apt-get --print-uris install <packagename>, чтобы проверить, все ли зависимости удовлетворены, или вам нужно загрузить дополнительные пакеты. Также в нем будут перечислены URL-адреса, которые будут i )ftp :// для пакетов, которые у вас есть в вашем локальном репозитории, и/или ii )http :// для пакетов или отсутствующих зависимостей, которые необходимо загрузить из Интернета..

Вы можете взглянуть на один сценарий под названиемL ocal A pt R epository M anager Я создал.

5
28.06.2020, 04:58

Теги

Похожие вопросы