aptitude install::список пакетов в файле

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

aptitude install::список пакетов в файле

Сообщение Voral »

Идея такая.

Хочу написать для себя памятку какие пакеты устанавливаю, зачем и т.п. Так же хочется, что бы эту памятку можно было использовать для дальнейших установок линукса: ставлю минимальную систему, настраиваю sources, и запускаю свою команду для установки нужных пакетов.

Формат памятки примерно такой
#это коментарий
package1 #Этот пакет мне нужен всегда ибо тру
#package2 #Этот пакет мне нужен если комп будет раздавать нет


Команду на данный момент "придумал" такую:
cat aptinstall.conf | sed -nr 's/ *?\#.*$//g;/^$/d;H;${x;s/\n/ /g;s/.*/aptitude install \0/;s/ / /p}'


Вопросы:
1. Не изобретаю ли я велосипед - возможно это можно сделать проще?
2. В данной команде все имена пакетов склеиваются в одну строку и команда aptitude install выполняется один раз. Не будет ли тут проблем при большом числе пакетов? Может лучше для каждого отдельно выполнять?
3. Может Вы знаете на какие подводные камни я могу наткнуться?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: aptitude install::список пакетов в файле

Сообщение watashiwa_daredeska »

Ваш вариант у меня не работает вообще.
1. Отчасти. А именно, в той части, за которую может отвечать xargs.
2. При большом числе пакетов проблемы с длинной строкой возникнуть могут. Выполнять для каждного тоже плохо, ибо очень медленно. man xargs

user@localhost

$ cat aptinstall.conf | sed -nr 's/#.*$//;s/[ \t]*//;s/(.)/\1/p;' | sudo xargs aptitude install
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: aptitude install::список пакетов в файле

Сообщение Voral »

watashiwa_daredeska писал(а):
18.02.2010 12:03
Ваш вариант у меня не работает вообще.

у меня работало (правда show вместо install для отладки взял). ну да не важно.

watashiwa_daredeska писал(а):
18.02.2010 12:03
2. При большом числе пакетов проблемы с длинной строкой возникнуть могут. Выполнять для каждного тоже плохо, ибо очень медленно. man xargs

как я понимаю мне нужен ключ -n
т.е

user@localhost

$ cat aptinstall.conf | sed -nr 's/#.*$//;s/[ \t]*//;s/(.)/\1/p;' | sudo xargs -n 10 aptitude install
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: aptitude install::список пакетов в файле

Сообщение sash-kan »

Voral писал(а):
18.02.2010 12:24
-n 10
можете смело увеличить на порядок. список влезет.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
gpamozg
Сообщения: 55
ОС: directadmin

Re: aptitude install::список пакетов в файле

Сообщение gpamozg »

более простой вариант и к тому же официальный -> dpkg --get selection > package.txt. На другой тачке: cat package.txt > dpkg --set selection;aptitude update;aptitude full-upgrade :)
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: aptitude install::список пакетов в файле

Сообщение sgfault »

Voral писал(а):
18.02.2010 11:14
cat aptinstall.conf | sed -nr 's/ *?\#.*$//g;/^$/d;H;${x;s/\n/ /g;s/.*/aptitude install \0/;s/ / /p}'



Немного не по теме, но раз уж вы написали команду:
Зачем '?' в

Код: Выделить всё

s/ *?\#.*$//g;

Тут либо пропущена '.' перед вопросом (хотя, если пропущена, тогда непонятно зачем вообще нужно '.?'), либо '?' просто лишний, либо я чего-то не знаю :-)
И почему
, а не что-нибудь вроде 's/ */ /gp' ?
Спасибо сказали: