Re: live-build: how to include .deb files not in any repository?
[re-sent with a copy to the list]
On Thu, Jul 20, 2017 at 11:28:43AM -0400, PICCORO McKAY Lenz wrote:
> i build a live but only using official repositories
>
> i want to install two packages manually two deb files? how?
You can do this via the "customise" script. If your lwr has a
"--customise=" commandline flag, use it to specify the script.
Otherwise, I think the old rule is to look for the file
"hooks/customise.sh" relative to the directory where lwr is invoked.
You'll want to take a copy of /usr/share/live-wrapper/customise.sh and
change it for your own needs. Remember that this script is invoked in
the system where you're building the live wrapper, so you have to
"chroot" into it for most tasks.
My approach was to use an existing debian package repository, so
customise.sh starts by putting a trusted key in:
cat > ${rootdir}/etc/apt/trusted.gpg.d/linuxcnc.asc <<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
[snipped]
EOF
create a new list under sources.list.d:
cat > ${rootdir}/etc/apt/sources.list.d/linuxcnc.list <<EOF
deb http://linuxcnc.org/ stretch base
[snipped]
EOF
and list the packages I wanted from it along with other pakages in the
lwr "-e" list:
lwr ... -e "... linuxcnc-uspace linuxcnc-uspace-dev ..."
If I didn't have a debian package repository, then I would have to do
something more like
copy the .deb files into ${rootdir}/tmp
chroot ${rootdir} dpkg -i tmp/package1.deb tmp/package2.deb
chroot ${rootdir} apt -f install
The last step is to install any dependencies those .debs have that are
met by packages in Debian.
My full customise script is public, inside the git repo at
https://github.com/jepler/stretch-live-build
Jeff
Reply to: