neilt0 Posted April 5, 2011 Share Posted April 5, 2011 EDIT: There is now a 5.x plugin available for nzbget: http://lime-technology.com/forum/index.php?topic=23423.0 Preamble With the generous help of the developer of nzbget -- hugbug, I have the latest version of nzbget (0. up and running on unRAID. I think an older version was included with BubbaRAID and someone had posted information on how to install another version, but he couldn't get par2lib working, so it was disabled -- not so useful! With a bit of work, we figured out how to patch par2lib and configure it correctly for the unRAID environment. I like SABnzbd, but nzbget has some advantages, particularly when running on a server. SABnzbd runs under Python, an interpreted language, making it relatively slow. nzbget is written in C, so is faster and has a smaller memory footprint. Some approximate performance info I've found running the two apps on my server: CPU usage (measured by top) SABnzbd: 40-50% nzbget: 7-14% RAM usage when downloading (1GB installed) SABnzbd: 5.6% nzbget: 0.3% Another benefit to nzget is that it uses par2lib, not par2cmdline. Running par as a library, rather than an external command means that nzbget only needs to do one verify pass, then it can immediately grab the pars and repair the files, rather than as SABnzbd does: verify, get pars, verify again and repair. This was really clear to me yesterday as I watched SAB repair a 40GB collection -- it took about 40 minutes for the verify pass, then ran that verify pass again once it had the pars. Currently par2lib doesn't support multiple cores, but it would be interesting to compare overall repair times, and I might do that at some point. With recent builds, nzbget is close to the functionality of SABnzbd. You can use it with Sick Beard via Sick Beard's nzb blackhole option. Prerequisites The web interface to nzbget is called nzbgetweb and it requires a php server, but it's very simple to set one up with unRAID. Install unRAID-Web, and download the nzbgetweb archive. Unpack nzbgetweb and put the nzbgetweb folder on your cache drive. Once that's done: http://:tower89/ -> Personal Webserver Setup Tell unRAID-Web where the files are, and which port you want to use. In my case, I used an .nzbget folder on my cache drive and port: 8084, so used: /mnt/cache/.nzbget/nzbgetweb/ This gives the nzbgetweb interface on: http://tower:8084/ Now, it just needs nzbget to talk to. Dependencies To obtain all the packages required for nzbget, I used http://pkgs.org/ . I appended the name of the package needed to this URL. e.g. http://pkgs.org/package/libpar2 , then grabbed the Slackware 13.1 (or similar) x86 version and put that in /boot/packages/ (the packages folder on /tower/flash). If there's any interest, I can package up the dependencies and make them available. Make it so...or....go I added the following sections to my go script: ################################################################# # install packages for nzbget # ################################################################# cd /boot/packages installpkg kernel-headers-2.6.33.4_smp-x86-1.txz installpkg pkg-config-0.23-i486-2.txz installpkg libxml2-2.7.6-i486-1.txz installpkg make-3.81-i486-1.txz installpkg libsigc++-2.2.8-i486-2sl.txz installpkg binutils-2.20.51.0.8-i486-1.txz installpkg glibc-2.11.1-i486-3.txz installpkg perl-5.10.1-i486-1.txz installpkg gcc-4.2.4-i486-1.tgz installpkg gcc-g++-4.2.4-i486-1.tgz installpkg ncurses-5.7-i486-1.txz installpkg bind-9.4.3_P4-i486-1.txz installpkg cxxlibs-6.0.13-i486-2.txz installpkg patch-2.5.4-i486-1.txz There may be a package or two that's not strictly needed by nzbget or par2lib, but if so, I'm sure one of the experts here can advise. openssl was already installed on my server by the SABnzbd script, so if you aren't using that, also add: installpkg openssl-0.9.8r-i486-3.txz You'll also need libpar2-0.2.tar.gz and nzbget-0.8.0-testing-r394.tar.gz in the packages folder on the flash drive, they are set up later in the script. Immediately after this, I included the section for par2lib (note that nzbget includes patches for par2lib, so they are included here): ################################################################# # Compile par2lib # ################################################################# cd /tmp cp /boot/packages/nzbget-0.8.0-testing-r394.tar.gz . tar -zxf nzbget-0.8.0-testing-r394.tar.gz cp /boot/packages/libpar2-0.2.tar.gz . tar -zxf libpar2-0.2.tar.gz cd libpar2-0.2 cp /tmp/nzbget-0.8.0-testing/libpar2-0.2-*.patch . patch < libpar2-0.2-bugfixes.patch patch < libpar2-0.2-cancel.patch ./configure --prefix=/usr make make install and finally, nzbget: ################################################################# # Compile nzbget # ################################################################# cd /tmp/nzbget-0.8.0-testing ./configure --with-tlslib=OpenSSL make make install /tmp/nzbget-0.8.0-testing/nzbget -c /mnt/cache/.nzbget/nzbget.conf -D Now, bear in mind, I'm no Linux expert, so use anything in this post with care, and at your own risk. I just figured most of this out with trial and error. I'm sure there is a way to build static binaries which can reside on the cache drive, to reduce boot time, or even an unmenu package, so any experts who know who to do this, please weigh in. I put all my nzbget configuration files in /mnt/cache/.nzbget . Just about all the settings can be configured in the web interface, but for reference, here are my conf files (with login stuff removed): nzbget.conf: http://pastebin.com/M9z8YWrL postprocess.conf: # Template configuration file for postprocessing script "postprocess-example.sh". # Please refer to "postprocess-example.sh" for usage instructions. ############################################################################## ### PATHS ### # Set the full path to unrar if it is not in your PATH. UnrarCmd=unrar ############################################################################## ### OPTIONS ### # Delete rar-files after unpacking (yes, no). DeleteRarFiles=yes # Rename img-files to iso (yes, no). RenameIMG=yes # Joint TS-files (yes, no). JoinTS=yes ############################################################################## ### POSTPROCESSING-PARAMETERS ### # This section defines parameters, which can be set for each nzb-file # individually using either web-interface or command line. # Example command line for setting parameter "password" to value "123" for # nzb-file with id=2: # nzbget -E G O Password=123 2 # Perform postprocessing (yes, no). # # Set to "no" to skip postprocessing for this nzb-file. PostProcess=yes # Password for encrypted posts. # # If the post requires a password for unpacking. Password= # Destination directory. # # NOTE: NZBGet must have write-access-rights for that directory. DestDir=/mnt/cache nzgetweb/settings.php: http://pastebin.com/diLhnD2W Quote Link to comment
BRiT Posted April 5, 2011 Share Posted April 5, 2011 When you benchmarked SABnzbd did you precompile/optimize the Python files first? You can tell if you did this by the presence of '.pyo' files alongside the '.pyc' files. Those are the compiled bytecode files. This is done by using the Python parameter of "-". You only need to do this once after installing. I see nowhere near that heavy of CPU Usage on my system for SABnzbd. This nzbget is shaping up to be a decent alternative to SABnzbdonce they get more features included. Quote Link to comment
neilt0 Posted April 5, 2011 Author Share Posted April 5, 2011 When you benchmarked SABnzbd did you precompile/optimize the Python files first? Wow, I didn't even know you could do that. That optimization business doesn't seem to have been covered much in the SABnzbd discussions? Isn't it "-OO", not "-"? OK, so I ran the optimization, and RAM usage is down quite a bit, to 3.4%. CPU is the same, or possible even higher (these are not scientific tests, but it has certainly not dropped while downloading pretty much the same content). Bear in mind, I'm running these applications on my HP Microserver with the 15W CPU -- one of the reasons I wanted to implement nzbget is that I knew it had a drastically smaller CPU and RAM footprint than SABnzbd. If you run nzbget on a more powerful machine, "top" might not even notice it's running! What features do you think should be added to nzbget? I asked the developer to consider prioritisation, and he added that feature in the last Beta. He also added passworded rar extraction a while ago after I asked him about it -- a feature that the Newsbin developers kept fighting. hugbug is a top bloke. Quote Link to comment
jeff.lebowski Posted April 5, 2011 Share Posted April 5, 2011 When you benchmarked SABnzbd did you precompile/optimize the Python files first? You can tell if you did this by the presence of '.pyo' files alongside the '.pyc' files. Those are the compiled bytecode files. This is done by using the Python parameter of "-". You only need to do this once after installing. I see nowhere near that heavy of CPU Usage on my system for SABnzbd. This nzbget is shaping up to be a decent alternative to SABnzbdonce they get more features included. Where are these located at? I looked in the flash drive, but couldn't find them. Quote Link to comment
neilt0 Posted April 5, 2011 Author Share Posted April 5, 2011 When you benchmarked SABnzbd did you precompile/optimize the Python files first? You can tell if you did this by the presence of '.pyo' files alongside the '.pyc' files. Those are the compiled bytecode files. This is done by using the Python parameter of "-". You only need to do this once after installing. I see nowhere near that heavy of CPU Usage on my system for SABnzbd. This nzbget is shaping up to be a decent alternative to SABnzbdonce they get more features included. Where are these located at? I looked in the flash drive, but couldn't find them. Depending on where SABnzbd is installed -- if you used the unMenu conf, they should be in /mnt/cache/.sabnzbd/sabnzbd . Quote Link to comment
Dimtar Posted June 17, 2011 Share Posted June 17, 2011 Dependencies To obtain all the packages required for nzbget, I used http://pkgs.org/ . I appended the name of the package needed to this URL. e.g. http://pkgs.org/package/libpar2 , then grabbed the Slackware 13.1 (or similar) x86 version and put that in /boot/packages/ (the packages folder on /tower/flash). If there's any interest, I can package up the dependencies and make them available. Make it so...or....go I added the following sections to my go script: ################################################################# # install packages for nzbget # ################################################################# cd /boot/packages installpkg kernel-headers-2.6.33.4_smp-x86-1.txz installpkg pkg-config-0.23-i486-2.txz installpkg libxml2-2.7.6-i486-1.txz installpkg make-3.81-i486-1.txz installpkg libsigc++-2.2.8-i486-2sl.txz installpkg binutils-2.20.51.0.8-i486-1.txz installpkg glibc-2.11.1-i486-3.txz installpkg perl-5.10.1-i486-1.txz installpkg gcc-4.2.4-i486-1.tgz installpkg gcc-g++-4.2.4-i486-1.tgz installpkg ncurses-5.7-i486-1.txz installpkg bind-9.4.3_P4-i486-1.txz installpkg cxxlibs-6.0.13-i486-2.txz installpkg patch-2.5.4-i486-1.txz There may be a package or two that's not strictly needed by nzbget or par2lib, but if so, I'm sure one of the experts here can advise. openssl was already installed on my server by the SABnzbd script, so if you aren't using that, also add: installpkg openssl-0.9.8r-i486-3.txz You'll also need libpar2-0.2.tar.gz and nzbget-0.8.0-testing-r394.tar.gz in the packages folder on the flash drive, they are set up later in the script. Immediately after this, I included the section for par2lib (note that nzbget includes patches for par2lib, so they are included here): *Raises noob hand* Hey man, I got to here and got stuck. I see there are some packages that are obviously needed to get this up and running but I cannot understand how to find them on that site? Sorry. Quote Link to comment
kaiguy Posted June 17, 2011 Share Posted June 17, 2011 Hmm... this looks interesting for sure. I don't believe nzbget has a Firefox addon (like nzbdStatus, which is awesome) or an iPad app (like SABCommand, which is definitely heplful), unfortunately. I think I rely on those too frequently to make a transition. But I will be watching the development closely! Thanks for sharing! Edited: I would, however, like to give the precompiled/optimized python flag a try. Would this have to be run when updating to a newer version of sabnzbd, or would it happen automatically? Is it in fact - or -OO? Quote Link to comment
neilt0 Posted June 17, 2011 Author Share Posted June 17, 2011 *Raises noob hand* Hey man, I got to here and got stuck. I see there are some packages that are obviously needed to get this up and running but I cannot understand how to find them on that site? Sorry. Append the name of the package to the end of: http://pkgs.org/package/ So, if you want libpar2, http://pkgs.org/package/libpar2 Then, grab the latest i486 Slackware build. e.g.: "libpar2-0.2-i486-3sl.txz" If you can't get there from here, you may need more help than I can provide and may need to wait for an unMENU package, if anyone does one. Quote Link to comment
neilt0 Posted June 17, 2011 Author Share Posted June 17, 2011 Hmm... this looks interesting for sure. I don't believe nzbget has a Firefox addon (like nzbdStatus, which is awesome) or an iPad app (like SABCommand, which is definitely heplful), unfortunately. I think I rely on those too frequently to make a transition. But I will be watching the development closely! Thanks for sharing! Edited: I would, however, like to give the precompiled/optimized python flag a try. Would this have to be run when updating to a newer version of sabnzbd, or would it happen automatically? Is it in fact - or -OO? There's no Firefox addon, but I automate most of my usenet downloads with SickBeard and nzbgetter. For other stuff, I just drop stuff in to nzbget's blackhole. Not too arduous. There's a nice web app I use on my iPod Touch: http://188.138.72.109/showthread.php?tid=51239 Apparently, it also works on the iPad. The reason I use nzbget is that I run unRAID on a very low power server and I like to see it using under 30W and tiny amounts of CPU/RAM even when downloading from usenet at 20mbps. SABnzbd is a massive CPU/RAM hog on low-end/low power CPUs. Even after optimization. Quote Link to comment
Dimtar Posted June 18, 2011 Share Posted June 18, 2011 *Raises noob hand* Hey man, I got to here and got stuck. I see there are some packages that are obviously needed to get this up and running but I cannot understand how to find them on that site? Sorry. Append the name of the package to the end of: http://pkgs.org/package/ So, if you want libpar2, http://pkgs.org/package/libpar2 Then, grab the latest i486 Slackware build. e.g.: "libpar2-0.2-i486-3sl.txz" If you can't get there from here, you may need more help than I can provide and may need to wait for an unMENU package, if anyone does one. Ok, got all the packages I needed, although the libpar2 package seems to be updated and was a little different. I have gotten to this point in the first script? --- root@MicroServer:/tmp/libpar2# patch < libpar2-0.2-bugfixes.patch can't find file to patch at input line 4 Perhaps you should have used the -p or --strip option? The text leading up to this was: -------------------------- |diff -aud ../libpar2-0.2-original/par2repairer.cpp ../libpar2-0.2/par2repairer.cpp |--- ../libpar2-0.2-original/par2repairer.cpp 2006-01-20 18:25:20.000000000 +0100 |+++ ../libpar2-0.2/par2repairer.cpp 2008-02-06 12:02:53.226050300 +0100 -------------------------- --- It asks me "File to patch:" This was mentioned in the install guide and now I am stuck. Was going well lol. Quote Link to comment
neilt0 Posted June 18, 2011 Author Share Posted June 18, 2011 Did you include the last ".": cp /tmp/nzbget-0.8.0-testing/libpar2-0.2-*.patch . Quote Link to comment
Dimtar Posted June 18, 2011 Share Posted June 18, 2011 Did you include the last ".": cp /tmp/nzbget-0.8.0-testing/libpar2-0.2-*.patch . root@MicroServer:/tmp/libpar2# cp /tmp/nzbget-0.8.0-testing/libpar2-0.2-*.patch . root@MicroServer:/tmp/libpar2# dir install/ libpar2-0.2-bugfixes.patch* usr/ libpar2-0.2-MSVC8.patch* libpar2-0.2-cancel.patch* Yeah mate. Quote Link to comment
neilt0 Posted June 18, 2011 Author Share Posted June 18, 2011 I'm not sure where it's going wrong. Do an "ls" between each step to make sure the files are there. Quote Link to comment
neilt0 Posted June 18, 2011 Author Share Posted June 18, 2011 Ok, got all the packages I needed, although the libpar2 package seems to be updated and was a little different. Actually, it should be libpar2-0.2.tar.gz I may have pointed you to the wrong build. I think it should be this build: http://sourceforge.net/projects/parchive/files/libpar2/0.2/ Quote Link to comment
Dimtar Posted June 18, 2011 Share Posted June 18, 2011 Ok, got all the packages I needed, although the libpar2 package seems to be updated and was a little different. Actually, it should be libpar2-0.2.tar.gz I may have pointed you to the wrong build. I think it should be this build: http://sourceforge.net/projects/parchive/files/libpar2/0.2/ Cheers. New error: root@MicroServer:/tmp/libpar2-0.2# patch < libpar2-0.2-bugfixes.patch -bash: patch: command not found Quote Link to comment
neilt0 Posted June 18, 2011 Author Share Posted June 18, 2011 Ok, got all the packages I needed, although the libpar2 package seems to be updated and was a little different. Actually, it should be libpar2-0.2.tar.gz I may have pointed you to the wrong build. I think it should be this build: http://sourceforge.net/projects/parchive/files/libpar2/0.2/ Cheers. New error: root@MicroServer:/tmp/libpar2-0.2# patch < libpar2-0.2-bugfixes.patch -bash: patch: command not found installpkg patch-2.5.4-i486-1.txz Quote Link to comment
Dimtar Posted June 18, 2011 Share Posted June 18, 2011 installpkg patch-2.5.4-i486-1.txz Wierd, I have my go script installing all those packages, wonder why it didn't work. -- #Run NZBGET cd /boot/packages/nzbget installpkg *.txz -- Alright, got a little further and this is what I got. -- root@MicroServer:/tmp/libpar2-0.2# ./configure --prefix=/usr checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/ginstall -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for g++... g++ checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables See `config.log' for more details. root@MicroServer:/tmp/libpar2-0.2# -- Quote Link to comment
neilt0 Posted June 18, 2011 Author Share Posted June 18, 2011 What does "config.log" say? Quote Link to comment
Dimtar Posted June 19, 2011 Share Posted June 19, 2011 What does "config.log" say? Ok, next step. How do i read that via command, I tried: read config.log view config.log Also did a little googling but most of it related to reading bash logs, from what it seems the logs bash creates. An 'ls' reveals the file is there though, inside: /tmp/libpar2-0.2# Quote Link to comment
Rich Posted June 27, 2011 Share Posted June 27, 2011 Hey, another noob question... When downloading gcc-g++-4.2.4-i486-1.tgz gcc-4.2.4-i486-1.tgz from http://pkgs.org/ they save as a .tar file and not a .tgz and I dont know what to do to get them to run as the required .tgz? I'd appreciate some advice, Thanks Quote Link to comment
neilt0 Posted June 27, 2011 Author Share Posted June 27, 2011 Hey, another noob question... When downloading gcc-g++-4.2.4-i486-1.tgz gcc-4.2.4-i486-1.tgz from http://pkgs.org/ they save as a .tar file and not a .tgz and I dont know what to do to get them to run as the required .tgz? I'd appreciate some advice, Thanks http://pkgs.org/slackware-13.0/slackware-i486/gcc-4.3.3-i486-3.txz.html http://pkgs.org/slackware-13.0/slackware-i486/gcc-4.3.3-i486-3.txz.html Should work. Quote Link to comment
smu42 Posted August 13, 2011 Share Posted August 13, 2011 ... I don't believe nzbget has a Firefox addon (like nzbdStatus, which is awesome) or an iPad app (like SABCommand, which is definitely heplful), unfortunately. I think I rely on those too frequently to make a transition. But I will be watching the development closely! Hey, I'm running nzbget on my QNAP NAS and I also faced the problem, that nzbget indeed reaches a far higher download rate than SABnzbd on my machine, but there existed no full featured iOS app for it. So I decided to write my own one, called "myNZBGet", which is available from the App Store from now on. As Apple charges this $99 developing few a year, I charge a bit for the app to split the costs, just in case someone else likes it. But I also created a free version, called "freeNZBGet", which you may install and check, if it's working with your device. If you're interested, please check out my home page: http://myNZBGet.smu42.de Cheers, smu Quote Link to comment
raakesh76 Posted August 18, 2011 Share Posted August 18, 2011 hi im having a go at this and have not got very far i got as far as putting the details in the web server where my nzbgetweb folder is and the port 8084 but when i try to go to http://tower:8084/ i get nothing should i see something or do i need to do more first? actually the web server wizard wont save my settings no matter how many time i click on save configuraion nothing happens. Quote Link to comment
neilt0 Posted August 19, 2011 Author Share Posted August 19, 2011 Have you downloaded and installed all the .tgz files, added all the lines to the go script and rebooted? Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.