Skip to contentSkip to conversation

Upgrade to a package with all its dependency without network

DISCUSSION Marco 2 participants 4 messages May 5, 2014 – May 7, 2014

lore
Share & tools
lore

Marco

author
#0 lore raw

Hello,
I need to be able to upgrade to a package with all its dependency chain on a target system that does not have access to the network.

I'm trying to understand what may be the best and also the simplest solution. Perhaps there is already this functionality in OE/Yocto?

I thought to implement a new opkg feture so that I can to generate the list of dependencies of a package and then extract the packages from OE/Yocto using a script or an application.

Another possibility would be to extend the operation of bitbake so I pull out the package and dependencies putting them in a dedicated directory to be moved on the target for the update.

For now I'm just analyzing what may be the possibilities and I'd love to have any comments or advice from someone more experienced than me on this topic.

Thanks

Signature · 4 lines
Marco Cavallini | KOAN sas | Bergamo - Italia
 embedded and real-time software engineering
Phone:+39-035-255.235 - Fax:+39-178-22.39.748
      http://www.KoanSoftware.com
#1 lore raw
Quoted 11 lines · Marco

Hello,
I need to be able to upgrade to a package with all its dependency chain on a target system that does not have access to the network.

I'm trying to understand what may be the best and also the simplest solution.
Perhaps there is already this functionality in OE/Yocto?

I thought to implement a new opkg feture so that I can to generate the list of dependencies of a package and then extract the packages from OE/Yocto using a script or an application.

opkg v0.2.x (the latest release series) doesn't really support this behaviour very well. The caching logic just doesn't work. For example, I have a board connected at the minute with a feed configured so I tried this:

opkg install --download-only ncurses-terminfo
ifdown eth0
opkg install ncurses-terminfo

You'd hope that would pick up the package files from the cache but it doesn't. So even if you put the files there yourself, you may no have a simple way to install them.

An interim solution I can see is to put all the packages you want in one directory then run 'opkg-make-index' from opkg-utils on that directory so that it is a complete package feed. Then add that as a source in /etc/opkg/base-feeds.conf.

The development branch of opkg which will become v0.3.x has much better cache logic, it just needs finishing off and tidying up. I'm very busy at the minute but it's getting there. Any help to close the remaining issues so it can be released would be appreciated!

Quoted 20 lines

Another possibility would be to extend the operation of bitbake so I pull out the package and dependencies putting them in a dedicated directory to be moved on the target for the update.

For now I'm just analyzing what may be the possibilities and I'd love to have any comments or advice from someone more experienced than me on this topic.

Thanks

Signature · 9 lines
Marco Cavallini | KOAN sas | Bergamo - Italia
 embedded and real-time software engineering
Phone:+39-035-255.235 - Fax:+39-178-22.39.748
      http://www.KoanSoftware.com
-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 4 lines
Paul Barker

Email: [email protected]
http://www.paulbarker.me.uk
author
#2 lore raw

Il 05/05/2014 17:29, Paul Barker ha scritto:

Quoted 21 lines · Marco
Quoted 11 lines

Hello,
I need to be able to upgrade to a package with all its dependency chain on a target system that does not have access to the network.

I'm trying to understand what may be the best and also the simplest solution.
Perhaps there is already this functionality in OE/Yocto?

I thought to implement a new opkg feture so that I can to generate the list of dependencies of a package and then extract the packages from OE/Yocto using a script or an application.

opkg v0.2.x (the latest release series) doesn't really support this behaviour very well. The caching logic just doesn't work. For example, I have a board connected at the minute with a feed configured so I tried this:

opkg install --download-only ncurses-terminfo ifdown eth0
opkg install ncurses-terminfo

Quoted 9 lines

You'd hope that would pick up the package files from the cache but it doesn't. So even if you put the files there yourself, you may no have a simple way to install them.

An interim solution I can see is to put all the packages you want in one directory then run 'opkg-make-index' from opkg-utils on that directory so that it is a complete package feed. Then add that as a source in /etc/opkg/base-feeds.conf.

Hi Paul,
thank you for answering.

This is exactly the main problem, how to extract all the packages I (or I should say the package itself) want, in one directory. Would be possible to extend opkg with this feature?

Cheers
--
Marco Cavallini | KOAN sas | Bergamo - Italia

#3 lore raw
Quoted 32 lines · Marco

Il 05/05/2014 17:29, Paul Barker ha scritto:

Quoted 21 lines · Marco
Quoted 11 lines

Hello,
I need to be able to upgrade to a package with all its dependency chain on a target system that does not have access to the network.

I'm trying to understand what may be the best and also the simplest solution.
Perhaps there is already this functionality in OE/Yocto?

I thought to implement a new opkg feture so that I can to generate the list of dependencies of a package and then extract the packages from OE/Yocto using a script or an application.

opkg v0.2.x (the latest release series) doesn't really support this behaviour very well. The caching logic just doesn't work. For example, I have a board connected at the minute with a feed configured so I tried this:

opkg install --download-only ncurses-terminfo
ifdown eth0
opkg install ncurses-terminfo

Quoted 9 lines

You'd hope that would pick up the package files from the cache but it doesn't. So even if you put the files there yourself, you may no have a simple way to install them.

An interim solution I can see is to put all the packages you want in one directory then run 'opkg-make-index' from opkg-utils on that directory so that it is a complete package feed. Then add that as a source in /etc/opkg/base-feeds.conf.

Quoted 7 lines

Hi Paul,
thank you for answering.

This is exactly the main problem, how to extract all the packages I (or I should say the package itself) want, in one directory.
Would be possible to extend opkg with this feature?

Yes, a few people have asked for some method of supporting this use-case so we definitely want to make it work. Now may not be the best time to work on it as the package download code in opkg master is currently in flux and the current work needs finishing. I'm hoping to finish tidying this up soon and then there will be a stable base on which to add this feature.

I'd suggest filing an enhancement request at
https://code.google.com/p/opkg/issues/.

If you'd like to discuss the details of how this could be implemented within opkg or contribute patches yourself then that's best discussed on the opkg mailing list at [email protected].

Cheers,

Signature · 4 lines
Paul Barker

Email: [email protected]
http://www.paulbarker.me.uk