How to download a local mirror of public yum, public-yum-downloader.sh

Hello there
I did write an script to create a local mirror of public-yum.oracle.com, it now includes the errata and security bug fixes information._
First of all, thanks for giving a try to the script.
The script can be located at:
https://github.com/kikitux/public-yum-downloader
Direct RAW access:
https://raw.github.com/kikitux/public-yum-downloader/master/public-yum-downloader.sh
Download as
# wget https://raw.github.com/kikitux/public-yum-downloader/master/public-yum-downloader.sh
The hierarchy is 100% the same as what is on public-yum
The script can take several argumentas, like -P for the OS directory, and --url for where the same path will be public, so you can put the mirror in a different path
example, I have my own repo in /u02/stage/ and is shared like http://mirandaa00/stage
on my apache I have
Alias /stage "/u02/stage/"
<Directory "/u02/stage/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
In that way, I have everything I want in my own path.
When you use the url option, the script will create a local-yum-ol6.repo file with the url you gave, with GPG enabled, so you can be sure nothing wrong will happen in the middle
I use this script it this way
as root, i have /root/bin/dl.sh with this content
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 6.latest --url http://mirandaa00/stage -l /u02/stage/repo/OracleLinux/OL6/
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 5.latest --url http://mirandaa00/stage -l /u02/stage/repo/OracleLinux/OL5/
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 4.latest --url http://mirandaa00/stage -l /u02/stage/repo/EnterpriseLinux/EL4/
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 6.4 --url http://mirandaa00/stage -l /u02/stage/repo/OracleLinux/OL6/
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 5.9 --url http://mirandaa00/stage -l /u02/stage/repo/OracleLinux/OL5/
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 4.9 --url http://mirandaa00/stage -l /u02/stage/repo/EnterpriseLinux/EL4/
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 4.8 --url http://mirandaa00/stage -l /u02/stage/repo/EnterpriseLinux/EL4/
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 6.UEK --url http://mirandaa00/stage
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -R 5.UEK --url http://mirandaa00/stage
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -r ol6_addons --url http://mirandaa00/stage
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -r el5_addons --url http://mirandaa00/stage
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -r el5_oracle_addons --url http://mirandaa00/stage
~/bin/public-yum-downloader.sh -P /u02/stage/ -p http://proxy:3128 -r ol6_playground_latest
the -l will look on that path to find the rpm, useful for example if you have a dvd and you want to use as initial cache
I do run my commands in that way as when 5.9 came out, I had a lot of those rpms in 5.8 or 5 latest, rite?
Worst thing that could happen, is the rpm is not there, and will have to download, but if it's there will copy it
for UEK and addons those are unique rpm, so I don't use -l
for the playground, that are the new kernel based on 3.x directly, i don't use --url, as I don't wat the script to enable that repo, but I do want to download what that channel have
so, for known versions 6.0 to 6.4 you can use -R 6.n or even -R 6.UEK
for other repos you can pass the name as -r repo
Regarding the OVM3, the OVM3 is not on the repo, so I don't use my script for that, however, you can use the tools your self
mkdir -p /u02/stage/repo/OracleVM/OVM3/latest/x86_64/repodata/.cache
and create a repo file
cat /u02/stage/public-yum-ovm3.repo
[ovm3_latest]
name=Oracle Linux $releasever Latest (x86_64)
baseurl=http://public-yum.oracle.com/repo/OracleVM/OVM3/latest/x86_64/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=1
Then, you can download what is there as:
http_proxy=http://proxy:3128 yumdownloader -c /u02/stage/public-yum-ovm3.repo --destdir=/u02/stage/repo/OracleVM/OVM3/latest/x86_64/ '*'
createrepo -v -c /u02/stage/repo/OracleVM/OVM3/latest/x86_64/repodata/.cache /u02/stage/repo/OracleVM/OVM3/latest/x86_64
Please, take note the yumdownloader use --destdir=/path  then SPACE, then what you want to download, as we want a mirror, space '*'
any question, here, or feel free to mailme at [email protected]
if you have time, check http://kikitux.net
Alvaro.
Edited by: Alvaro Miranda on May 6, 2013 9:13 PM

