GNU/Linux >> Belajar Linux >  >> Linux

Tujuan Perintah 'instal'?

Saya telah melihat install perintah yang digunakan di banyak Makefile, dan keberadaan serta penggunaannya agak membingungkan. Dari halaman manual, sepertinya tiruan dari cp dengan fitur yang lebih sedikit, tetapi saya menganggap itu tidak akan digunakan kecuali memiliki beberapa keunggulan dibandingkan cp . Ada apa?

Jawaban yang Diterima:

install tidak hanya menyalin file tetapi juga mengubah kepemilikan dan izinnya dan secara opsional menghapus simbol debug dari file yang dapat dieksekusi. Ini menggabungkan cp dengan chown , chmod dan strip . Ini adalah alat tingkat tinggi yang nyaman untuk menyelesaikan urutan umum tugas dasar.

Keuntungan install lebih dari cp untuk menginstal executable adalah jika target sudah ada, itu menghapus file target dan membuat yang baru. Ini menghilangkan properti saat ini seperti daftar dan kemampuan kontrol akses, yang dapat dilihat sebagai sisi positif dan sisi negatifnya. Saat memperbarui executable, jika ada instance yang berjalan dari executable ini, mereka tetap berjalan tanpa terpengaruh. Sebaliknya, cp memperbarui file di tempat jika ada. Pada sebagian besar varian Unix, ini gagal dengan kesalahan EBUSY¹ jika targetnya adalah executable yang sedang berjalan; pada beberapa hal itu dapat menyebabkan target mogok karena memuat bagian kode secara dinamis dan memodifikasi file menyebabkan kode yang tidak masuk akal dimuat.

install adalah perintah BSD (ditambahkan di 4.2BSD, yaitu pada awal 1980-an). Itu belum diadopsi oleh POSIX.

“File teks sibuk”. Dalam konteks ini, "file teks" berarti "file biner yang dapat dieksekusi", untuk alasan historis yang tidak jelas.


Linux
  1. Cara menginstal perangkat lunak dari baris perintah Linux

  2. Apakah alat baris perintah pdftotext untuk mac?

  3. Apa tujuan dari cd ` (backtick)?

  1. Kuasai perintah Linux ls

  2. Pengantar perintah diff

  3. Tujuan Perintah Hash?

  1. Cara Menginstal dan Menggunakan Perintah Ping di Linux

  2. Perintah cari di Linux

  3. bc:perintah tidak ditemukan