Menggunakan file untuk menginstal paket dengan apt-get

9

Saya merasa sangat nyaman untuk menginstal paket pada mesin baru melalui file paket seperti brewfiles, caskfiles, dockerfiles, package.json dll.

Apakah ada alternatif untuk apt-get ini karena saya masih menggunakannya
melalui commandline with

apt-get install pkg1 pkg2 pkg3…

?

thibmaek
sumber
2
Apakah perlu satu? Anda bisa menggunakan xargs: xargs -P1 apt-get install < list-of-packages.
muru
@muru yah saya tidak benar-benar tahu cara kerja xargs (membaca man sekarang) tetapi saya tidak berpikir itu adalah solusi untuk membuat paket terpusat dalam satu file? Saya masih harus secara manual mendaftar file setelah <sejak menggunakan file .txt dengan tiga paket di dalamnya tidak bekerja dengan perintah ini (diuji pada Debian)
thibmaek
1
yang <merupakan shell redirection. Untuk banyak file, gunakan:cat file1 file2 .. | xargs -P1 apt-get install
muru

Jawaban:

13

Seperti yang ditentukan dalam komentar pertanyaan Anda, Anda dapat membuat file teks sederhana, disebut packages.txt, daftar paket yang akan diinstal:

iceweasel
terminator
vim

dan kemudian jalankan perintah berikut:

cat packages.txt | xargs sudo apt-get install

xargs digunakan untuk meneruskan nama paket dari packages.txtfile ke baris perintah. Dari halaman manual:

xargs membaca item dari input standar, dibatasi oleh blank (yang dapat dilindungi dengan tanda kutip ganda atau tunggal atau backslash) atau baris baru, dan menjalankan perintah (defaultnya adalah / bin / echo) satu atau lebih kali dengan argumen awal diikuti oleh item dibaca dari input standar.

Ortomala Lokni
sumber
9

Meningkatkan sedikit pada jawaban @ ortomala-lokni, Anda dapat memberikan file secara langsung sebagai argumen untuk xargs:

xargs -a packages.txt sudo apt-get install

Opsional Anda dapat memberikan xargsyang -rpilihan untuk mencegah apt-getpanggilan dari yang dijalankan sama sekali jika Anda packages.txttidak berisi karakter non-spasi.

quazgar
sumber
Ini mungkin sebuah keganjilan dari Alpine / BusyBox, tapi -aarg tidak didokumentasikan dan tampaknya tidak bekerja di sana: xargs: unrecognized option: a. Output versi saya yang ditampilkan adalahBusyBox v1.27.2 (2017-12-12 10:41:50 GMT) multi-call binary.
Taylor Edmiston
Menggunakan jawaban yang diterima menghasilkan permintaan Y / n yang dibatalkan dari apt. Menggunakan ini berhasil. Terima kasih!
Ok Letsdothis
1

masukkan deskripsi gambar di sini

ini berfungsi baik untuk saya, pastikan Anda memiliki xarg terbaru, atau periksa apakah ia memiliki opsi -a atau tidak dengan opsi bantuan (xargs --help)

Chinni Diwakar
sumber
5
Jawaban ini memiliki masalah aksesibilitas: Teks dalam gambar, tidak dapat dibaca oleh orang buta.
ctrl-alt-delor
0

Selain solusi skrip yang lebih umum, Anda dapat membuat paket deb.

Anda akan perlu

  • equivs-build, untuk membangun deb. Deb hanya dapat berisi dependensi. Ini adalah pembuat deb yang disederhanakan.
  • gdebi untuk menginstal deb.

Ini akan bekerja pada semua sistem berbasis debian (sistem yang menggunakan file apt / deb).

Keuntungan melakukannya dengan file deb, tidak seperti skrip shell, adalah lebih mudah untuk membatalkan, Anda dapat menghapus deb, atau mengkonfigurasi ulang deb, dan menginstalnya kembali (ini akan menyebabkan file menjadi ditambahkan dan dihapus).

ctrl-alt-delor
sumber