Використання файлу для встановлення пакетів з apt-get


9

Мені дуже зручно встановлювати пакети на новій машині через файли пакунків, такі як файли, файли, докерфіли, пакет.json тощо.

Чи є альтернатива цьому для apt-get, оскільки я все ще просто використовую його за
допомогою командної лінії

apt-get install pkg1 pkg2 pkg3…

?


2
Чи потрібна вона? Ви можете використовувати xargs: xargs -P1 apt-get install < list-of-packages.
муру

@muru добре, я насправді не знаю, як працює xargs (читає людина зараз), але я не думаю, що це рішення централізації пакетів в одному файлі? Мені все одно доведеться вручну перераховувати файли після <оскільки використання файлу .txt з трьома пакунками в ньому не працює з цією командою (перевірено на Debian)
thibmaek

1
<це оболонка перенаправлення. Для декількох файлів використовуйте:cat file1 file2 .. | xargs -P1 apt-get install
muru

Відповіді:


13

Як зазначено в коментарях до вашого запитання, ви можете створити простий текстовий файл, який називається packages.txt, перелічуючи пакунки для встановлення:

iceweasel
terminator
vim

а потім запустіть таку команду:

cat packages.txt | xargs sudo apt-get install

xargs використовується для передачі імен пакетів з packages.txtфайлу в командний рядок. На чоловіковій сторінці:

xargs зчитує елементи зі стандартного вводу, розмежовані пробілами (які можна захистити подвійними або одиничними лапками або зворотною косою рисою) або новими рядками та виконує команду (за замовчуванням / bin / echo) один чи більше разів з будь-якими послідовними початковими аргументами за елементами, прочитаними зі стандартного введення.


9

Поліпшивши трохи відповідь @ ortomala-lokni, ви можете надати файл безпосередньо як аргумент xargs:

xargs -a packages.txt sudo apt-get install

При бажанні ви можете дати xargsна -rможливість запобігти apt-getвиклик від того , працює взагалі , якщо ваш packages.txtне містить будь - або не-пробільних символів.


Це може бути особливістю Alpine / BusyBox, але -aаргументом був задокументований і не схоже , щоб працювати там: xargs: unrecognized option: a. Показана моя версія версіїBusyBox v1.27.2 (2017-12-12 10:41:50 GMT) multi-call binary.
Тейлор Едмістон,

Використання прийнятої відповіді призвело до перерваного запиту Y / n влучного. Використовуючи це, працювало. Дякую!
Ок Летсдотіс

1

введіть тут опис зображення

вона працює обома способами для мене, переконайтеся, що у вас є останні xargs, або іншим чином перевірте, чи є у нього -a варіант чи ні, за допомогою довідки (xargs --help)


5
Ця відповідь має проблеми з доступністю: Текст у зображеннях не може читати незрячі люди.
ctrl-alt-delor

0

Як і більш загальні сценарії рішення, ви можете створити пакет дебюту.

Ви будете потребувати

  • equivs-build, щоб побудувати деб. Деб може містити лише залежності. Це спрощений конструктор деб.
  • gdebi встановити деб.

Це буде працювати у всіх системах на базі debian (системах, що використовують apt / deb-файли).

Перевага робити це з файлами deb, на відміну від скрипту оболонки, полягає в тому, що його набагато простіше скасувати, ви можете видалити деб або повторно налаштувати деб і повторно встановити його (це призведе до того, що файли будуть додано та вилучено).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.