GNU/Linux >> Belajar Linux >  >> Linux

Membuat sistem hybrid Linux-Windows dengan Cygwin

Jika Anda belum pernah mendengar tentang Cygwin, Anda siap untuk mengobatinya. Saya telah menggunakannya selama bertahun-tahun untuk menyeragamkan lingkungan saya menjadi satu tempat saya dapat menulis skrip sekali dan mengirimkannya ke mana-mana untuk solusi otomatisasi yang konsisten. Sangat sulit untuk menulis skrip bash yang berfungsi di Linux, di Mac, dan di Unices komersial, dan kemudian harus melompat cepat ke PowerShell dan file batch untuk mencoba mencocokkan tingkat otomatisasi yang dapat saya capai dengan beberapa skrip Bash.

Menurut situs web, Cygwin adalah:

  • Sejumlah besar alat GNU dan Open Source yang menyediakan fungsionalitas yang mirip dengan distribusi Linux di Windows.
  • DLL (cygwin1.dll) yang menyediakan fungsionalitas POSIX API yang substansial.

Dan itu bukan:

  • Cara menjalankan aplikasi asli Linux di Windows. Anda harus membangun kembali aplikasi Anda dari sumber jika Anda ingin menjalankannya di Windows.
  • Cara ajaib membuat aplikasi Windows asli mengetahui fungsionalitas UNIX® seperti sinyal, ptys, dll. Sekali lagi, Anda perlu membuat aplikasi dari sumber jika Anda ingin memanfaatkan fungsionalitas Cygwin.

Catatan:Cygwin bekerja sama baiknya di desktop Windows dan di sistem server.

Mengapa Cygwin?

Cygwin masih relevan jika Anda ingin memiliki perintah *nix asli yang tersedia untuk Anda di platform Windows. Ya, saya tahu tentang Subsistem Windows untuk Linux (WSL), tetapi Cygwin dan WSL tidak sama. Cygwin memberi Anda kekuatan perintah *nix di lingkungan Windows asli Anda. Tidak ada emulasi, tidak ada mesin virtual, dan tidak ada lapisan tambahan antara sistem operasi dan kumpulan utilitas ini. Mereka, pada kenyataannya, perintah open source otentik yang dikompilasi untuk platform Windows.

Menginstal Cygwin

Umumnya, Anda dapat menerima opsi default untuk setiap prompt. Saya memberikan bimbingan ketika ada pilihan yang harus dibuat. Anda dapat memilih sendiri, tetapi menurut saya pilihan ini berfungsi paling baik di lingkungan saya dan untuk cara saya bekerja.

Buka browser di sistem Windows Anda dan arahkan ke situs web Cygwin. Pilih Install Cygwin dengan menjalankan setup-x86_64.exe tautan untuk mengunduh file yang dapat dieksekusi pengaturan. Jalankan file yang dapat dieksekusi untuk memulai instalasi dan klik Berikutnya di Penyiapan Cygwin layar.

Pada Pilih Jenis Pemasangan layar, pilih jenis instalasi yang Anda inginkan. Untuk saya sendiri, saya selalu memilih default, yaitu Install from Internet .

Klik Berikutnya untuk melanjutkan.

Pilih di mana Anda ingin direktori Cygwin dan semua file dukungan dan binari diinstal. Standarnya adalah C:\cygwin64, tapi saya ubah ke C:\cygwin untuk membuat masa depan saya sedikit lebih bahagia. Saya juga mengizinkan semua pengguna memiliki akses ke Cygwin.

Klik Berikutnya untuk melanjutkan.

Masukkan direktori tempat Anda ingin Cygwin mengunduh file-nya. Saya selalu menggunakan C:\Temp. Jika Anda memilih direktori yang tidak ada, penginstal akan meminta Anda untuk membuatnya.

Klik Berikutnya untuk melanjutkan.

Pilih jenis koneksi Internet Anda. Jika Anda memiliki semacam proxy, masukkan pengaturan di sini. Milik saya adalah koneksi langsung. Jika Anda tidak tahu, coba langsung. Jika tidak berhasil, periksa konfigurasi browser Anda untuk pengaturan proxy.

Klik Berikutnya untuk melanjutkan.

Pilih situs unduhan di layar ini. Pilih salah satu dari daftar atau tambahkan milik Anda. Saya selalu memilih mirrors.xmission.com tanpa alasan yang logis -- saya sudah lama menggunakannya, dan berhasil. Saya berasumsi bahwa salah satu pilihan akan berhasil.

Klik Berikutnya untuk melanjutkan.

[ Anda mungkin juga menyukai:Cara menggabungkan sistem Linux ke domain Active Directory ]

Memilih paket

Akhirnya, Anda berada di layar pemilihan paket. Jika Anda tidak memilih apa pun dan melanjutkan dengan penginstalan default, Anda mendapatkan perintah *nix yang lengkap di C:\cygwin\bin direktori. Mereka terlalu banyak untuk dicantumkan, tetapi ini adalah daftar perintah standar.

Saya sarankan Anda membaca dengan teliti kategori yang berbeda dan membuat pilihan berdasarkan apa yang Anda gunakan pada sistem Linux Anda. Saya biasanya memilih OpenSSH, Bash, Bash-completion, Python, Tk/Tcl, dan beberapa aplikasi acak lainnya. Setelah Anda menentukan pilihan, klik Berikutnya untuk melanjutkan.

Tinjau dan konfirmasikan pilihan Anda. Dependensi akan dipenuhi untuk pilihan Anda, jadi jangan khawatir. Klik Berikutnya untuk mulai menginstal paket yang Anda pilih.

Penginstalan mungkin memakan waktu dari beberapa menit hingga hampir satu jam, tergantung pada pilihan Anda dan kecepatan internet.

Layar terakhir memberi tahu Anda bahwa penginstalan telah selesai dan meminta Anda untuk membuat beberapa ikon praktis. Saya selalu membuat ikon. Klik Selesai untuk menyelesaikan proses instalasi.

Menyetel variabel PATH lingkungan

Untuk hasil terbaik, Anda perlu menambahkan direktori C:\cygwin\bin ke variabel lingkungan PATH Anda. Untuk mengatur PATH Sistem agar menyertakan direktori Cygwin bin Anda, cari "lingkungan" dan pilih opsi Panel Kontrol, Edit variabel lingkungan sistem , ketika muncul. Pilih Variabel Lingkungan di Properti Sistem layar.

Pada Variabel Lingkungan layar, pilih Jalur dari Variabel Sistem panel, dan klik Edit... . Klik Baru. Masukkan C:\cygwin\bin ke dalam bidang dan klik OK saat selesai. Klik Oke di layar lain untuk menyimpan entri dan menutup System Properties jendela.

Menyetel variabel lingkungan sistem ini memungkinkan Anda untuk menjalankan perintah Cygwin tanpa memberikan path lengkap ke yang dapat dieksekusi. Ini juga berguna untuk membuat skrip.

Catatan skrip

Sekarang setelah Cygwin terinstal dan binari berada di jalur sistem Anda, Anda mungkin bertanya-tanya bagaimana Anda membuatnya bekerja. Untuk memanggil Bash, buka jendela CMD dan ketik bash <ENTER> . Anda sekarang berada di shell Bash yang bekerja persis seperti Linux Anda. Coba beberapa perintah seperti clear , ls , ls -la , pwd , dan seterusnya.

Ada beberapa perbedaan yang bisa membuat frustasi pengguna baru jika Anda tidak menyadarinya. Di Bash, Anda akan melihat bahwa drive Anda, C:dan D:, dipasang sebagai /cygdrive/c dan /cygdrive/d , Misalnya. Jadi, C:\Temp direktori adalah /cygdrive/c/temp di Cygwin Bash.

