Есть ли команда, обратная apt-cdrom add?
Модераторы: Warderer, Модераторы разделов
Есть ли команда, обратная apt-cdrom add?
Друзья! Как известно, эта команда добавляет запись о диске в файл /etc/apt/sources.list, типа диск это репозиторий. И так эта запись там и остаётся, что влечёт за собой плохие последствия, хоть ты и вытащишь диск. Есть ли команда, обратная apt-cdrom add, чтобы можно было соответствующую запиcь из репозитория удалить, а не вручную править
/etc/apt/sources.list? Спасибо, кто откликнется.
/etc/apt/sources.list? Спасибо, кто откликнется.
Я просто читаю маны.
- Bizdelnick
- Модератор
- Сообщения: 20792
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Есть ли команда, обратная apt-cdrom add?
А что за последствия такие? Если бы они были очевидны разработчикам, те добавили бы возможность удаления.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Есть ли команда, обратная apt-cdrom add?
Да что там править-то, закомментируйте строку и всего делов.
Re: Есть ли команда, обратная apt-cdrom add?
К разработчикам мы ещё вернёмся, а вот для простых людей и вправду неочевидны. А потому всё что некоторые люди некоторые вещи делают неправильно. Делал бы их неправильно и я, но я засунул ноздри глубже, чем следует.Bizdelnick писал: ↑02.01.2019 01:58А что за последствия такие? Если бы они были очевидны разработчикам, те добавили бы возможность удаления.
+++++++++++++++++++++++++++++++++++++++++++++++++++
Зададимся целью научиться получать список пакетов в репозитории. Просто СПИСОК ПАКЕТОВ В РЕПОЗИТОРИИ. А в качестве репозитория будем использовать болванки (тем более, что мне прислали из Китая Iodd2541, надо же его опробовать )
Интернет пестрит советами типа:
https://forum.ubuntu.ru/index.php?topic=133835.0
https://www.linux.org.ru/forum/admin/9157417
Вариации на тему apt-cache. Вот оно и неправильно.
===================================
А правильно так:
https://webhamster.ru/mytetrashare/index/mtb193/14997794630135opynlq
или, что то же самое
Русскоязычный man apt-cdrom
А в ангоязычном manе разработчики не написали почему-то этого. Ну да ладно/var/lib/apt/lists/ область хранения информации о состоянии каждого ресурса пакетов, заданного в списке источников
===================================
Теперь, зная правильный способ нахождения списка пакетов в репозитории, найдём какой-нибудь пакет и всё встанет на свои места.
В папке /var/lib/apt/lists изначально списка пакетов нет
Код: Выделить всё
user@astra:/var/lib/apt/lists$ ls
lock partial
user@astra:/var/lib/apt/lists$
Ну всё, собсно. Вставим диск "Астралинукс Орёл 1.1", (что уж есть) примонтируем,
Код: Выделить всё
sudo apt-cdrom add
Код: Выделить всё
sudo apt-get update
Код: Выделить всё
user@astra:~$ grep ^Package: /var/lib/apt/lists/*Packages | grep "gcc$"
/var/lib/apt/lists/OS%20Astra%20Linux%201.11%20orel%20-%20amd64%20DVD%20_dists_orel_main_binary-amd64_Packages:Package: gcc
user@astra:~$
Код: Выделить всё
user@astra:~$
user@astra:~$ grep ^Package: /var/lib/apt/lists/*Packages | grep "gcc$"
/var/lib/apt/lists/OS%20Astra%20Linux%201.11%20orel%20-%20amd64%20DVD%20_dists_orel_main_binary-amd64_Packages:Package: gcc
user@astra:~$
+++++++++++++++++++++++++++++++++++++++++++++++++++=
Вот и всё, собсно. Такой ситуации можно было бы избежать. если бы строчка c ненужным дистрибутивом была закомменчена (командой, обратной команде apt-cdrom add, о чём и тема-то моя.) . Тогда команда
Код: Выделить всё
sudo apt-get update
А теперь что получается. Перед тем, как скомандовать
Код: Выделить всё
sudo apt-get update
Такие дела.user@astra:~$
user@astra:~$ grep ^Package: /var/lib/apt/lists/*Packages | grep "gcc$"
/var/lib/apt/lists/OS%20Astra%20Linux%201.11%20orel%20-%20amd64%20DVD%20_dists_orel_main_binary-amd64_Packages:Package: gcc
user@astra:~$
Я просто читаю маны.
Re: Есть ли команда, обратная apt-cdrom add?
Ну Вы ещё репозиторий OpenWRT (или даже ещё левее) присобачьте, будет вообще хорошо :-)
Re: Есть ли команда, обратная apt-cdrom add?
Ну что, друзья, какие будут мнения?
Я просто читаю маны.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Есть ли команда, обратная apt-cdrom add?
Мнения будут такие, что нефиг в Debian прикручивать всякие Астралинуксы.
Или, как уже сказали выше, OpenWRT.
Есть Debian, есть его официальные репы. С конкретными адресами.
Есть болванки, которые можно прикрутить в качестве локальных реп, но это - всего лишь приятный бонус, не более. Я сам этим пользовался в мою бытность на Debian - прикручивал iso в качестве локальных реп, чтобы не тянуть каждый пакет из интернета (быстрее и устойчивее).
Наличие команды apt-cdrom add совсем не означает, что туда можно запихивать любые болванки. Запихнуть-то, конечно, можно, но результат будет... вот как у Вас, примерно.
Вообще-то любая строка в sources.list подразумевает, что данный репозиторий доступен.
И в этом смысле болванка мало чем отличается от репов где-то на сервере.
А с чего Вы решили, что пакет gcc "найден" на диске "Астралинукс Смоленск 1.5"?
Он найден в списках, связанных с доступными источниками - сетевыми репами, болванками, каталогами и пр. Какой именно источник имеется в виду - неизвестно. Любой из доступных. При установке пакета будет попытка связаться с этим источником. Если это болванка - будет запрос "вставить диск".
У меня было добавлено 5 образов DVD для Debian Lenny и это именно так и работало: при установке пакета появлялся запрос "вставить нужный диск" (указывалось, какой именно), если вдруг был примонтирован не тот образ. И наличие целых пяти "болванок" (а на самом деле iso-образов) в sources.list не создавало никаких проблем.
Re: Есть ли команда, обратная apt-cdrom add?
Зачем слова говорить? "нефиг", "прикручивать", "запихивать"...? Есть конкретная ситуация- есть болванка с пакетами и нужно узнать, какие на ней есть пакеты. А не узнать потому, что
+++++++++++++++++++++++++++++++++++++++++++
То есть у вас я прочёл:
Но вообще, команда, обратная apt-cdrom add и
То есть лежит себе болванка с пакетами, я хожу такой облизываюсь возле неё и не могу даже пакеты посмотреть какие на ней есть. Не установить, заметьте, а просто посмотреть. Ну ладно, я вас понял, чё.Hephaestus писал: ↑06.01.2019 11:44Наличие команды apt-cdrom add совсем не означает, что туда можно запихивать любые болванки. Запихнуть-то, конечно, можно, но результат будет... вот как у Вас, примерно.
+++++++++++++++++++++++++++++++++++++++++++
с чего я решил, я написал. Понимаете, меня совсем не радует перспектива узнавать, где есть пакет во время его установки, хотя разговора нет, это СТОПРОЦЕНТНЫЙ СПОСОБ. А мой способ не стопроцентный, тут я согласен, пока не установишь, точно нельзя быть уверенным... Мда.Hephaestus писал: ↑06.01.2019 11:44А с чего Вы решили, что пакет gcc "найден" на диске "Астралинукс Смоленск 1.5"?
Он найден в списках, связанных с доступными источниками - сетевыми репами, болванками, каталогами и пр. Какой именно источник имеется в виду - неизвестно. Любой из доступных. При установке пакета будет попытка связаться с этим источником. Если это болванка - будет запрос "вставить диск".
То есть у вас я прочёл:
Гениально, конечно, но ну его, такое решение. Проще реально руками /etc/apt/sources.list править.если хочешь узнать, где есть пакет, устанавливай его. Та болванка, с которой он установится его и содержит.
Но вообще, команда, обратная apt-cdrom add и
Всё бы и решило. С этого я начал, заметьте.apt-get update
grep ^Package: /var/lib/apt/lists/*Packages | grep "gcc$"
Я просто читаю маны.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Есть ли команда, обратная apt-cdrom add?
Потому что неправильно пользуемся инструментами. И вместо использования apt-cache изобретаем велосипеды с grep.
Посмотреть можно. Примонтировать и посмотреть. Там наверняка есть файл со списком пакетов.
Или использовать apt-cache. Он Вам всё покажет. Уж не знаю, чем он Вам так насолил, что Вы предпочитаете grep'ать списки.
Это и не требуется. То, что я сказал выше насчет запроса диска в момент установки - это всего лишь иллюстрация того, что разные диски могут одновременно присутствовать в списках источников и это не вызывает никакой путаницы. По крайней мере, в Debian. Потому что каждый диск (iso, во всяком случае) снабжен уникальным идентификатором. Так же должно быть и в Астралинукс, если всё сделано по уму и ничего не поломали.
Более того, после выполнения apt-cdrom add для всех имеющихся болванок/образов, списки пакетов в дальнейшем можно будет смотреть без всяких проблем и для этого даже болванки вставлять не придётся. Но это при использовании apt-cache. А ещё, помнится, была возможность посмотреть источник для конкретного пакета (к какому диску/образу/репозиторию он относится). Какой именно инструмент это обеспечивал - не помню, так как Debian не использую уже года четыре, но по-моему, всё тот же apt-cache.
А вот когда Вы делаете
grep Вам находит пакет из общих списков, то есть вообще из всех доступных источников, в том числе серверов. Соответственно, наличие/отсутствие болванки в приводе в этот момент ни на что не влияет.
Пакет в этом случае находится (или не находится) по общим спискам без привязки к источникам, ибо grep про источники не в курсе просто вот никак.
Кроме того, надо иметь в виду, что apt-get update обновляет списки в соответствии с sources.list, поэтому нужно предварительно удалять/добавлять строки в sources.list, иначе вызов apt-get update ничего не даст - списки источников останутся те же, следовательно и списки пакетов - те же.
И команда, обратная к apt-cdrom add здесь ничем не поможет, так как кроме cd-rom есть ещё куча других источников - серверы, каталоги, локальные репы.
Вывод: Пользуйтесь для поиска пакетов специальными инструментами, не изобретая велосипедов - и проблема уйдет сама собой.
Re: Есть ли команда, обратная apt-cdrom add?
Предпочитаю не писать обо всём, а постепенно. Но если уж про apt-cache говорить...Hephaestus писал: ↑07.01.2019 23:17Или использовать apt-cache. Он Вам всё покажет. Уж не знаю, чем он Вам так насолил, что Вы предпочитаете grep'ать списки.
Q: Как мне узнать как называется пакет для какой-то цели?
A: Попробуйте поиск по ключевым словам при помощи apt-cache search <слова>
Но есть эта команда ищет всё везде, где ни попадя, проверено.
Такого же вывода не будет:
А будет такая мешанина.<cлово> найдено в пакете X который лежит на диске таком-то
<cлово> найдено в пакете Y который установлен
Волей-неволей приходится обращаться непосредственно к файлам /var/lib/apt/lists/*Packages. Там уж всё точно. И да, файла со списком пакетов я на болванке не нашёл.<cлово> найдено в пакете X
<cлово> найдено в пакете Y
Я просто читаю маны.
Re: Есть ли команда, обратная apt-cdrom add?
Именно что всё так. То есть если бы была команда обратная apt-cdrom add, то всё бы и решилось.Hephaestus писал: ↑07.01.2019 23:17А вот когда Вы делаетеgrep Вам находит пакет из общих списков, то есть вообще из всех доступных источников, в том числе серверов. Соответственно, наличие/отсутствие болванки в приводе в этот момент ни на что не влияет.
Пакет в этом случае находится (или не находится) по общим спискам без привязки к источникам, ибо grep про источники не в курсе просто вот никак.
Кроме того, надо иметь в виду, что apt-get update обновляет списки в соответствии с sources.list, поэтому нужно предварительно удалять/добавлять строки в sources.list, иначе вызов apt-get update ничего не даст - списки источников останутся те же, следовательно и списки пакетов - те же.
И команда, обратная к apt-cdrom add здесь ничем не поможет, так как кроме cd-rom есть ещё куча других источников - серверы, каталоги, локальные репы.
Вывод: Пользуйтесь для поиска пакетов специальными инструментами, не изобретая велосипедов - и проблема уйдет сама собой.
Ну да, соглашусь, всё-таки вручную пришлось бы править sources.list из-за серверов всяких разных. Но в моём случае это некритично- у нас репозиторий отсутствует в принципе, потому всё устанавливаем ТОЛЬКО с болванки... Соответственно, любая запись в sources.list не о болванке- это левая запись.
Я просто читаю маны.
Re: Есть ли команда, обратная apt-cdrom add?
Во-во,
Были бы диски подключены, и на них бы показало.
globus@intercom:~$ apt-cache policy cinnamon
cinnamon:
Installed: (none)
Candidate: 3.2.7-4
Version table:
3.2.7-4 500
500 http://mirror.truenetwork.ru/debian stretch/main amd64 Packages
globus@intercom:~$ apt-cache policy fluxbox
fluxbox:
Installed: 1.3.5-2+b2
Candidate: 1.3.5-2+b2
Version table:
*** 1.3.5-2+b2 500
500 http://mirror.truenetwork.ru/debian stretch/main amd64 Packages
100 /var/lib/dpkg/status
globus@intercom:~$ apt-cache policy linux-image-4.9.0-8-amd64
linux-image-4.9.0-8-amd64:
Installed: 4.9.130-2
Candidate: 4.9.130-2
Version table:
*** 4.9.130-2 500
500 http://mirror.truenetwork.ru/debian stretch/main amd64 Packages
100 /var/lib/dpkg/status
4.9.110-3+deb9u6 500
500 http://security.debian.org stretch/updates/main amd64 Packages
cinnamon:
Installed: (none)
Candidate: 3.2.7-4
Version table:
3.2.7-4 500
500 http://mirror.truenetwork.ru/debian stretch/main amd64 Packages
globus@intercom:~$ apt-cache policy fluxbox
fluxbox:
Installed: 1.3.5-2+b2
Candidate: 1.3.5-2+b2
Version table:
*** 1.3.5-2+b2 500
500 http://mirror.truenetwork.ru/debian stretch/main amd64 Packages
100 /var/lib/dpkg/status
globus@intercom:~$ apt-cache policy linux-image-4.9.0-8-amd64
linux-image-4.9.0-8-amd64:
Installed: 4.9.130-2
Candidate: 4.9.130-2
Version table:
*** 4.9.130-2 500
500 http://mirror.truenetwork.ru/debian stretch/main amd64 Packages
100 /var/lib/dpkg/status
4.9.110-3+deb9u6 500
500 http://security.debian.org stretch/updates/main amd64 Packages
Были бы диски подключены, и на них бы показало.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Есть ли команда, обратная apt-cdrom add?
Не будет. Потому что это поиск пакетов по описаниям/ключевым словам.
Более подробная информация о пакетах, как уже выше подсказали, policy, точнее apt-cache policy
Что там точно? Там же поиск получается без учета источников.
Вы же получили ложное срабатывание
Ну и чем это лучше результатов, выданных apt-cache?
Быть не может.
apt-cdrom add помещает информацию о пакетах в /var/lib/apt/lists/*Packages
Откуда, Вы думаете, он её берет? С болванки, разумеется. Из файла.
Должен быть файл наподобие
dists/stable/main/binary-i386/Packages или dists/stable/main/binary-amd64/Packages, или
что-то в этом роде.
А кроме того, должен быть md5sum.txt в корне болванки.
Да не нужна она, поймите Вы наконец.
Во-первых, apt-cache наверняка с лихвой покроет Ваши запросы, просто изучите её повнимательнее.
А во-вторых, посмотрите сами, какая схема у Вас получается, при наличии обратной команды:
Добавляем болванку с помощью apt-cdrom add
Пользуемся поиском пакетов
Удаляем болванку с помощью обратной команды
Добавляем другую болванку с помощью apt-cdrom add
Ищем пакеты
Удаляем болванку
Добавляем третью...
Чувствуете, как весело?
Тогда уж проще и apt-cdrom add не использовать, а grep'ать файлы Packages прямо с болванки.
Re: Есть ли команда, обратная apt-cdrom add?
Cоглсен, получил ложное срабатывание. Потому с учётом ошибок список пакетов на болванке будем искать так:Hephaestus писал: ↑08.01.2019 10:51Что там точно? Там же поиск получается без учета источников.
Вы же получили ложное срабатываниеНу и чем это лучше результатов, выданных apt-cache?
Код: Выделить всё
apt-cdrom add
Код: Выделить всё
apt-get update
grep ^Package: /var/lib/apt/lists/**Packages
Ну, а почему нет? Давайте попробуемHephaestus писал: ↑08.01.2019 10:51Во-первых, apt-cache наверняка с лихвой покроет Ваши запросы, просто изучите её повнимательнее.
man apt-cache
Гм. Сейчас мне этот мифический кэш не нужен, (который тоже нужно повнимательнее изучать, да ведь)? Есть сущность- болванка (репозиторий), есть всё остальное. По-моему, вполне себе логически отделённые друг от друга понятия. Есть пакеты (наверное, суть файлы *.deb) на болванке, а есть установленные в системе. Мы можем их отделить не вводя третье понятие КЭШ? Я могу. Ну хорошо, наверное, для apt-cache нужен кэш. А мне не нужны пакеты в кэше, мне нужны пакеты на болванке...
Если кэш синоним болванки (подключенного репозитория) то да, он очень полезен. А так... Кэш да и кэш.
...И да, вот по ссылке:
Так что смотреть пакете там- правильно./var/lib/apt/lists/ - область хранения информации о состоянии каждого ресурса пакетов, заданного в списке источников
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...Когда я вставляю флэшку, я её руками примонтировываю. Когда я втыкаю интернетовский провод, мне потом ещё нужно кнопку найти "Подключить" и мышью на неё ткнуть (ну типа провод подключить). Так что ещё одной осмысленной команды я ей-Богу, не испугаюсь. Нам ли, линуксоидам, трудностей бояться...Hephaestus писал: ↑08.01.2019 10:51А во-вторых, посмотрите сами, какая схема у Вас получается, при наличии обратной команды:
Добавляем болванку с помощью apt-cdrom add
Пользуемся поиском пакетов
Удаляем болванку с помощью обратной команды
Добавляем другую болванку с помощью apt-cdrom add
Ищем пакеты
Удаляем болванку
Добавляем третью...
Чувствуете, как весело?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ну а почему нет? Просто там их ещё найти надо. Я просто не знал, что файлы копируются, я думал, программа пробегается по пакетам на болванке, выуживает из неё информацию и записывает её в файлы. А так-то да, самое то способ. Просто:Hephaestus писал: ↑08.01.2019 10:51Тогда уж проще и apt-cdrom add не использовать, а grep'ать файлы Packages прямо с болванки.
Код: Выделить всё
apt-cdrom add
Код: Выделить всё
apt-get update
grep ^Package: /var/lib/apt/lists/**Packages
Я просто читаю маны.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Есть ли команда, обратная apt-cdrom add?
Автоматом это не делается по очень простой причине: носитель съемный.
А съемный носитель это штука такая: сегодня он есть, а завтра его нет.
Вот поэтому apt-get update не обрабатывает в sources.list записи, касающиеся съёмных носителей, в частности болванок. По крайней мере, раньше (когда я имел с ним дело) не обрабатывал.
Убедиться в этом легко: запись о болванке, добавленная в sources.list вручную (без использования apt-cdrom add) обработана не будет. И может быть, даже будет выдано соответствующее сообщение.
А это значит, что добавление болванок в список источников возможно исключительно с помощью apt-cdrom add.
А теперь представим, что появилась команда, обратная к apt-cdrom add.
Тогда по подразумеваемой Вами схеме это будет выглядеть так:
Добавление болванки
Поиск
Удаление болванки
Добавление болванки
Поиск
Удаление болванки
Добавление болванки
.....
А теперь вопрос: Если всякий раз удалять болванку из источников, зачем мы её вообще туда добавляли?
Тогда уж можно и не добавлять, а grep'ать напрямую.
Замените в Ваше схеме apt-cdrom add на команду монтирования болванки
и grep'айте на здоровье. Тем более, что путь к файлу Packages будет для всех болванок один и тот же.
Что-нибудь вроде /mnt/cdrom/dists/stable/main/binary-amd64/Packages
А кеш как бы решает немного другие задачи.
Нет, кеш изучать не нужно. Я, например, за несколько лет использования Debian даже не вникал, где этот самый кеш находится. Изучать нужно не кеш, а инструменты работы с этим кешем.
Кеш нужен, в частности, для того, чтобы не пришлось жонглировать болванками при каждом поиске.жучара писал(а): ↑08.01.2019 15:04Есть сущность- болванка (репозиторий), есть всё остальное. По-моему, вполне себе логически отделённые друг от друга понятия. Есть пакеты (наверное, суть файлы *.deb) на болванке, а есть установленные в системе. Мы можем их отделить не вводя третье понятие КЭШ? Я могу. Ну хорошо, наверное, для apt-cache нужен кэш. А мне не нужны пакеты в кэше, мне нужны пакеты на болванке...
А если Вам нужны пакеты именно на болванке, так и смотрите их прямо на болванке, не добавляя в кеш, то есть не используя apt-cdrom add.
Я не говорил, что это неправильно. Я говорил, что не нужно изобретать велосипед при наличии уже готовых инструментов. Которые к тому же, дадут больше, чем просто grep.
Тут дело не в трудностях. Дело тут в том, что Вы добавляете болванку в кеш, а потом ищете способ убрать её оттуда. Хотя можно было и не добавлять тогда уж.жучара писал(а): ↑08.01.2019 15:04...Когда я вставляю флэшку, я её руками примонтировываю. Когда я втыкаю интернетовский провод, мне потом ещё нужно кнопку найти "Подключить" и мышью на неё ткнуть (ну типа провод подключить). Так что ещё одной осмысленной команды я ей-Богу, не испугаюсь. Нам ли, линуксоидам, трудностей бояться...
Ну, я Вам подсказал пути к этим файлам. Если уж так нравится grep'ать, то проще прямо на болванке, без этих заморочек с кешем.
Спасибо сказали: