Làm cách nào để tải xuống gói RPM và cài đặt nó trong một dòng?


18

Tôi đã tự hỏi liệu sử dụng wgetnó có thể tải xuống một RPM và sau đó chuyển nó qua sudo rpm -iđể cài đặt nó, trong một dòng không? Tôi nhận ra tôi chỉ có thể chạy:

wget -c <URL>
sudo rpm -i <PACKAGE-NAME>.rpm

để cài đặt gói nhưng tôi đã tự hỏi liệu có thể thực hiện việc này trong một dòng bằng cách sử dụng chế độ im lặng và ghi vào các tùy chọn đầu ra tiêu chuẩn của wget. Tôi đã thử sử dụng:

wget -cqO- <URL> | sudo rpm -i

nhưng nó đã trở lại:

rpm: no packages given for install

Bạn đã thử sudo rpm -i <URL>chưa
Mikel

Bạn đã thử wget -cqO- <URL> | xargs sudo rpm -ihay có thể sudo rpm -i $(wget -cqO- <URL>)? Họ đưa ra lỗi gì?
Firelord

1
@Chúa lửa. Lệnh thứ nhất: chỉ cần thử và nó đã báo lỗi ở đây . Lệnh thứ 2: đã đưa ra lỗi rpm: no packages given for install.
BH2017

Câu trả lời:


29

RPM có hỗ trợ riêng để tải xuống gói từ URL. Bạn có thể làm:

sudo rpm -i <URL>

Không cần phải tải xuống RPM bằng tay. Nếu hỗ trợ này không tồn tại, bạn có thể sử dụng bashthay thế quy trình.

sudo bash -c 'rpm -i <(wget -O - <URL>)'

7
Tốt hơn là sử dụng yum install -y <URL>, vì nó cũng sẽ cài đặt bất kỳ phụ thuộc nào.
cristi

1
Vâng, nếu tôi đang sử dụng một bản phân phối sử dụng yum làm trình quản lý gói của nó, nhưng hãy nhớ các gói RPM cũng được sử dụng bởi các bản phân phối sử dụng các trình quản lý gói APT-RPM, DNF, urpmi và ZYpp. Hóa ra tôi đang sử dụng openSUSE Tumbleweed, sử dụng ZYpp.
BH2017

13

Tốt hơn yum install -y <URL>là làm điều này để alto chăm sóc các phụ thuộc, trái ngược với việc rpmsử dụng công cụ trực tiếp .


Như tôi đã nói trong các nhận xét về câu trả lời của jordanm, tôi đã sử dụng openSUSE Tumbleweed, yum không có sẵn trên Tumbleweed.
BH2017

1

Tôi đoán một cách có thể là xác định tên tệp của nội dung bạn đang tải xuống:

wget -cqO- <URL> -O my-output-file.rpm && sudo rpm -i my-output-file.rpm

Nhưng chắc chắn phải có cách tiếp cận tốt hơn


Tôi sẽ không chấp nhận câu trả lời này vì (như bạn đã nói) Tôi hy vọng các cách tiếp cận tốt hơn nhưng, bạn biết đây là một nỗ lực tốt, vì vậy cảm ơn.
BH2017
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.