[linux] Met bash parameter functie aanroepen
Frans van Berckel
fberckel op xs4all.nl
Ma Dec 18 19:50:54 CET 2017
On Sun, 2017-12-17 at 19:31 +0100, Frans van Berckel wrote:
> Soms kan een idee, om één en ander op te delen in functies, ook
> gewoon best in schoonheid sterven. Dat het een oplossing onnodig
> ingewikkeld maakt. Dat je zoiets als # cd meermaals gaat aanroepen.
> En het zelfde geldt eigenlijk voor # apt-get. En nog een paar.
>
> Ik ben er gewoon nog niet helemaal uit. Weet je wat, ik slaap er nog
> een nachtje over.
>
> De source van het bash script zit in de bijlage.
Helemaal van functies afgestapt. Ik dacht, het is beter om te
achterhalen, welke stap je kan overslaan.
Er moet iets afhandeling van foutmelding in. Weet nog niet helemaal hoe
dat moet doen? Zie de bijlage voor de script versie van vandaag.
Met vriendelijke groet,
Frans van Berckel
------------- volgend deel ------------
#
##!/bin/bash
#
#
## Building an oldstable Debian kernel packages,
## which is no longer available in unstable
#
## Copyright (c) $year Frans van Berckel
#
major=3.16
minor=3.16.51-3
arch=$(uname -i)
workdir='/usr/src'
url='https://deb.debian.org/debian/pool/main/l/linux'
package='linux-source-${major}_${minor}_all.deb'
tarball='linux-source-${major}.tar.bz2'
linuxdir='${workdir}/linux-source-${major}'
config='${linuxdir}/linux-config-${major}/config.${arch}_none_${arch}.xz'
if [ "$(id -u)" -ne 0 ]; then
echo 'This script must be run as root' >&2
exit 1
fi
for apps in dpkg apt-get
do
if ! [ -x "$(command -v ${apps})" ]; then
echo -e "Error: Are you\nrunning a ${oneofthem} based distribution?">&2
exit 1
fi
done
## Check for all necessary build dependencies
for apps in make-kpkg wget tar
do
if ! [ -x "$(command -v ${apps})" ]; then
apt-get update
apt-get --yes --force-yes --no-install-recommends install kernel-package wget tar
fi
if [[ $? > 0 ]]
then
# The command failed, exiting.
exit 1
else
# The command ran succesfuly, continuing with script.
fi
done
## Download the oldstable kernel package and install
if [ ! -d "${workdir}" ]; then
mkdir -p ${workdir}
fi
cd ${workdir}
if [ ! -f "${package}" ]; then
wget -c ${url}/${package}
dpkg -i ${package}
fi
if [ ! -d "${linuxdir}" ]; then
if [ -f "${tarball}" ]; then
tar xjvf ${tarball}
fi
fi
## Generate config with default from the ARCH supplied defconfig file
cd ${linuxdir}
if [ ! -f "./.config" ]; then
if [ -f "${config}" ]; then
xzcat ${config} ../linux-config-${major/config.${arch}_none_${arch}.xz >> ./.config
fi
fi
make ARCH=${arch} defconfig
## Building the kernel packages
make-kpkg clean
make-kpkg --rootcmd fakeroot --jobs $(`nproc`) --initrd kernel_image kernel_headers
cd ${workdir}
ls -l *.deb
##Installing the new kernel
#cd ${workdir}
#Check first file names before running dpkg
#dpkg -i linux-image-${major}_${minor}_${arch}.deb
#dpkg -i linux-headers-${major}_${minor}_${arch}.deb
Meer informatie over de Linux
maillijst