# Progromatic download of rpm file

**URL:** <https://www.ruby-forum.com/t/progromatic-download-of-rpm-file/196093>\
**Category:** Ruby\
**Created:** [October 6, 2010, 6:45pm UTC](https://www.ruby-forum.com/t/progromatic-download-of-rpm-file/196093 "2010-10-06T18:45:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jedrin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/47e85d/32.png) [@Jedrin](https://www.ruby-forum.com/u/Jedrin)\
**Post date:** [October 6, 2010, 6:45pm UTC](https://www.ruby-forum.com/t/progromatic-download-of-rpm-file/196093/1 "2010-10-06T18:45:45Z")

</div>

not sure why neither of these ways to download an rpm from ruby don’t  
work, but  
if I use a web broswer on the same url there’s no problem …

* * *

require ‘net/http’

Net::HTTP.start(“apt.sw.be”) { |http|  
resp = http.get(“/redhat/el5/en/x86\_64/rpmforge/RPMS//rpmforge-  
release-0.3.6-1.el5.rf.x86\_64.rpm”)  
open(“postgis.rpm”, “wb”) { |file|  
file.write(resp.body)  
}  
}

open(‘[http://apt.sw.be/redhat/el5/en/x86\_64/rpmforge/RPMS/rpmforge-](http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-)  
release-0.3.6-1.el5.rf.x86\_64.rpm’)

---

<div class="post-metadata">

**Author:** ![Jedrin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/47e85d/32.png) [@Jedrin](https://www.ruby-forum.com/u/Jedrin)\
**Post date:** [October 6, 2010, 7:24pm UTC](https://www.ruby-forum.com/t/progromatic-download-of-rpm-file/196093/2 "2010-10-06T19:24:24Z")

</div>

On Wed, Oct 6, 2010 at 6:45 PM, Jedrin [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> release-0.3.6-1.el5.rf.x86\_64.rpm")  
> open(“postgis.rpm”, “wb”) { |file|  
> file.write(resp.body)  
> }  
> }
> 
> open(‘[http://apt.sw.be/redhat/el5/en/x86\_64/rpmforge/RPMS/rpmforge-](http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-)  
> release-0.3.6-1.el5.rf.x86\_64.rpm’)

This worked for me:

require ‘open-uri’

URL =  
“[http://apt.sw.be/redhat/el5/en/x86\_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86\_64.rpm](http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm)”  
File.open(“result.rpm”, “wb”) do |out|  
out.write open(URL) {|in\_file| in\_file.read}  
end

result.rpm ends up being a binary file of 16697 bytes.

Jesus.
