Pengenalan

Pengenalan

Artikel ini adalah kesinambungan logik artikel PXE kami, kerana setelah membaca ini, anda akan dapat boot rangkaian dan sebenarnya memasang pengedaran pilihan anda. Tetapi ada kegunaan lain untuk mewujudkan repositori anda sendiri. Sebagai contoh, jalur lebar. Sekiranya anda menguruskan rangkaian dan semua sistem (atau beberapa) menjalankan pengedaran yang sama, lebih mudah bagi anda untuk hanya bersempena dengan cermin yang berdekatan dan berkhidmat kepada anda sendiri. Seterusnya, mungkin anda mempunyai beberapa pakej yang dibuat oleh anda bahawa distro anda tidak akan menerima di pokok utama, tetapi pengguna mendapati mereka berguna. Dapatkan nama domain, sediakan pelayan web dan di sana anda pergi. Kami tidak akan memperincikan persediaan webserver di sini, hanya tugas pemasangan asas dan persediaan asas repositori untuk sistem fedora atau debian. Oleh itu, anda dijangka mempunyai perkakasan yang diperlukan (pelayan dan peralatan rangkaian yang diperlukan, bergantung pada keadaan) dan beberapa pengetahuan mengenai Linux dan Webservers. Jadi, mari kita mulakan.

CATATAN:Artikel ini dipindahkan dari linuxcareer domain sebelumnya.com.

Mewujudkan repositori di sistem fedora

Memasang alat

Fedora mempunyai alat yang dipanggil Createrepo yang memudahkan tugas di tangan. Oleh itu, semua yang perlu kita pasang ialah dan httpd sebagai webserver:

 # yum Pasang createrepo httpd 

Menyediakan repositori

Sekarang, setelah menubuhkan webserver anda, kami akan mengandaikan bahawa direktori root adalah ar /var /www. Kita perlu membuat direktori yang diperlukan dalam perkara yang teratur (berasa bebas untuk menyesuaikan diri dengan rasa jika perlu atau hanya mengikuti susun atur rasmi):

 # cd/var/www/html # mkdir -p fedora/15/x86_64/asas # mkdir fedora/15/x86_64/kemas kini 

Itu sahaja buat masa ini. Apa yang perlu kita lakukan ialah rsync ke folder yang dicipta dan pastikan kita mempunyai banyak ruang yang ada:

 # rsync -avrt rsync: // ftp.Heanet.IE/pub/fedora/linux/siaran/15/semuanya \/x86_64/os/pakej//var/www/html/fedora/15/x86_64/asas 

Sekarang gunakan Createrepo untuk folder asas:

 # createrepo/var/www/html/fedora/15/x86_64/asas 

Ini adalah wajib, kerana ia akan mewujudkan direktori repodata yang diperlukan oleh yum semasa menggunakan repositori anda. Sekarang mari kita ulangi langkah yang sama seperti di atas, tetapi kali ini kita akan mendapat kemas kini:

 # rsync -avrt rsync: // ftp.Heanet.IE/pub/fedora/linux/\ kemas kini/15/x86_64//var/www/html/fedora/15/x86_64/kemas kini 

Akhirnya, kami mengesyorkan anda menyemak sama ada HTTPD ditetapkan untuk memulakan boot dan juga menggunakan Cron untuk mendapatkan kemas kini secara teratur:

 # Systemctl Dayakan Httpd.perkhidmatan # crontab -e 

Ingat bahawa perintah rsync yang akan ditambah adalah yang kedua, yang berkaitan dengan kemas kini dan SistemCTL hanya tersedia di Fedora 15 atau lebih tinggi. Gunakan ntsysv atau chkconfig pada sistem fedora yang lebih tua.

Persediaan Pelanggan

Anda mesti memberitahu mesin yang akan mendapat kemas kini dari pelayan anda di mana untuk mencarinya, jadi kami mulakan dengan membuat .fail repo:

# ini akan menjadi asas-lagu.repo [base -lan] name = fedora $ releasever - $ basearch failoverMethod = priority baseUrl = http: // 192.168.1.2/Fedora/$ Releasever/$ Basearch/Base Enabled = 1 # Pastikan anda melumpuhkan rasmi .fail repo dengan didayakan = 0 gpgcheck = 0 # ini akan dikemas kini-LAN.repo [kemas kini -lan] name = fedora $ releasever - $ basearch - kemas kini failOverMethod = priority baseUrl = http: // 192.168.1.2/Fedora/$ Releasever/$ Basearch/Updates GpgCheck = 0 

Sekarang, buatlah

 # kemas kini yum 

Dan anda sudah bersedia untuk pergi.

Menandatangani pakej

