Saya ingin membangun repositori lokal saya sendiri di LAN saya, sehingga mesin-mesin di LAN dapat memperbarui dan meningkatkannya. Saya ingin mengunduh paket dan menyimpannya di server lokal saya sehingga saya dapat memperbarui, memutakhirkan, menginstal, dll, dari sana tanpa menggunakan internet.
apt
repository
grooveplex
sumber
sumber
Jawaban:
Dari wiki Bantuan Ubuntu :
sumber
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
. Apa yang sedang/dev/null
dilakukan di sana. Saya membaca halaman manual juga, tetapi itu tidak begitu jelas.* Untuk membuat Repositori offline Melalui LAN *
Instal Webserver Apache Lokal
Secara default, paket Apache Debian akan membuat situs web di bawah
/var/www
pada sistem Anda. Untuk tujuan kita, itu baik-baik saja, jadi tidak ada alasan untuk melakukan apa pun lagi. Anda dapat dengan mudah mengujinya dengan mengarahkan browser favorithttp://localhost
Anda ke. Anda akan melihat halaman web pasca-instalasi default yang sebenarnya disimpan di/var/www/index.html
Buat Direktori Debian Paket Repositori
memilih untuk membuat direktori
/var/www/debs
untuk ini. Di bawahnya, Anda harus membuat direktori "arsitektur", satu untuk setiap arsitektur yang perlu Anda dukung. Jika Anda hanya menggunakan satu komputer (atau jenis komputer), maka Anda hanya perlu satu komputer - biasanya "i386" untuk sistem 32-bit atau "amd64" untuk 64 bit. Jika Anda menggunakan beberapa arsitektur lain, saya akan menganggap Anda mungkin sudah tahu tentang ini. Sekarang cukup salin file paket ".deb" untuk arsitektur yang diberikan ke direktori yang sesuai. Jika sekarang Anda mengarahkan browser web favorit Anda kehttp://localhost/debs/amd64
(misalnya) Anda akan melihat daftar paket untuk sistem 64 bit.Buat file Packages.gz
Sekarang kita perlu membuat file katalog untuk digunakan APT. Ini dilakukan dengan utilitas yang disebut "dpkg-scanpackages". Sini'
Buat repositori diketahui oleh APT
Sekarang satu-satunya yang tersisa untuk dilakukan adalah memberi tahu APT tentang repositori Anda. Anda melakukan ini dengan memperbarui file /etc/apt/sources.list Anda. Anda akan membutuhkan entri seperti ini:
Saya menggunakan nama host sebenarnya dari sistem saya alih-alih localhost - dengan cara ini kodenya sama untuk semua komputer di LAN saya, tetapi localhost akan baik-baik saja jika Anda hanya menjalankan satu komputer.
Sekarang, perbarui APT:
sumber
/var/www/debs
jawaban ini dengan/var/www/html/debs
. Atau Anda akan memerlukan langkah-langkah tambahan untuk mengedit konfigurasi apache secara manual di/etc/apache2
Membuat Repositori yang Diotentikasi
Saya sudah melihat jawaban di sini dan di situs lain dan sebagian besar memiliki kelemahan (IMHO besar) bahwa Anda sedang menyiapkan repositori yang tidak diautentikasi. Ini berarti Anda harus menjalankan
apt-get
dengan--allow-unauthenticated
untuk menginstal paket dari itu. Ini bisa menjadi risiko keamanan, terutama dalam skrip di mana paket yang Anda instal mungkin tidak semuanya berasal dari repositori lokal Anda.Perhatikan bahwa saya belum membahas di sini cara membuatnya tersedia melalui LAN, tapi itu konfigurasi yang cukup umum menggunakan Apache atau nginx (lihat jawaban lain di sini).
Atur direktori repo
Kemudian tambahkan baris seperti ini ke
sources.list
:Menambah dan Menghapus Paket
hapus paket
tambahkan paket
sekarang jalankan skrip berikut yang menghasilkan file Paket, Rilis dan InRelease dan tandatangani dengan kunci pribadi gpg Anda:
Contoh Isi file conf / distribusi
Origin: My_Local_Repo Label: My_Local_Repo Codename: xenial Architectures: i386 amd64 Components: main Description: My local APT repository SignWith: 12345ABC
Tautan
https://wiki.debian.org/RepositoryFormat
http://ubuntuforums.org/showthread.php?t=1090731
https://help.ubuntu.com/community/CreateAuthenticatedRepository
sumber
date -Rc
, saya memperbaikinya dengandate -Ru
asumsi itulah yang Anda maksud dari deskripsi editAnda juga dapat mengatur server sumber lokal dengan nginx dan reprepro:
Instal paket debian
buat direktori untuk reprepro dan edit
/ srv / reprepro / ubuntu / conf / distro
/ srv / reprepro / ubuntu / conf / options
Sertakan dalam reprepro, bangunlah
Konfigurasi nginx:
/etc/nginx/sites-available/vhost-packages.conf
Optimalkan ukuran bucket:
/etc/nginx/conf.d/server_names_hash_bucket_size.conf
Referensi untuk Memasang Tautan Panduan
sumber
Anda mungkin ingin melihat
apt-mirror
danapt-cacher
.Berikut ini adalah panduan tentang cara menginstal dan menggunakannya.
sumber
Petunjuk dalam jawaban @ BigSack dan pos wiki resmi Ubuntu tidak berfungsi untuk saya di Ubuntu 18.04, sampai saya membuat dua perubahan ini:
Hasilkan file polos dan tidak terkompresi
Packages
(saat menjalankan ini, direktori kerja harus berada di tempat semua paket berada)Tambahkan entri berikut di
/etc/apt/sources.list
sumber
Baca terus
1 Sumber: Buat Repositori Ubuntu
sumber
Untuk membuat Repositori lokal offline
1. buat direktori dapat diakses (minimal oleh root)
sumber
Saya mencoba menggunakan
apt-rdepends
seperti pada jawaban yang dipilih, tetapi ketika saya mencoba menginstal paket dari repositori lokal saya, ia mengeluh tentang tidak adanya dependensi.apt-rdepends
tidak mencantumkan beberapa dependensi untuk paket saya. Saya menduga itu ada hubungannya dengan fakta, yangapt-cache show
menunjukkan banyak catatan untuk itu.Sebaliknya saya menggunakan
apt-cache depends
, dan itu berhasil:Mendapatkan daftar dependensi secara rekursif
-i
: dependensi penting saja--recurse
: rekursifUbah itu menjadi daftar yang dapat dicerna
| tr -d "|,<,>, "
| sed -e 's/^Depends://g' | sed -e 's/^PreDepends://g'
| sort
| uniq > list.txt
Perintah lengkap:
Unduh paketnya
Pindai paket-paket itu dan ubah menjadi Packages.gz
sumber
Saya telah selesai menggunakan apt-mirror.
Ini bagus tetapi Anda harus memiliki lebih banyak ruang hard drive karena akan disinkronkan dengan server repos.
sumber