Keep it running, time by time it takes FOR Ever
The good thing is the script already downloaded the repo file and the GPG key, so internet is working.
Where you tell me is waiting for ever, is downloading the metadata of the files, and doing the list of packages and dependencies to download.
then, with that list, it will use wget to download the rpm files
On /var/tmp/public-yum-downloader/ it will be leaving some files that you can use to check what's doing, a folder for x86_64 and i383 to have a local copy of the metadata
/var/tmp/public-yum-downloader/list.log will show is the output of yum-downloader and then the output of wget
I don't think your download will be slower than mine.. I am on New Zealand.. :D
Alvaro.

Similar Messages

  • Any ideas on how to do a local mirror for this situation?

    I'm starting a project to allow ArchLinux to be used on a Cluster environment (autoinstallation of nodes and such). I'm going to implement this where I'm working right now (~25 node cluster). Currently they're using RocksClusters.
    The problem is that the connection to internet from work is generally really bad during the day. There's a HTTP proxy in the middle. The other day I tried installing archlinux using the FTP image and I took more than 5 hours just to do an upgrade + installing subversion and other packages, right after an FTP installation (which wasn't fast either).
    The idea is that the frontend (the main node of the cluster) would hold a local mirror of packages so that when nodes install use that mirror (the frontend would use this also, because of the bad speed).
    As I think it should be better to only update the mirror and perform an upgrade not very often (if something breaks I would leave users stranded until I fix it), I thought I should download a snapshot of extra/ and current/ only once. But the best speed I get from rsync (even at night, where an HTTP transfer from kernel.org goes at 200KB/s) is ~13KB/s this would take days (and when it's done I would have to resync because of any newer package that could have been released in the meantime).
    I could download extra/ and current/ at home (I have 250KB/s downstream but I get like ~100KB/s from rsync), record several CDs (6!... ~(3GB + 700MB)/700MB) but that's not very nice. I think that maybe this would be just for the first time. Afterwards an rsync would take a lot less, but I don't know how much less.
    Obiously I could speed things a little If I download the full ISO and rsync current using that as a base. But for extra/ I don't have a ISOs.
    I think this is a little impractical (to download everything) as I wouldn't need whole extra/ anyways. But it's hard to know all packages needed and their dependencies to download only those.
    So... I would like to know if anyone has any ideas on how to make this practical. I wouldn't wan't my whole project to crumble because of this detail.
    It's annoying because using pacman at home, always works at max speed.
    BTW, I've read that HOWTO that explains how to mount pacman's cache on the nodes to have a shared cache. But I'm not very sure if that's a good option. Anyway, that would imply to download everything at work, which would take years.

    V01D wrote:After installation the packages that are in cache are the ones from current. All the stuff from extra/ won't be there until I install something from there.
    Anyway, if I installl from a full CD I get old packages which I have to pacman -Syu after installation (that takes long time).
    Oh, so that's how is it.
    V01D wrote:
    I think I'm going to try out this:
    * rsync at home (already got current last night)
    * burn a DVD
    * go to work and then update the packages on DVD using rsync again (this should be fast, if I don't wait long time after recording it)
    And to optimize further rsync's:
    * Do a first install on all nodes an try it out for a few days (so I install all packages needed)
    * Construct a list of packages used by all nodes and frontend
    * Remove them from my mirror
    * Do further rsync updates only updating the files I already have
    This would be the manual approach of the shared cache idea I think.
    Hmm... but why do you want to use rsync? You'll need to download the whole repo, which is quite large (current + extra + testing + community > 5.1GB, extra is the largest). I suggest you to download only those packages and their dependencies that you use.
    I have similar situation. At work I have unlimited traffic (48kbps at day and 128kbps at night), at home - fast connection (up to 256kbps) but I pay for every megabyte (a little, but after 100-500 megabytes it becomes very noticeable). So I do
    yes | pacman -Syuw
    or
    yes | pacman -Syw pkg1 pkg2 ... pkgN
    at work (especially when packages are big), then put new downloaded files on my flash drive, then put them into /var/cache/pacman/pkg/ at home, and then I only need to do pacman -Sy before installing which takes less than a minute.
    I have 1GB flashdrive so I can always keep the whole cache on it. Synchronizing work cache <-> flash drive <-> home cache is very easy.
    P.S.: Recently I decided to make complete mirror of all i686 packages from archlinux.org with rsync. Not for myself but for my friends that wanted to install Linux. Anyway I don't pay for every megabyte at my work. However it took almost a week to download 5.1 GB of packages.
    IMHO for most local mirror solutions using rsync is overkill. How many users are there that use more than 30% of packages from repos? So why to make full mirror with rsync when you can cache only installed packages?

  • Trying to access an epub book downloaded from local public library on my PC laptop with windows 8.1. I keep getting Error!Check Activation. My ID has been authorized, how do I fix this?

    Trying to access an epub book downloaded from local public library on my PC laptop with windows 8.1. I keep getting Error!Check Activation. My ID has been authorized, how do I fix this?

    Trying to access an epub book downloaded from local public library on my PC laptop with windows 8.1. I keep getting Error!Check Activation. My ID has been authorized, how do I fix this?

  • Create a local mirror of public yum

    I want to create a private local mirror of public-yum repository. This allow me to make updatea or the magical "yum install oracle-validated" in machines that doesn't have internet access.
    Any guide or ideas about how to do this?
    Thanks.

    Re: local YUM repository Channel registration fail
    some problems that i faced by creating my local yum
    *T                                                                                                                                                                                                                                                       

  • Using rsync to keep a local mirror - way to not download 64?

    I keep a local mirror since i keep multiple computers synced and want to save bandwidth.
    But now I have an x86_64 mirror for which I have no use. Is there some way to *not* download those files?

    It is very simple! I use:
    rsync -rptvz --delete rsync.archlinux.org::current/os/i686 /mnt/storage1/mirror/current/os/
    Note that I use -rptvz instead of -avz. IMHO this is better.
    But why do you mirror whole repos when there is an easier way.
    I'm going to write howto on wiki. I don't like this way - it wastes bandwidth, time and money.

  • How can i fix my iphone i can't update or download apps, when i try it tells me toput my credit card info and i do but when i push done it tells me my payment has been declined, but why do i have to pay to update or download free apps. How can i fix this?

    how can i fix my iphone i can't update or download apps, when i try it tells me toput my credit card info and i do but when i push done it tells me my payment has been declined, but why do i have to pay to update or download free apps. How can i fix this?

    You must contact iTunes support to get the problem resolved.
    http://www.apple.com/support/itunes/contact/
    If there is a problem with your account or payment info, you cannot
    download anything (including free apps or updates) until the matter
    is resolved.
    In countries where the iTunes Store only sells apps, the accepted payment methods are Visa, MasterCard, and American Express. Other payment types such as gift cards, store credit, monthly allowances, ClickandBuy, and PayPal are not accepted. Depending on your App Store country, prices may be listed in your local currency, US Dollars, or Euros.    http://support.apple.com/kb/HT5552

  • Download content locally when needed by running task sequence functionality with Windows PE.

    I am trying to understand what happens when the "Download content locally when needed by running task sequence" option in chosen on a task sequence deployment. My assumption is that any needed packages would not be identified
    and downloaded until task sequence is kicked off. 
    Using task sequence boot media, it looks likes a package has been obtained before any task sequence has been selected. I am assuming the package was acquired during the WinPE boot process. Can anyone confirm that this is
    the correct behavior when using the "Download content locally when needed by running task sequence" option? If not, how would WinPE be obtaining the PS100292 SCCM package?
    This specific package contains and HTA file. Only one of  several task sequences deployed to the All Unknown Computers make a call to the HTA file. The one that does, the HTA call is the very first step of the task sequence.
    --Tony

    Hi everyone! I figured what was going on here. I was using an ESX VM and the package was stored on the c:\ from previous attempts and troubleshooting. Long story short, I had to rip the HDD from the VM and add a new one to set every thing back.

  • How to create a link on a biller direct screen for downloading a pdf file

    Hi,
    My requirement is to create link on biller direct screen, when I click on that link a pdf document will be downloaded in local system. I need help on that

    contd from previous post, excerpt from BD config guide:
    Web Application
    3. Displaying the bill document
    The Web application displays the bill document.
    If the bill document is displayed using a separate Web server (for example,
    the Web server of an optical archive), then the URL for displaying the bill details
    can be transferred at event 1235 when you create the bill list. The BAdI
    FIS_INVOICEDETAIL is not called, but the Web application sends an HTTP
    request to this URL. Since the Web application requests the bill data by request
    to the Web server for bill details, the Web server does not need to have an
    authentication mechanism. SAP delivers an example implementation for
    accessing a Web server for bill details.
    Connecting Other Billing Applications
    As described above, SAP Biller Direct only makes available the display of bills from Sales and
    Distribution (SD) in PDF format. If you want to use this function for bills with a different origin,
    you need to proceed as follows. See the BAdI documentation for further details.
    1. Create an implementation for event 1235. You have to set indicator XXML, XPDF, or
    XMULTARCH (or all three) in table T_INVOICES so that a customer is able to load
    XML or PDF data in the front end of SAP Biller Direct. Technically, this means you
    ensure that the appropriate icons are shown.
    2. Implement BAdI FIS_INVOICEDETAIL. This BAdI is called by the front end if the
    customer selects the corresponding link. You can determine the required format using
    I_INVOICE_FORMATS. Create the corresponding binary data, and fill table T_XML,
    T_PDF or T_MULTIPLE_ARCHIVED_DOCS (or all three).
    3. Then set indicator XXML, XPDF or XMULTARCH (or all three) in structure
    C_INVOICE_FORMATS.
    My Questions:
    1. My PDFs are stored on a web server as described in step 3, does that mean that I don't need to use the BADI? How are these URLs generated? Does BD automatically know how to retrieve them from archivelink?
    2. My documents are insurance bills, not S&D bills. Does that mean that I need to use the BADI as described in "connecting other billing applications"?
    To me there is a lot of ambiguity in the way this is described in the configuration guide. Could use some help with the interpretation.

  • How to excute a local file?

    Hi. Experts.
    I want to excute a file (like aaa.doc) when i click a file after uploading in alv.
    How to excute a local file?
    I used behind command
        lv_filename = ls_zdmt03-filenm.
        cl_wd_runtime_services=>attach_file_to_response(
           i_filename               = lv_filename
           i_content                = ls_zdmt03-filecontent
           i_mime_type              = ls_zdmt03-filetype
           i_in_new_window = abap_true
           i_inplace                = abap_true ).
    But do not excute one. just open a browser and quickly close a browser.
    Please help me.
    Thanks
    Regards.

    What do you mean by execute a file?  You say execute, but then in your example you list aaa.doc.  A word document doesn't need to be execute.  The cl_wd_runtime_services=>attach_file_to_response will download a file (like a word document) and the browser will open it in its default program.  Is that not what you want to happen?
    What kind of file do you actually have?  Is it on the server or the client?
    If you want to execute applications on the client machine, then you can consider the UI element ACFExecute - as of NetWeaver 7.0 Enhancement Package 1.

  • How to set default locale in JDK1.3.0 to US?

    Hi, everyone!
    I found the default locale in JDK 1.3.0 is not set to US when I converted our JDK from 1.2 to 1.3.0. So I have to change code by passing Locale.US.
    The output from below test code is:
    default=��100.00
    US=$100.00
    import java.util.Locale;
    import java.text.*;
    public class TestCurrency
    public static void main(String[] args)
    int amount = 100;
    //default
    NumberFormat moneyWriter = NumberFormat.getCurrencyInstance();
    System.out.println ("default=" + moneyWriter.format(amount) );
    //US
    moneyWriter = NumberFormat.getCurrencyInstance(Locale.US);
    System.out.println ("US=" + moneyWriter.format(amount) );
    Can anyone tell me how to set default locale in JDK 1.3.0 to US?
    Thanks!

    You have to set something on your computer (outside Java) to tell it that you are in the US. You didn't say, but I'm going to guess that you are using Windows; if that's so, then try Regional Options in Control Panel.

  • [JSF 1.2 and 2.0/Internationalization] How to propagate the Locale to the entire application

    Hi,
    do you know how to internationalize an application in a dynamic way in JSF 1.2 ?
    I created 2 files msg_fr.properties ( language by default, french) and msg_en.properties ( english)
    Then I wrote a methode changeLanguage() in a Managed Bean . This method allows me to switcher the language in the first page of the application.
    This method is called in a tag <h:commandLink>
    public void changeLanguage() { 
            FacesContext context = FacesContext.getCurrentInstance(); 
            // I test a parameter (currentLanguage) and I switch in consequence 
           context.getViewRoot().setLocale(Locale.ENGLISH); 
           //or    context.getViewRoot().setLocale(Locale.FRENCH); 
           context.getApplication().setDefaultLocale(context.getViewRoot().getLocale()); I have of course modified the file faces-config.xml.
    This WORKS but for the current page only. The Locale is not propagated to the next pages of the application.
    The Locale by default of my browser is English and so the next pages are always in English, even if i switch the first page to French.
    Do you know how to propagate this Locale to all the pages of the application in JSF 1.2 ?
    Also, has internationalization been improved in JSF 2.0 ?
    thanks

    The f:view has a 'locale' attribute. You should make use of it. Feed it with a property of a session scoped bean which you could control/change using for example some language dropdown menu or a request parameter or pathinfo. There is no need to traverse the FacesContext and UIViewRoot yourself.
    For more about i18n in JSF, please consult the Sun JSF specification and the Sun Java EE tutorial.

  • How can I use Local SPAN with RSPAN ??

    How can I use Local SPAN with RSPAN ??
    I want to mirror traffics from ISP-A and ISP-B to Anomaly-detector module.
    so I had configured like this...
    C6500-A
    vlan 1000
    name RSPAN
    remote-span
    monitor session 10 source interface Gi5/1 - 2 rx
    monitor session 10 destination remote vlan 1000
    monitor session 20 destination anomaly-detector-module 3 data-port 1
    monitor session 20 source remote vlan 1000
    interface GigabitEthernet1/13
    switchport
    switchport trunk encapsulation dot1q
    switchport trunk allowed vlan 1000
    switchport mode trunk
    no ip address
    C6500-B
    vlan 1000
    name RSPAN
    remote-span
    monitor session 10 source interface Gi5/1 - 2 rx
    monitor session 10 destination remote vlan 1000
    interface GigabitEthernet1/13
    switchport
    switchport trunk encapsulation dot1q
    switchport trunk allowed vlan 1000
    switchport mode trunk
    no ip address
    end
    but it was not working..
    it wasn't any change of input packet hit count when
    I'd enter a command 'show anomaly-detector module 3 data-port 1 traffic'
    was upper configuration wrong..?
    Can I use VACL configuration ?

    try to change "monitor session 10 destination remote vlan 1000 " to "monitor session 10 destination anomaly-detector-module 3 data-port 1 " on C6500-A

  • What is meant by Local Class and how we can create local classes in abap?

    Hi Friends
    what is meant by Local Class and how we can create local classes in abap?
    Regards,
    Sree

    Hi
    Local classes are the classes which we declare and use using the SE38 ABAP editor
    Global classes are the classes which we find in SE24 and call the methods of them into our program.
    see the sample code
    REPORT zs_class.
    SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETERS:p_var TYPE i,
    p_var1 TYPE i.
    SELECTION-SCREEN END OF BLOCK b1.
    CLASS d_class DEFINITION
    CLASS d_class DEFINITION.
    PUBLIC SECTION.
    METHODS:
    add,
    sub.
    PROTECTED SECTION.
    DATA : var2 TYPE i.
    ENDCLASS. "d_class DEFINITION
    CLASS d_class IMPLEMENTATION
    CLASS d_class IMPLEMENTATION.
    METHOD add.
    var2 = p_var + p_var1.
    WRITE:/ var2.
    ENDMETHOD. "add
    METHOD sub.
    var2 = p_var - p_var1.
    WRITE:/ var2.
    ENDMETHOD. "sub
    ENDCLASS. "d_class IMPLEMENTATION
    START-OF-SELECTION
    START-OF-SELECTION.
    DATA: obj TYPE REF TO d_class.
    CREATE OBJECT: obj .
    CALL METHOD: obj->add,
    Regards
    Anji

  • How to permanently disable local TimeMachine backups?

    Hi,
    I have disabled the local TimeMachine using:
      sudo tmutil disablelocal
    That all works fine but after a reboot, the local backups are back again. For some reason this setting doesn't survives a reboot.
    Can nayone give me some advise on how to permanently disable local TimeMachine backups?
    Dennis

    Here's how I permanently disable TM local snapshots:
    1. create  ~/Library/LaunchAgents/com.wfiveash.disable_tmlsnaps.plist containing:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.wfiveash.disable_tmlsnaps</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/willf/bin/disable_tmlsnaps.ksh</string>
        </array>
        <key>WatchPaths</key>
        <array>
            <string>/Library/Preferences/com.apple.TimeMachine.plist</string>
        </array>
    </dict>
    </plist>
    2. create a shell script ~/bin/disable_tmlsnaps.ksh:
    #!/bin/ksh -p
    # This script is supposed to be run via launchd (see
    # ~/Library/LaunchAgents/com.wfiveash.disable_tmlsnaps.plist) when launchd
    # detects a change to the TimeMachine.plist file.  This script will determine
    # if TM local snapshots has been enabled via the MobileBackups property and if
    # it has it will run the setuid disable_tmlsnaps binary.
    # prevent launchd throttling respawn warning, must wait 10s before this script exits
    sleep 10
    integer lsnaps=-1
    lsnaps=$(defaults read /Library/Preferences/com.apple.TimeMachine.plist MobileBackups)
    if [[ $lsnaps -eq 1 ]]
    then
        exec "${HOME}/bin/i386/disable_tmlsnaps"
    elif [[ $lsnaps -eq -1 ]]
    then
        # there was an error running defaults
        exit 1
    else
        exit 0
    fi
    3. Lastly compiled this C program and named it ~/bin/i386/disable_tmlsnaps.  I set the permissions so it was owned by root and setuid:
    * To build: gcc -o disable_tmlsnaps disable_tmlsnaps.c
    * sudo chown root:wheel disable_tmlsnaps
    * sudo chmod u+s disable_tmlsnaps
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <unistd.h>
    int
    main (int argc, char *argv[])
        int rc;
        rc = setuid(0);
        if (rc == 0)
            rc = system("/usr/bin/tmutil disablelocal");
        return rc;
    =================================================================
    Now when /Library/Preferences/com.apple.TimeMachine.plist is modified (which happens when TM is enabled or disabled) launched will run my disable_tmlsnaps.ksh script which will check to see if it needs to disable TM local snapshots.

  • Tried borrowing ebook fr. Public library but cannot download the book 'coz my ipad2 is not wma supported. I downloaded the overdrive media console but still cannot get the ebook.

    How to download ebook fr. Public library? Tried downloading but ipad2 is not wma supported.

    Note comment about Macs and MP3 in intro below.
    Many libraries worldwide now use Overdrive Media Console, which comes in Mac an Windows versions http://www.overdrive.com/Software/omc .  Some find the mobile device transfer process confusing.  To load or delete a WMA or MP3 (Macs can only download MP3 books) audiobook onto an Apple mobile device see the "How to Transfer to a Portable Device" video in the guides at Step 7, then do the following.
    1. For Windows versions, you must first do a security update of Windows Media Player (even though you won't be using it) using Internet Explorer at http://drmlicense.one.microsoft.com/indivsite .
    2.  Open iTunes, plug the mobile device into the computer USB port and open the Overdrive Media Console.
    3. Highlight the mobile device in the left hand menu of iTunes and insure the "Manually manage music and videos" box is checked in the Summary Tab.
    4. Highlight the book you want to transfer in the Overdrive Media Console and click the Transfer Button.   A window opens permitting you to click the boxes for parts of the book you wish to transfer.
    5. After the book has been transfered, when you click the disclosure triangle (arrow) to the left of the iPod, iPhone, or iPad in the Device section of the left hand menu of iTunes, MP3 books will show up under the Music subsection and WMA books will show up in the Books subsection.  Once the mobile device is disconnected from iTunes, MP3 books will show up in the Songs list of the mobile device and WMA books will show up in the Books list.
    6. To remove a book from a mobile device plug the device into the USB port and open iTunes. Click the disclosure triangle to the left of your iPod, iPhone, or iPad in the Device section of the left hand menu of iTunes so that you can see the device’s subcontents. For an MP3 book select the Music subsection, right click on the book and choose Delete.  For a WMA book, select the Book subsection, right click on the book and choose Delete.
    7. The Overdrive Media Console Guided Tour (videos) is at http://www.overdrive.com/Solutions/Libraries/tour/MenuWelcome.html .  The "Portable Devices" and "How to Transfer to a Portable Device" videos are there.
    8. To find a nearby library for ebooks search http://search.overdrive.com .  You can download the software, search for books and see tutorials without an account at the website of any library that uses Overdrive, however, you need a library card to download books.  At this library site, for example, the software and guided tour are at the bottom of the left hand menu.
    http://washoecounty.lib.overdrive.com/539A4B98-B41A-49DE-8EC1-A22F66E4C0F6/10/41 9/en/default.htm .

Maybe you are looking for