Seperti yang ditunjukkan oleh salah satu pembaca kami, seseorang harus mengetahui isu keselamatan semasa memasang pakej. Perisian boleh dimuat turun dari pelayan yang dikompromikan dan mungkin mengandungi executable yang berniat jahat. Yum (dan Apt, Zyper dan sistem pengurusan pakej lain) mengatasi masalah ini dengan menggunakan kekunci GPG. Kami bercakap mengenai mencerminkan repositori fedora. Pakej ini sudah ditandatangani, dan kunci boleh didapati di/etc/pki/rpm-gpg. Sekiranya anda pernah menggunakan repo fedora rasmi sebagai pelanggan sebelum membolehkan repositori tempatan anda, direktori itu akan mengandungi kunci yang diperlukan. Jika tidak, kunci boleh dimuat turun dari getfedora.org/kunci/. Sekarang, kita harus mengubah kita .fail repo untuk membolehkan gpgcheck dan memberitahu yum di mana kunci.

# Ini adalah satu-satunya baris yang perlu diubah gpgcheck = 1 gpgkey = file: /// etc/pki/rpm-gpg/rpm-gpg-key-fedora 

Sekiranya anda menggunakan repositori pakej tersuai tempatan, Yum akan mengadu bahawa pakej tersuai anda tidak ditandatangani. Anda boleh menggunakan bendera yum -nogpgcheck jika anda adalah penyelenggara cermin/repositori dan anda hanya menyampaikan pakej ke organisasi anda, atau, cara yang selamat, menandatangani pakej tersuai juga. Ini kerana pelayan yang memegang repositori adat/tempatan juga boleh dikompromikan. Oleh itu, anda perlu membuat kekunci GPG pada pelayan dan menggunakan RPM untuk menandatangani pakej tersuai:

$ gpg --gen-key $ gpg-list-sigs

Seperti yang anda lihat, userid berada dalam kes kami "kerjaya linux". Sekarang untuk menjadikan awam utama:

 $ GPG --Armor --export "UserId"> My.kunci.fail.ASC $ GPG --KeyServer PGP.MIT.edu--send-key "userid" 

Sudah tentu, userid anda akan berbeza, jadi mengubah maklumat dengan sewajarnya. Ambil perhatian bahawa di Fedora 16, di mana kami menguji ini, yang boleh dilaksanakan dinamakan GPG2 dan bukannya GPG.

Kita hanya perlu membuat a .Fail rpmmacros di direktori rumah pengguna yang akan menandatangani pakej, dan meletakkan perkara berikut di sana:

%_signature gpg %_gpg_name userid %_gpgbin/usr/bin/gpg2 

Perintah untuk menandatangani pakej, sekarang semuanya ditetapkan, akan

 $ rpm --addsign name_of_package.rpm

Sekarang pelanggan memuat turun dari repo tersuai anda akan menggunakan 'rpm -import $ kekunci' untuk dapat memuat turun pakej tersuai tersebut.

Mewujudkan repositori di sistem debian

Memasang

Oleh kerana struktur repositori Debian lebih berbelit -belit, anda akan melihat bahawa ia memerlukan sedikit lebih banyak kerja di sisi pelayan, tetapi kurang di sisi klien. Pada setiap masa, akan ada tiga bahagian: stabil, ujian dan tidak stabil (tidak mengira eksperimen) yang masing-masing mempunyai tiga komponen bergantung pada bagaimana pakej dilesenkan: utama, sumbangan dan tidak bebas. Keputusan anda untuk membuat bahagian pengedaran yang anda mahukan dicerminkan, tetapi tugas kami untuk memberi amaran. Terdapat banyak alat yang boleh anda gunakan untuk membuat repositori tersuai dengan pakej tersuai anda sendiri, tetapi kami akan berpegang pada pakej rasmi buat masa ini. Oleh itu, kami akan kembali kepada persediaan kami untuk artikel PXE dan membuat repo tempatan untuk pemasangan. Kami memerlukan webserver, jadi mari pasangnya:

 # Aptitude Pasang Apache2 

Pastikan Apache dikonfigurasikan dan bermula sebelum anda meneruskan.

Persediaan pelayan

Direktori root lalai, sama seperti di fedora, adalah /var /www, jadi marilah kita membuat direktori debian di sana:

 # mkdir/var/www/debian 

Orang -orang Debian mengesyorkan FTPSync, koleksi skrip perl bertujuan untuk membantu anda mendapatkan apa yang anda perlukan ke cermin tempatan anda. Minat khusus adalah --tidak termasuk pilihan, kerana anda tidak mahu mendapatkan semua kandungan arkib Debian (hanya AMD64, hanya utama dan sumbangan, hanya memerah, tanpa CD, dll.). Sekiranya anda ingin membuat repositori untuk digunakan selepas pemasangan, tunjuk anda/etc/apt/sumber.Senaraikan ke direktori yang menyambung pakej (anda sudah mempunyai model kerja di sana) dan itu sahaja. Sebagai contoh:

 Deb http: // 192.168.1.2/Debian memerah utama 

Tetapi mari kita lihat secara terperinci apa yang anda perlukan untuk memuat turun jika anda tidak suka menggunakan ftpsync. Debian (dan Ubuntu, dan mungkin derivatif debian lain) mempunyai pakej yang dinamakan apt-utils, yang menawarkan, antara lain, apt-ftparchive program yang akan kami gunakan untuk repositori tersuai kami. Jadi…

 # Aptitude memasang apt-utils 

akan mendapatkan alat yang diperlukan pada sistem anda. Kami sudah mempunyai direktori asas yang dibuat di webserver kami, jadi kami memerlukan subdirektori yang disesuaikan untuk keperluan kami:

 # cd/var/www/debian # mkdir -p kolam renang/utama # mkdir kolam/contrib # mkdir -p dists/squeeze/main/binary -amd64 # mkdir -p dists/squeeze/contrib/binari -amd64 # mkdir # mkdir # mkdir # mkdir # mkdir # mkdir # mkdir # mkdir .cache 

Sekarang kita mempunyai struktur direktori di tempat, mari kita buat fail konfigurasi yang diperlukan untuk membantu mencari dan mengindeks perisian kami. Sila ambil perhatian bahawa anda boleh menggunakan persediaan ini untuk mencerminkan pakej debian rasmi atau membuat repositori dengan pakej anda sendiri, kerana langkah -langkahnya sama.

Fail pertama kedua-dua kita perlu membuat (kedua-duanya akan tinggal di/var/www/debian) dinamakan APT-Release.Conf.

 # cd/var/www/debian # $ editor apt-release.Conf 

Kandungan yang berkaitan dengan keperluan kita seperti yang ditunjukkan di atas, akan menjadi seperti ini:

Apt :: ftParchive :: Release :: CodeName "Squeeze"; Apt :: ftParchive :: Release :: Asal "Linuxcareer.com "; apt :: ftParchive :: Release :: komponen" Sumbangan Utama "; Apt :: FtParchive :: Release :: Label" Linuxcareer.com debian repo "; apt :: ftParchive :: Release :: Architectures" amd64 "; apt :: ftParchive :: Release :: Suite" Squeeze "; 

Anda juga boleh menggunakan apt-ftparchive untuk menghasilkan fail konfigurasi berdasarkan argumen baris arahan. Gunakan pendekatan apa sahaja yang anda sukai.

Fail konfigurasi kedua dinamakan apt-ftparchive.conf dan 'kandungannya akan kelihatan seperti ini:

 Dir archivedir "."; Cacheedir"./.cache ";; lalai pakej :: compress". gzip bzip2 "; kandungan :: compress". GZIP BZIP2 ";; Pakej Treedefault Bincachedb"-$ (Seksyen)-$ (Arch).db "; direktori" kolam/$ (seksyen) "; pakej" $ (dist)/$ (seksyen)/binari-$ (arch)/bungkusan "; kandungan" $ (dist)/kandungan-$ (arch) "; ; Pokok "dists/squeeze" seksyen "sumbangan utama"; arkitek "amd64"; 

Seperti yang anda lihat, sintaks adalah sangat jelas mengenai kedua-dua fail.

Demi contoh, kami sekarang akan memuat turun a .Deb dari cermin debian untuk menggambarkan idea kami dengan betul.

 # cd/var/www/debian/kolam/utama # wget -c ftp: // ftp.Heanet.iaitu/cermin/ftp.Debian.org/debian/kolam/utama/\ p/patch/patch_2.6.1.85-423D-3_AMD64.Deb 

Sekarang mari kita menghasilkan kandungannya (ini mesti diulang setiap kali anda menambah atau mengeluarkan pakej).

 # cd/var/www/debian # apt-ftparchive menjana apt-ftparchive.conf # apt-ftparchive -c apt-release.Conf Release Dists/Squeeze> \ Dists/Squeeze/Release 

Tindakan ini melakukan apa yang disebut "membina repositori". Sekarang, seperti yang diarahkan di atas, tambahkan garis ke sumber anda.Senaraikan dan anda boleh mendapat akses ke repositori perisian anda. Sekiranya anda perlu menjadi cermin debian dan masih tidak mewah ftpsync, gunakan rsync dengan direktori jarak jauh bernama kolam/$ seksyen dan pergi mendapatkan kopi atau sesuatu. Juga, gunakan cermin, jangan terlalu banyak FTP.Debian.org, sila.

Menandatangani pakej