Direktori yang familiar seperti / , /usr/bin , dan /usr/lib ada di bawah C:\cygwin dengan C:\cygwin direktori sebagai / . Jika Anda tidak memahami tata letak ini, buka CMD separate terpisah jendela dan CD ke dalam C:\cygwin direktori dan lihat direktori di kedua CMD dan di Bash .

Pertama, daftar CMD.

DIR C:\cygwin

Volume in drive C has no label.
 Volume Serial Number is ACBE-2D0D

 Directory of C:\cygwin

10/15/2020  06:58 AM    <DIR>          .
10/15/2020  06:58 AM    <DIR>          ..
10/15/2020  06:57 AM    <DIR>          bin
10/15/2020  06:58 AM            53,342 Cygwin-Terminal.ico
10/15/2020  06:57 AM                88 Cygwin.bat
10/15/2020  06:58 AM           157,097 Cygwin.ico
10/15/2020  06:57 AM    <DIR>          dev
10/15/2020  06:57 AM    <DIR>          etc
10/15/2020  06:56 AM    <DIR>          home
10/15/2020  06:57 AM    <DIR>          lib
10/15/2020  06:57 AM    <DIR>          sbin
10/15/2020  06:57 AM    <DIR>          tmp
10/15/2020  06:57 AM    <DIR>          usr
10/15/2020  06:57 AM    <DIR>          var
               3 File(s)        210,527 bytes
              11 Dir(s)  31,950,209,024 bytes free

Dan, daftar Bash.

ls /

Cygwin-Terminal.ico		Cygwin.ico	cygdrive	etc	lib	sbin	usr
Cygwin.bat			bin 		dev		home  proc 	tmp	var

Jadi, Anda melihat dari anomali ini bahwa Bash di Windows tidak 100 persen setara dengan *nix Bash. Beberapa skrip akan diterjemahkan secara langsung, sementara yang lain harus dalam ukuran Jendela. Artinya, disesuaikan untuk mengakomodasi perbedaan jalur, perbedaan pemasangan, dan beberapa perbedaan lokasi file. Salah satu aspek yang sangat keren dari hibridisasi lingkungan Windows Anda adalah Anda juga dapat menggunakan perintah baris perintah Windows. Anda dapat dengan mudah mengintegrasikannya ke dalam skrip Anda. Ingatlah untuk memberikan path lengkap ke executable dalam format Cygwin (/cygdrive/c/windows/system32/blah.exe ).

[ Kursus gratis untuk Anda:Tinjauan Teknis Virtualisasi dan Migrasi Infrastruktur. ]

Menutup

Cygwin adalah perangkat lintas platform yang sangat baik, terutama bagi Anda yang harus bekerja di lingkungan yang heterogen, seperti kebanyakan dari kita. Saya tidak bisa menghitung berapa kali saya mengetik ls , atau perintah Linux lainnya, di jendela CMD hanya untuk membuatnya gagal. Cygwin memberi Anda kemampuan yang diperluas untuk menulis skrip sekali dan dapat digunakan di mana saja, dengan sedikit penyesuaian. Bayangkan kemungkinannya. Sekarang, tambahkan Ansible ke dalam campuran dan bayangkan lagi kemungkinannya. Untuk lebih meningkatkan kebahagiaan Anda, semua executable di bawah C:\cygwin\bin yang memiliki ekstensi file .exe juga dapat dijalankan di jendela CMD tanpa mengharuskan Anda berada di Bash. Menarik? Saya pikir begitu.


Linux
  1. Selidiki server Windows yang disusupi

  2. Perbaiki citra sistem dengan DISM

  3. Panggilan Sistem di windows &Native API?

  1. Perbedaan antara GNUWin32 dan cygwin

  2. Batalkan panggilan sistem dengan ptrace()

  3. Membuat tautan windows di Linux?

  1. Memahami panggilan sistem di Linux dengan strace

  2. Perintah Shutdown Linux (dengan Contoh)

  3. Menjadwalkan tugas sistem dengan Cron di Linux