[РЕШЕНО] ошибка: не найдена цель: glibmm-2.68

"Никогда такого не было и вот опять." (с)
)))
Время от времени запускаю:
# pacman -Rns "$(pacman -Qtdq)"
для поиска осиротевших пакетов, и последующего их удаления.
И вот, вчерась, после запуска этой команды, вылезло такое:
$ ошибка: не найдена цель: glibmm-2.68
python-pydantic
ttf-opensans
glibmm-2.68 у меня установлен, и даже повторная его установка не решает проблему.
Что ему не хватает - не пойму.
Гуру, помогите, пожалуйста! Куда копать?
Давайте жить дружно! :-)
igorog
pacman -Rns "$(pacman -Qtdq)"
используйте pipe (конвеер ) |
pacman -Qtdq | pacman -Rns -

https://wiki.archlinux.org/title/Pacman/Tips_and_tricks#Removing_unused_packages_(orphans)

https://www.gnu.org/software/bash/manual/html_node/Pipelines.html
используйте pipe (конвеер ) |
Да, Вы неправильно поняли, вопрос был не в этом.
Обе команды, и моя, и Ваша корректно отрабатывают.
Когда не найдены сироты, - нормальный вывод в моём случае "ошибка: не найдена цель:", в Вашем нормально "ошибка: аргумент '-' указан с пустым stdin", а если найдены, то в выводе эти сиротки и указаны.
Но, в том то и дело, что он находит эти сиротки: glibmm-2.68 python-pydantic ttf-opensans
а удалить не удаляет, т.к "не найдена цель: glibmm-2.68"
Как она не найдена, если эти пакеты у меня УСТАНОВЛЕНЫ?
При попытке удаления: #pacman -R glibmm-2.68, выплывает куча каких-то зависимостей.
Какие могут быть зависимости, если -Qtdq сказал, что glibmm-2.68 сирота?
Чё-то я совсем запутался. Извините, за сумбур, и большое спасибо, В ОЧЕРЕДНОЙ РАЗ, за поддержку!
Давайте жить дружно! :-)
igorog
и моя, и Ваша корректно отрабатывают.
ваша "$(pacman -Qtdq)" с кавычками работать корректно не будет
или уберите кавычки или лучше конвеер использовать как говорил
igorog
pacman -R glibmm-2.68, выплывает куча каких-то зависимостей.
Какие могут быть зависимости, если -Qtdq сказал, что glibmm-2.68 сирота?
покажите вывод
pacman -Qtdq | grep glibmm
pacman -Qii glibmm-2.68
vs220
Вопрос решился последовательным удалением ttf-opensans, затем python-pydantic, и наконец, последним удалился уже без вопросов glibmm-2.68.
Мистика какая-то. Первый раз такое.
Ещё раз, спасибо за помощь.
Давайте жить дружно! :-)
igorog
Гуру, помогите, пожалуйста! Куда копать?

Копать надо в сторону знания основ баша. Видимо вам раньше везло и осиротевшие пакеты были по одной штуке, которые и удалялись. Теперь когда система нашла три пакета вы предлагаете ей удалить "glibmm-2.68\npython-pydantic\nttf-opensans" которого очевидно нет в системе, о чём вам pacman и сообщает
Накидал скрипт с демонстрацией
#!/bin/bash

function orphans (){
pkgs="glibmm-2.68
python-pydantic
ttf-opensans"

echo "$pkgs"
}

echo "Test 1"
echo "$(orphans)"
echo
echo "Test 2"
echo "$(echo $(orphans))"
echo
echo "Test 3"
echo "$(orphans | tr '\n' ' ')"
везло и осиротевшие пакеты были по одной штуке, которые и удалялись
Я с вами (с Вами и с vs220) спорить не хочу и не собираюсь, но факт остаётся фактом.
Осиротевшие пакеты благополучно искались (и не по одному, как Вы говорите) даже с двойными кавычками в выражении. Мне врать не зачем.
которого очевидно нет в системе
Я конечно признаю, что я новичёк в Линуксе (хотя последние 3 года, я интенсивно штудирую вики, да и по шелл-скриптам пытаюсь подтянуться), да, и новичком, скорее всего останусь навсегда, т.к. чтобы освоить Линукс в полной мере, нужно КАЖДЫЙ день в нём профессионально работать.
Но тем не менее - я уж не совсем дурак.
Все три пакета я проверил (-Ql какие файлы и где). Они были УСТАНОВЛЕНЫ в системе и были в тех папках!
Повторюсь, без предварительного удаления python-pydantiс и ttf-opensans - glibmm НИ В КАКУЮ удаляться не хотел.

Ваш скрипт отрабатывает:
u@16:55 ~/Downloads/my_scripts $ ./test1
Test 1
glibmm-2.68
python-pydantic
ttf-opensans

Test 2
glibmm-2.68 python-pydantic ttf-opensans
Давайте жить дружно! :-)
Вас куда-то не туда унесло. Причём тут дурак не дурак...

Я думал скрипт покажет вам в чём разница, ну да ладно.. Попробую еще раз объяснить без скриптов:

Три пакета которые надо удалить, вы ожидаете, что при выполнении скрипта будет вот это:

pacman -Rns glibmm-2.68 python-pydantic ttf-opensans

а у вас получается вот так:

pacman -Rns glibmm-2.68
python-pydantic
ttf-opensans

pacman пытается найти не три разных пакета, а один состоящий из трех строк.

Когда пакет один - то никаких проблем не возникает. Когда их больше - будут появляться такие ошибки. Понаблюдайте.

Вот гайд по башу где объясняется про пробелы https://www.opennet.ru/docs/RUS/bash_scripting_guide/c1613.html#VARSUBN

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

sudo pacman -Rns "$(echo $(pacman -Qtdq))"
Nebulosa
Спасибо большое за разъяснение!
Мне казалось, что команда нормально отрабатывает, но теперь я совершенно уверен, что просто не заострял внимание на нюансах.
Дьявол, как всегда, - в деталях.
Давайте жить дружно! :-)
igorog
казалось, что команда нормально отрабатывает
если "pacman -Qtdq" (именно в кавычках) возвращал до этого момента только один пакет (одну строку) - то да, команда отрабатывала нормально.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE
 
Зарегистрироваться или войдите чтобы оставить сообщение.