Sekiranya anda ingin menggunakan imej CD/DVD/Blu-ray untuk menyampaikan kandungan kepada pelanggan anda, fail pelepasan pada imej media optik tidak ditandatangani secara lalai. Tetapi jika anda berkhidmat dengan rsync'ing kandungan cermin, kemungkinan anda tidak perlu melakukan apa -apa. Sekiranya anda mempunyai repositori tersuai, inilah cara melakukannya. Pertama, seperti dalam contoh Fedora, menghasilkan kunci GPG:

 $ gpg --gen-key 

Sekarang, kerana Bug #639204 di DeBsign (kemas kini terakhir Ogos ini), nampaknya kita perlu mengambil laluan alternatif. Oleh kerana pakej Debian pada dasarnya hanya arkib AR, kami akan menggunakan cara yang lebih rendah untuk menandatangani pakej kami:

 $ ar x pakej_name.Deb $ Cat Debian-Binary Control.tar.data GZ.tar.gz> tempfile $ gpg -abs -o _gpgorigin tempfile $ ar rc pakej_name.Deb _gpgorigin Kawalan Binari Debian.tar.data GZ.tar.Gz 

Jadi, apa yang kami lakukan di sini adalah mengekstrak .Fail Deb dengan AR, menggabungkan kandungannya ke fail sementara (fikiran pesanan), menandatangani fail itu kemudian mengulang semula .Deb ke 'Negeri Asalnya. Sekarang kita perlu mengeksport kunci GPG (seperti yang anda lihat, prosesnya tidak berbeza dengan yang digunakan di Fedora).

 $ gpg --export -a> mydebsign.ASC 

Sekarang mari kita mengeluarkan kunci untuk penggunaan selanjutnya:

 $ gpg - -fingerprint 

Ingat empat kumpulan terakhir dalam cap jari utama (seperti yang dilihat di bawah), kerana mereka akan menjadi ID utama, yang akan kami gunakan kemudian.

Pada mesin klien, pastikan anda telah dipasang Debsig-Verify, maka anda boleh membuat tempat untuk kunci:

 # mkdir/usr/share/debsig/keyrings/$ key_id 

Seperti yang anda lihat dalam tangkapan skrin, ID utama contoh kami ialah 8760C540B4FC5C21. Sekarang mari kita mengimport kunci:

 # gpg --no-default-keyring --keyring \/usr/share/debsig/keyrings/$ key_id/deBsign.GPG --Mport MyDebsign.ASC 

Sekarang, inilah bahagian yang rumit: kita memerlukan fail dasar untuk kunci. Bahasa yang digunakan adalah XML, tetapi tidak perlu bimbang: dalam/usr/share/doc/debisg-verify/contoh anda akan menemui fail bernama Generic.Pol yang boleh disalin ke suatu tempat untuk diedit dan dinamakan semula. Contoh fail sedemikian boleh kelihatan seperti itu:

 xmlns = "http: // www.Debian.org/debsig/1.0/">  Nama = "Kerjaya Linux" Description = "Pakej yang ditawarkan oleh kerjaya Linux"/>   Type = "Origin" File = "DeBsign.gpg "/>   Minoptional = "0">  Type = "Origin" File = "DeBsign.gpg "/>  

Apa yang anda lihat di atas hanyalah bahagian penting dari fail dasar. Setelah memeriksa dengan contoh dan membuat perubahan yang diperlukan, simpan fail ini ke/etc/debsig/polisi/$ key_id/$ policy_name.pol. Selepas langkah ini, jika anda mengikuti langkah-langkah dengan betul, anda boleh menggunakan Debsig-Verify dengan nama pakej sebagai hujah untuk memeriksa pakej anda yang dimuat turun. Terima kasih kepada PurpleFloyd atas artikelnya yang berguna mengenai perkara ini.

Persediaan Pelanggan

Oleh itu, mari kita mulakan mesin klien kami, pastikan ia disediakan untuk boot dari rangkaian dan, apabila anda diminta memilih cermin, pilih "Masukkan maklumat secara manual". Masukkan IP pelayan anda, maka lokasi relatif kepada /var /www (debian, dalam kes kami) dan anda harus bersedia untuk memasang.

Kesimpulan

Seseorang tidak pernah dapat menekankan pentingnya menjimatkan jalur lebar, walaupun di rangkaian kecil. Sudah tentu ada kelebihan lain untuk pendekatan cermin tempatan, seperti melayani perisian tersuai untuk syarikat anda (patch khas yang digunakan atau hanya berubah untuk memenuhi keperluan syarikat yang lebih baik) atau melayani sekeping perisian anda yang dibungkus untuk pengedaran kegemaran anda.

Tutorial Linux Berkaitan:

  • Cara Mengkonfigurasi Raspberry Pi sebagai Pelayan Boot PXE
  • Cermin Ubuntu
  • Contoh rsync di linux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara mencetak pokok direktori menggunakan linux
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Menguasai Gelung Skrip Bash
  • Ubuntu 20.04 Panduan