[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: