LINUX.ORG.RU
ФорумAdmin

список всех программ с версиями

 


0

2

Всем привет!

Как в линуксе вывести список всех программ (именно программ, а не пакетов) с их версиями? сам список программ выводится просто ls /bin && ls /usr/bin, а вот чтобы версии добавить... либо есть готовая команда, либо придется парсить выводы prog --help или prog --version или prog -V и много других вариантов...

★★

сам список программ выводится просто ls /bin && ls /usr/bin

Нет.
Еще есть sbin, еще есть local, opt...
Ты что-то делаешь не так. Только пакеты, и больше никак.
Скажи зачем тебе это понадобилось?

Kroz ★★★★★
()

Никак. За версиями следит пакетный менеджер, больше они нигде не хранятся. Нет, ну программа может выводить свою версию по --version, -v, в окошечке, а может вообще не выводить, а может не имееть версии вовсе (не хранить нигде в себе, да и вообще чистый роллинг из гита). То, чего ты хочешь, невыполнимо.

И список программ тоже не так, а вот так тогда уж:

for i in `echo $PATH | sed -e 's/:/ /g'`; do ls -1 "$i"; done

Но с версиями невозможно.

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 1)
Ответ на: комментарий от Psych218

ну всегда есть вариант - написать туеву хучу патчей (которые понадобятся только мне...) на все неугодные программы, чтобы выводил версию в нужном формате...

aido ★★
() автор топика
Ответ на: комментарий от aido

Ага, а ещё можно записать версии всех программ на листочек. Эффект тот же, только писанины меньше. А ещё можно изобрести пакетный менеджер, и это будет почти самый лучший вариант. Лучше только использовать готовый.

Psych218 ★★★★★
()
Ответ на: комментарий от aido

1. Программы поставляются в пакетах. Даже в LFS ты скачиваешь исходники, и из одного архива исходников всё равно могут заинсталлиться 2-3-5-10 программ.
2. Нет никакой гарантии, что -v --version есть у всех программ. Даже если и так - формат вывода разный. Автоматически не распарсишь.
3. Понятие «все что есть» явно больше, чем все программы на твоей машине. Есть либы, есть данные и т. п.

Так что твоя задача икак не решается, если ты не побеспокоился об этом заранее.

И еще: LFS существует для двух целей:
1. Как упражнение по освоению Линукса
2. Как база для создания дистрибутива. При том, что дистрибутив предполагает наличие пакетного менеджера.

Жить на LFS нельзя. В том числе и вот по этой причине. Поставил - похвали себя, форматни разделы и установи нормальный дистр.

Kroz ★★★★★
()

Как вариант, можно просто хранить все эти исходники, из которых ставятся пакеты («программы», как совершенно справедливо заметили выше, не совсем верно, потому что там и либы есть или один пакет может несколько программ ставить по make install). Заодно будет возможность make uninstall сделать. А если файлика с версией нет, создавать его там руками. Такой вот сам себе пакетный менеджер, только вручную…

Psych218 ★★★★★
()
Ответ на: комментарий от Kroz

Ок, а на ucLinux, PetaLinux, ARTLinux какие пакетные менеджеры? Я понимаю, что «какой захочешь, такой и будет», но из коробки-то что идет?

aido ★★
() автор топика
Ответ на: комментарий от aido

Посмотрел по uclinux. Оно вообще не предполагает точечный апдейт или доустановку программ. Реестр програм ведется в user/Kconfig. Если интересно - вот: http://free-electrons.com/doc/uclinux_introduction.odp . Добавление программы делается средствами make.

Дальше не смотрел.

Еще раз: единственный механизм контроля версий програм - пакетный менеджер. Если пакетного менеджера нет (как в LFS) или он не предусматривает конроль индивидуальных пакетов/програм или их версий (как в uCLinux), то никак нельзя собрать полную достоверную картину чего установлено в системе (точнее это дико сложно).

P. S. Для Gentoo есть замечательная программа e-file, которая говорит к какому пакету принадлежит файл, даже если этот пакет не установлен.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от Kroz

А. ну в микролинуксе пакетный менеджер, насколько я понял, - и есть user/Kconfig. какую версию припишешь «пакету», такая и будет.

aido ★★
() автор топика
Ответ на: комментарий от aido

чтобы получить список всего, что есть у меня в LFS=)

а толку, что ты узнаешь версии каждой проги? например, всякие пакеты типа coreutils, busybox, util-linux содержат кучу мелких программ, и при обновлении логичнее опираться на версию пакета

anonymous
()
Ответ на: комментарий от Kroz

Жить на LFS нельзя.

можно, если софта мало использовать

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.