Вобщем как можно вывести в консоль количество пакетов которые подлежат обновлению после apt-get update ???
Облазил все поисковики... ничего похожего не нашёл... :( Да и у самого идей нет как такое осуществить :( но очень надо :(
Не нашёл я там(собственно потому тут и спросил) ничего подходящего где бы можно было например подсчитать количество строк... хотя может мой мозг просто ещё не достаточно пропатчен :)
Оп... походу нашёл :)
apt-get --print-uris upgrade
как бы теперь проверить тот-ли список выдаст который мне нужен... для апдейта в репах ничего нет (
P.S.: Немного не катит... походу
safe-upgrade - Выполнить безопасное обновление
Мне не нужно обновлять или получать список пакетов с запросом на обновление... кстати эта команда предложила мне удалить 22 пакета многими из которых я повседневно пользуюсь... а ещё более неприятно будет если этот запрос также отработает у меня на сервере... и решит что ему не нужен какой-нить nginx или php5 с MySQL :)
Мне необходимо чтобы запрос после выполнения выдал цифру(количество пакетов)
ну сам aptitude ничего просто так не удалит.
а после запуска команды будет предложено согласиться или нет с дальнейшим выполнением и будет выведено КОЛИЧЕСТВО обновленных, установленных, удаленных пакетов.
В Debian Ъ рекомендуют пользоваться именно aptitude.
Хм... я понимаю что не удалит... просто скажем так мне этот подход не очень нравится:)
Вот в синаптике есть функция "создать сценарий закачки пакетов" там генерируется (можно сказать)список для закачки... так вот синаптик это-ж надстройка над apt-ом значит в апте есть возможность получить список линков на обновляемые пакеты... (хотя может я туплю) :)
Эммм. Я правильно понял, что нужно то число, пакетов, которое отображается после выполнения команды
sudo aptitude update
? количество тех пакетов, что отмечены как новые?
При беглом прочтении "man aptitude" придумалось аж 3 способа.
Первый способ (совсем не элегантный):aptitude search -F "%V %v" * | grep -v '<нет>' выводим это в переменную и делим на строчки, далее сравниваем версии в каждой строке, несовпадение - означает обновление. (правда может и означать, что пакету запретили обновляться либо пакет стоит новее чем в репозиториях)
Второй способ (тоже не элегантнее, но симпатишнее): есть такой параметр: -s, --simulate, который как бы намекает нам:
In command-line mode, print the actions that would normally be performed, but don´t actually perform them. This does not require root privileges. In the visual interface, always open the cache in read-only mode regardless of whether you are root.
Так же выводим в переменную, и находим все слова после: "...будут обновлены:" - и перед остальным, то есть получаем список пакетов для обновления,.. считаем.
Ну и просто ради шутки стоит попробовать:sudo apt-get -y -s --show-upgraded upgrade | grep -c Inst
Что-то я тоже не увидел ничего, но гляньте на всякий случай ещё разок внимательно вот это: Opennet:apt-get (8) ( Русские man: Команды системного администрирования )
Не нашёл я там(собственно потому тут и спросил) ничего подходящего где бы можно было например подсчитать количество строк... хотя может мой мозг просто ещё не достаточно пропатчен :)
Оп... походу нашёл :)
apt-get --print-uris upgrade
как бы теперь проверить тот-ли список выдаст который мне нужен... для апдейта в репах ничего нет (
P.S.: Немного не катит... походу
вот здесь
на выходе получаем список пакетов для обновления в файле
Точно :) Совсем забыл о этой теме :)
apt-get upgrade -y --print-uris | cut -d"'" -s -f2 | wc -l
То что надо! И без sudo... :)
sudo aptitude safe-upgrade
Покажет все пакеты, которые будут обновлены
Мне не нужно обновлять или получать список пакетов с запросом на обновление... кстати эта команда предложила мне удалить 22 пакета многими из которых я повседневно пользуюсь... а ещё более неприятно будет если этот запрос также отработает у меня на сервере... и решит что ему не нужен какой-нить nginx или php5 с MySQL :)
Мне необходимо чтобы запрос после выполнения выдал цифру(количество пакетов)
ну сам aptitude ничего просто так не удалит.
а после запуска команды будет предложено согласиться или нет с дальнейшим выполнением и будет выведено КОЛИЧЕСТВО обновленных, установленных, удаленных пакетов.
В Debian Ъ рекомендуют пользоваться именно aptitude.
Хм... я понимаю что не удалит... просто скажем так мне этот подход не очень нравится:)
Вот в синаптике есть функция "создать сценарий закачки пакетов" там генерируется (можно сказать)список для закачки... так вот синаптик это-ж надстройка над apt-ом значит в апте есть возможность получить список линков на обновляемые пакеты... (хотя может я туплю) :)
Эммм. Я правильно понял, что нужно то число, пакетов, которое отображается после выполнения команды
sudo aptitude update
? количество тех пакетов, что отмечены как новые?
Нет... число установленных в системе пакетов для которых есть более новые версии в репозиториях тоесть число пакетов для apt-get upgrade
$ sudo aptitude upgrade | grep "пакетов обновлено"
не подойдёт? Выводит строку сколько пакетов новых, сколько для обновления, для удаления...
При беглом прочтении "man aptitude" придумалось аж 3 способа.
Первый способ (совсем не элегантный): aptitude search -F "%V %v" * | grep -v '<нет>' выводим это в переменную и делим на строчки, далее сравниваем версии в каждой строке, несовпадение - означает обновление. (правда может и означать, что пакету запретили обновляться либо пакет стоит новее чем в репозиториях)
Второй способ (тоже не элегантнее, но симпатишнее): есть такой параметр: -s, --simulate, который как бы намекает нам:
In command-line mode, print the actions that would normally be performed, but don´t actually perform them. This does not require root privileges. In the visual interface, always open the cache in read-only mode regardless of whether you are root.
Так же выводим в переменную, и находим все слова после: "...будут обновлены:" - и перед остальным, то есть получаем список пакетов для обновления,.. считаем.
Ну и просто ради шутки стоит попробовать: sudo apt-get -y -s --show-upgraded upgrade | grep -c Inst
;)
Думаю,.. РЕШЕНО
Отправить комментарий