GNU/Linux >> Belajar Linux >  >> Linux

Cara menanyakan file, paket, dan repositori di Linux

Memiliki beberapa pengalaman dengan Linux, Anda mungkin tahu bahwa Anda tidak bisa hanya berbagi perintah atau utilitas antar sistem. Alasan mengapa Anda tidak bisa begitu saja menyalin file yang dapat dieksekusi dari satu sistem ke sistem lain adalah karena ketergantungan, seperti perpustakaan dan paket pendukung lainnya. Beberapa utilitas pasti bisa disalin tapi ini tidak universal begitu. Jika Anda lupa paket mana yang Anda instal yang menyertakan nslookup perintah, misalnya, Anda memerlukan cara untuk menemukannya.

Selanjutnya, setelah Anda menemukan paket yang berisi perintah, Anda mungkin ingin mencari tahu dari repositori mana Anda menginstal paket tersebut. Repositori dasar AppStream , BaseOS , dan Ekstra mengandung banyak, tapi tentu saja tidak semua paket yang mungkin Anda butuhkan atau temui. Dalam artikel ini, saya mengeksplorasi beberapa metode query sistem untuk menemukan repositori, paket, dan perintah terkait.

  • Paket berisi perintah, utilitas, dan pustaka
  • Paket memiliki ketergantungan
  • Repositori berisi, menyimpan, dan menyediakan paket

Mengklasifikasikan jenis file

Apakah utilitas yang Anda gunakan berupa skrip, teks biasa, atau perintah? Apakah itu dikompilasi? Di mana lokasi filenya? Anda mungkin menginginkan beberapa informasi dasar tentang utilitas. which perintah menempatkan file jika ada di jalur Anda. Anda perlu mencari file sebelum dapat mengidentifikasinya lebih lanjut.

$ which mtr

/usr/sbin/mtr

Untuk menampilkan informasi jenis file, file perintah sangat diperlukan.

$ file mtr
mtr: cannot open `mtr' (No such file or directory)

$ file /usr/sbin/mtr
/usr/sbin/mtr: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d34479cefafe7299b65d8375769c63978c6c453f, stripped, too many notes (256)

Upaya pertama gagal karena file perintah tidak mengetahui lokasi mtr memerintah. Setelah path lengkap diberikan ke file , informasi akan ditampilkan.

Berikut adalah contoh file yang dapat dieksekusi yang tidak dikompilasi.

$ file /usr/sbin/ifcfg
/usr/sbin/ifcfg: POSIX shell script, ASCII text executable

Seperti yang Anda lihat, file perintah adalah perintah yang penting untuk diketahui dan yang pasti akan Anda gunakan sepanjang karier Anda.

[ Pembaca juga menyukai:Manajemen paket Linux dengan YUM dan RPM ]

Menemukan paket

nslookup perintah adalah salah satu yang sering Anda gunakan tetapi tidak diinstal pada salah satu sistem di pekerjaan baru Anda. Anda ingin menginstalnya tetapi Anda tidak dapat mengingat paket mana yang memuatnya dan mencoba menginstalnya sebagai nslookup gagal.

# dnf -y install nslookup
Last metadata expiration check: 2:44:51 ago on Tue 10 Nov 2020 03:27:27 PM CST.
No match for argument: nslookup
Error: Unable to find a match: nslookup

Untuk menemukan paket yang berisi nslookup , Anda dapat melakukan pencarian "terbalik" menggunakan rpm perintah.

# rpm -qf nslookup
error: file /root/nslookup: No such file or directory

Apa yang salah di sini? rpm perintah tidak dapat menemukan nslookup tetapi diinstal karena Anda telah menggunakannya. Tunggu. Lihat jalurnya:/root/nslookup . Tidak ada nslookup perintah di direktori (rumah root) Anda saat ini. Cari nslookup menggunakan which perintah dan kemudian keluarkan rpm perintah.

# which nslookup
/usr/bin/nslookup

# rpm -qf /usr/bin/nslookup
bind-utils-9.11.13-6.el8_2.1.x86_64

Anda melihat nslookup adalah bagian dari bind-utils kemasan. Sekarang Anda dapat menyalinnya ke sistem Anda yang lain dan menggunakannya seperti biasa.

 # nslookup google.com
/opt/nslookup: error while loading shared libraries: libdns.so.1107: cannot open shared object file: No such file or directory

Kesalahan memberitahu Anda bahwa nslookup perintah memiliki dependensi yang belum terpenuhi pada sistem baru tempat Anda menyalinnya. Solusinya adalah menginstalnya satu per satu ke setiap sistem menggunakan DNF/YUM.

Mengungkapkan ketergantungan paket

Anda sangat menyukai nslookup perintah, dan Anda ingin membuatnya tersedia di semua sistem Anda. Anda menyadari setelah upaya yang gagal bahwa Anda tidak dapat begitu saja menyalinnya ke sistem lain dan mengharapkannya berfungsi. Setelah banyak penelitian, Anda menemukan bahwa nslookup perintah memiliki beberapa dependensi yang harus dipenuhi. Apa saja dependensi itu?

# dnf deplist nslookup
Last metadata expiration check: 3:00:24 ago on Tue 10 Nov 2020 03:27:27 PM CST.

Apakah ini berarti tidak ada ketergantungan untuk nslookup ? Tidak. Ini berarti Anda mencoba menemukan dependensi untuk sebuah perintah, bukan untuk sebuah paket.

# dnf deplist bind-utils

Last metadata expiration check: 0:00:14 ago on Tue 10 Nov 2020 06:29:37 PM CST.
package: bind-utils-32:9.11.13-6.el8_2.1.x86_64
  dependency: /usr/libexec/platform-python
   provider: platform-python-3.6.8-23.el8.i686
   provider: platform-python-3.6.8-23.el8.x86_64
  dependency: bind-libs(x86-64) = 32:9.11.13-6.el8_2.1
   provider: bind-libs-32:9.11.13-6.el8_2.1.x86_64
 *** longer list of dependencies ***
  dependency: rtld(GNU_HASH)
   provider: glibc-2.28-101.el8.i686
   provider: glibc-2.28-101.el8.x86_64

Ingat bahwa paket memiliki dependensi. Mencantumkan dependensi dapat bermanfaat jika Anda ingin memenuhinya secara manual atau jika menurut Anda dependensi baru dapat mengganggu atau tidak kompatibel dengan paket dan dependensi yang sudah diinstal pada sistem Anda.

Mengidentifikasi repositori

Anda melihat sesama sysadmin menggunakan alat informasi perangkat keras (hwinfo ) perintah pada sistemnya. Anda mencoba perintah di sistem Anda tetapi Anda menerima kesalahan "perintah tidak ditemukan". Anda kemudian mencoba menginstalnya.

# dnf -y install hwinfo

Last metadata expiration check: 0:09:34 ago on Tue 10 Nov 2020 06:42:15 PM CST.
No match for argument: hwinfo
Error: Unable to find a match: hwinfo

Anda meminta rekan kerja Anda untuk memberi tahu Anda dari mana dia mendapatkan hwinfo kemasan. Dia melakukan kueri berikut untuk menemukan sumbernya.

# dnf list hwinfo

Last metadata expiration check: 0:11:17 ago on Tue 10 Nov 2020 06:42:15 PM CST.
Installed Packages
hwinfo.x86_64                         21.47-9.el8                             @epel

Anda perhatikan bahwa sumber tampaknya merupakan repositori yang diidentifikasi sebagai epel . Anda selanjutnya memintanya untuk memberi tahu Anda cara mengatur epel gudang. Dia ingat epel . itu sebenarnya adalah paket RPM yang dapat diinstal tetapi tidak ingat nama lengkapnya. Dia melakukan kueri berikut untuk mengidentifikasinya.

# rpm -qa |grep epel
epel-release-8-8.el8.noarch

Sekarang Anda dapat menginstal epel-release paket dan kemudian instal hwinfo paket.

Catatan:epel-release repositori adalah Paket Ekstra untuk konfigurasi repositori Enterprise Linux dan merupakan hal pertama yang saya instal pada sistem baru yang tidak memilikinya.

[ Unduhan gratis:Lembar contekan perintah Linux tingkat lanjut. ]

Menutup

Linux memberi administratornya banyak utilitas dan perintah praktis untuk menemukan informasi tentang sistem dan komponennya. Anda perlu menambahkan perintah dan utilitas ini ke kotak alat sysadmin Anda. Seperti yang Anda lihat dari artikel ini, Anda tidak perlu mengetahui setiap opsi perintah yang tidak jelas untuk mendapatkan apa yang Anda butuhkan. Gunakan man halaman untuk itu.


Linux
  1. Cara Mengetahui Direktori dan File Teratas (Ruang Disk) di Linux

  2. Cara Mengganti Nama File di Linux

  3. Cara Memisahkan Dan Menggabungkan File Dari Baris Perintah Di Linux

  1. Apa itu Perintah Chown di Linux dan Cara Menggunakannya

  2. Bagaimana Cara Mengompres dan Mengekstrak File Menggunakan Perintah tar di Linux?

  3. Bagaimana Cara Menyalin File di Linux dan Unix? Contoh Perintah 10 cp

  1. Cara Menghapus File dan Direktori di Linux dari Command Line

  2. Cara Mengarsipkan dan Mengompresi File di Linux

  3. Cara Menghapus File dan Direktori di Command Line Linux [Tutorial Pemula]