Zaten yüklü olan komut için RPM paketlerini indir


12

Daha önce openssl-devel kullanarak kurduğum bir CentOS makinem var

$ yum install openssl-devel 

Tüm bağımlılık paketlerini indirip yükledi. Şimdi tüm bu RPM paketlerine ihtiyacım var. Sadece RPM paketlerini indirmek mümkün mü? Bunu yaptığımda:

 $ yum install  openssl-devel -y --downloadonly 

Diyor ki

Package 1:openssl-devel-1.0.1e-4.fc18.x86_64 already installed and latest version

zaten yüklü olduğundan.

Herkes bu RPM paketlerini aynı sisteme nasıl indireceğini biliyor mu?

Yanıtlar:


13

--downloadonlyAnahtar kullanılarak kurulmuş olan bir RPM'nin paketlerini indirmek mümkündür . Yum'un paketin zaten yüklü olup olmadığını kontrol etmeden önce neden bu ayarı kontrol etmediğinden emin değilim, ancak aracın temel mimarisinden kaynaklanıyor olabilir.

Her neyse, tek yapmanız gereken paketi yeniden yüklemek için yum'a söylemektir :

yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name

Elbette yum, sadece bu paket için hangi bağımlılıkların yüklendiğini bilemez, bu nedenle RPM'leri alıp farklı bir sisteme yüklemeye çalışırsanız, bazı bağımlılıklar eksik olabilir. Tüm bağımlılık grafiğini keşfetmenin yolları var ve eminim bu SE'de başka bir yerde zaten tanımlanmıştı.


7

yumdownloader, yum-utilskendisine ilettiğiniz paketleri indirir veya isteğe bağlı olarak paketlerin indirilebileceği URL'leri oluşturur.


bağımlılıkları çözmüyor, sadece openssl-devel.x86_64.rpm indir
abubacker

Hayır, bağımlılıkları çözmez. Ancak aracın bağımlılıkları ne kadar geri çözmesini istersiniz? glibc? filesystem?
Ignacio Vazquez-Abrams

1
gereksinimim basit, çevrimdışı olan başka bir makineye yüklemek için rpms listesini almam gerekiyor
abubacker

"Basit" diyorsunuz, ama aslında düşündüğünüz kadar basit değil. Sadece kurulu paketlerin bir listesi verildiğinde bağımlılıkları çözecek bir araç yoktur.
Ignacio Vazquez-Abrams

1
aslında bu basit, yum install openssl-devel -y - indir Eğer bu komutu başka bir makinede yaparsam, tüm bağımlılıkları çözer, ama sorum şu komutu yüklediğimiz bir makinede aynı şeyi yapmanın mümkün olup olmadığıdır. zaten
Abubacker

3

Yum-utils paketinden repotrack komutunu kullanabilirsiniz . Önceden kurulmuş olsa bile , tüm bağımlılık ağacını indirir .

Misal:

sudo yum install yum-utils      # Install yum-utils
sudo repotrack openssl-devel    # Download all dependencies for openssl-devel


Örnek çıktı:

[sbadra@rhel6 ~]$ sudo yum install openssl-devel
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Setting up Install Process
Package openssl-devel-1.0.1e-57.el6.x86_64 already installed and latest version
Nothing to do

[sbadra@rhel6 ~]$ sudo repotrack openssl-devel
Downloading audit-libs-2.4.5-6.el6.x86_64.rpm
Downloading audit-libs-2.4.5-6.el6.i686.rpm
Downloading basesystem-10.0-4.el6.noarch.rpm
Downloading bash-4.1.2-48.el6.x86_64.rpm
Downloading ca-certificates-2017.2.14-65.0.1.el6_9.noarch.rpm
Downloading chkconfig-1.3.49.5-1.el6.x86_64.rpm
Downloading coreutils-8.4-46.el6.x86_64.rpm
Downloading coreutils-libs-8.4-46.el6.x86_64.rpm
.... more packages ....
Downloading openssl-1.0.1e-57.el6.i686.rpm
Downloading openssl-1.0.1e-57.el6.x86_64.rpm
Downloading openssl-devel-1.0.1e-57.el6.i686.rpm
Downloading openssl-devel-1.0.1e-57.el6.x86_64.rpm
.... more packages ....
Downloading sed-4.2.1-10.el6.x86_64.rpm
Downloading setup-2.8.14-23.el6.noarch.rpm
Downloading tzdata-2018c-1.el6.noarch.rpm
Downloading zlib-1.2.3-29.el6.x86_64.rpm
Downloading zlib-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.x86_64.rpm

1
Aslında beklenen davranış olduğu için mimari hata ile ilgili notu geri çektim. Bkz (x86_64 bir komut da i686 paketleri indirir yüzden i686 ait süpersetidir) bu ve bu daha fazla bilgi için makale.
Sami Badra

2

Uzun vadede bir olasılık, bir makineyi internetten indirilecek makine olarak atamak, daha sonra NFS (veya bir web sunucusu) çalıştırmak / iç / ana bilgisayarlara / var / cache / yum çalıştırmak olabilir.

Daha sonra eklemek için yum yapılandırmanızı güncellemeniz gerekir:

[main]
keepcache = 1

Başına https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Working_with_Yum_Cache.html :

Önbelleğe almayı etkinleştirdikten sonra, her yum işlemi paket verilerini yapılandırılmış depolardan indirebilir.

Daha pratik terimlerle:

$ sudo yum install -y nginx
$ sudo find /var/cache/yum/ -type f -name '*.rpm'
<...snip....>
/var/cache/yum/x86_64/7/epel/packages/nginx-1.10.2-1.el7.x86_64.rpm

Diğer cevaplar olacak aslında bu sadece olacak yardım koşarsan senin acil sorunu çözmek yum reinstallzaten sahip paketleri ve için RPM'ler istiyorum.


0

İşte yaptığım şey:

sudo yum install --config =. / yum.conf --installroot = / tmp / f541Sdex --downloadonly --downloaddir / tmp / DL-e25xds $ (kedi paket listesi)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.