From 9a8dee470176e4139669c8c84d87c34d649c6756 Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Dec 13 2019 18:59:47 +0000 Subject: use aufs and iso --- diff --git a/chrooter/build-initial-system.sh b/chrooter/build-initial-system.sh index 59090e0..b511ffa 100755 --- a/chrooter/build-initial-system.sh +++ b/chrooter/build-initial-system.sh @@ -22,9 +22,6 @@ chroot $chroot_dir apt-get autoclean chroot $chroot_dir apt-get clean chroot $chroot_dir apt-get autoremove -olddir=`pwd` -pushd $chroot_dir -zip "$olddir/debian-$suite-$arch.zip" -qyr0 . || true # zip cannot process some files from /dev -popd +genisoimage -quiet -R -o "$olddir/debian-$suite-$arch.iso" "$chroot_dir" rm -rf $chroot_dir diff --git a/chrooter/chrooter.sh b/chrooter/chrooter.sh index 553941b..9cbc879 100755 --- a/chrooter/chrooter.sh +++ b/chrooter/chrooter.sh @@ -9,6 +9,7 @@ cd "$OLDDIR" INSTANCE_NAME=`uuidgen` INSTANCE_NAME="chrooter-$INSTANCE_NAME" PRIVILEGED= +COMMANDARCH= IMAGE_MOUNT_DIR= COMMAND_ERROR= PREFIX="$CHROOTER_PREFIX" @@ -21,10 +22,8 @@ trap 'image_unmount; exit 1' SIGINT image_mount_add() { echo "Mount: $1 -> $2" sudo mkdir -p "$IMAGE_MOUNT_DIR/root$2" - sudo mount --rbind "$1" "$IMAGE_MOUNT_DIR/root$2" - echo "umount -R \"$IMAGE_MOUNT_DIR/root$2\" \\" >> "/$PREFIX/$INSTANCE_NAME.umount.sh" - echo "|| (echo \"next try after 10 seconds\" && sleep 10 && umount -Rf \"$IMAGE_MOUNT_DIR/root$2\") \\" >> "/$PREFIX/$INSTANCE_NAME.umount.sh" - echo "|| (echo \"final try after 10 seconds\" && sleep 10 && umount -Rf \"$IMAGE_MOUNT_DIR/root$2\")" >> "/$PREFIX/$INSTANCE_NAME.umount.sh" + sudo mount --bind "$1" "$IMAGE_MOUNT_DIR/root$2" + echo "umount -f \"$IMAGE_MOUNT_DIR/root$2\" || umount -l \"$IMAGE_MOUNT_DIR/root$2\"" >> "/$PREFIX/$INSTANCE_NAME.umount.sh" } image_mount() { @@ -40,11 +39,11 @@ image_mount() { fi local IMAGE_NAME="$(echo $1 | tr "/:" "_")" - local IMAGE_FILE="$BASE_DIR/image/$IMAGE_NAME.zip" + local IMAGE_FILE="$BASE_DIR/image/$IMAGE_NAME.iso" echo "Prepare image: $1" IMAGE_MOUNT_DIR="/$PREFIX/$INSTANCE_NAME" - mkdir -p "$IMAGE_MOUNT_DIR/zip" + mkdir -p "$IMAGE_MOUNT_DIR/iso" mkdir -p "$IMAGE_MOUNT_DIR/work" mkdir -p "$IMAGE_MOUNT_DIR/root" @@ -53,21 +52,19 @@ image_mount() { sudo chmod a+x "$IMAGE_MOUNT_DIR/work/$INSTANCE_NAME.chroot.sh" echo "Mount root" - sudo fuse-zip -o ro "$IMAGE_FILE" "$IMAGE_MOUNT_DIR/zip" - sudo unionfs-fuse -o cow $IMAGE_MOUNT_DIR/work=RW:$IMAGE_MOUNT_DIR/zip=RO $IMAGE_MOUNT_DIR/root/ + sudo mount -r "$IMAGE_FILE" "$IMAGE_MOUNT_DIR/iso" + sudo mount -wt aufs -o br=$IMAGE_MOUNT_DIR/work:$IMAGE_MOUNT_DIR/iso -o udba=none none $IMAGE_MOUNT_DIR/root/ set -- "${@:2}" echo "Mount subs: $@" - echo "#!/bin/sh" > "/$PREFIX/$INSTANCE_NAME.umount.sh" - echo "" >> "/$PREFIX/$INSTANCE_NAME.umount.sh" - echo "set -e" >> "/$PREFIX/$INSTANCE_NAME.umount.sh" + echo "#!/bin/bash" > "/$PREFIX/$INSTANCE_NAME.umount.sh" chmod a+x "/$PREFIX/$INSTANCE_NAME.umount.sh" if [ ! -z "$PRIVILEGED" ]; then echo "Mount /proc and /dev for priveleged feature" image_mount_add /proc /proc image_mount_add /dev /dev fi - for ARG in $@; do + for ARG in $@; do SRC="$(echo "$ARG" | cut -d':' -f 1)" DEST="$(echo "$ARG" | cut -d':' -f 2-)" image_mount_add $SRC $DEST @@ -80,7 +77,7 @@ image_mount() { image_unmount() { echo "Unmount image" - + if [ -z "$IMAGE_MOUNT_DIR" ]; then echo "Image not mounted" return 1 @@ -95,20 +92,18 @@ image_unmount() { if [ ! -z $1 ]; then echo "Save image: $1" - + local IMAGE_NAME="$(echo $1 | tr "/:" "_")" - local IMAGE_FILE="$BASE_DIR/image/$IMAGE_NAME.zip" + local IMAGE_FILE="$BASE_DIR/image/$IMAGE_NAME.iso" local IMAGE_DIR=`dirname "$IMAGE_FILE"` mkdir -p "$IMAGE_DIR" - - cd "$IMAGE_MOUNT_DIR/root" - sudo rm "$IMAGE_FILE" - sudo zip "$IMAGE_FILE" -qyr0 . - cd "$OLDDIR" + + sudo rm -f "$IMAGE_FILE" + sudo genisoimage -quiet -R -o "$IMAGE_FILE" "$IMAGE_MOUNT_DIR/root" fi - sudo umount "$IMAGE_MOUNT_DIR/root" || (sleep 10 && umount -f "$IMAGE_MOUNT_DIR/root") - sudo umount "$IMAGE_MOUNT_DIR/zip" || (sleep 10 && umount -f "$IMAGE_MOUNT_DIR/zip") + sudo umount -R -f "$IMAGE_MOUNT_DIR/root" || umount -R -l "$IMAGE_MOUNT_DIR/root" + sudo umount -f "$IMAGE_MOUNT_DIR/iso" || umount -l "$IMAGE_MOUNT_DIR/iso" echo "Remove mount dirs" sudo rm -rf --one-file-system "$IMAGE_MOUNT_DIR" @@ -117,13 +112,18 @@ image_unmount() { image_command() { echo "Run command: $@" - + if [ -z "$IMAGE_MOUNT_DIR" ]; then echo "Image not mounted" return 1 fi - if ! env -i /usr/bin/sudo -i chroot "$IMAGE_MOUNT_DIR/root" "/$INSTANCE_NAME.chroot.sh" $@; then + local SETARCH= + if [ ! -z "$COMMANDARCH" ]; then + SETARCH=setarch + fi + + if ! env -i /usr/bin/sudo -i $SETARCH $COMMANDARCH chroot "$IMAGE_MOUNT_DIR/root" "/$INSTANCE_NAME.chroot.sh" $@; then COMMAND_ERROR=1 echo "Command returned with error" fi @@ -131,7 +131,7 @@ image_command() { image_copy() { echo "Copy into image: $1 $2" - + if ! cp "$1" "$IMAGE_MOUNT_DIR/root/$2"; then echo "Cannot copy \"$1\" -> \"$IMAGE_MOUNT_DIR/root/$2\"" return 1 @@ -144,7 +144,7 @@ chroot_file_begin() { } chroot_file_env() { - echo "Set env: $1=\"$2\"" + echo "Set env: $1=\"$2\"" echo "export $1=\"$2\"" >> "/$PREFIX/$INSTANCE_NAME.chroot.sh" } @@ -154,18 +154,18 @@ chroot_file_end() { import() { echo "Import $2" - + if [ ! "$1" = "-" ]; then - echo "Unknown commandline argument $1" + echo "Unknown commandline argument $1" fi if [ -z "$2" ]; then - echo "Image name was not set" - return 1 + echo "Image name was not set" + return 1 fi - - + + local IMAGE_NAME="$(echo $2 | tr "/:" "_")" - local IMAGE_FILE="$BASE_DIR/image/$IMAGE_NAME.zip" + local IMAGE_FILE="$BASE_DIR/image/$IMAGE_NAME.iso" local IMAGE_DIR=`dirname "$IMAGE_FILE"` mkdir -p "$IMAGE_DIR" cat "/dev/stdin" > $IMAGE_FILE @@ -173,10 +173,10 @@ import() { build() { echo "Build" - + local IMAGE_NAME= local WORK_DIR= - + chroot_file_begin local MODE= for ARG in $@; do @@ -207,6 +207,9 @@ build() { ENVVALUE="$(echo "$SUBVALUE" | cut -d'=' -f 2-)" chroot_file_env "$ENVKEY" "$ENVVALUE" continue + elif [ "$SUBMODE" = "--buildarch" ]; then + COMMANDARCH="$SUBVALUE" + continue else MODE=$ARG fi @@ -326,14 +329,14 @@ run() { if [ "$1" = "import" ]; then - set -- "${@:2}" - import $@ + set -- "${@:2}" + import $@ elif [ "$1" = "build" ]; then - set -- "${@:2}" - build $@ + set -- "${@:2}" + build $@ elif [ "$1" = "run" ]; then - set -- "${@:2}" - run $@ + set -- "${@:2}" + run $@ else echo "Unknown command: $1" COMMAND_ERROR=1 diff --git a/env/debian-7-32bit/.gitignore b/env/debian-7-32bit/.gitignore index 7262eb3..ee6c8ed 100644 --- a/env/debian-7-32bit/.gitignore +++ b/env/debian-7-32bit/.gitignore @@ -1 +1 @@ -/debian-wheezy-i386.zip +/debian-wheezy-i386.iso diff --git a/env/debian-7-32bit/build-base.sh b/env/debian-7-32bit/build-base.sh index 2cf12da..9540a71 100755 --- a/env/debian-7-32bit/build-base.sh +++ b/env/debian-7-32bit/build-base.sh @@ -14,9 +14,9 @@ if [ -f $CONFIG_FILE ]; then source $CONFIG_FILE fi -IMAGE_FILE="$SCRIPT_DIR/debian-$suite-$arch.zip" +IMAGE_FILE="$SCRIPT_DIR/debian-$suite-$arch.iso" if [ ! -f "$IMAGE_FILE" ]; then - "$SCRIPT_DIR/build-zip.sh" + "$SCRIPT_DIR/build-iso.sh" fi @@ -24,5 +24,5 @@ if [ -f "$IMAGE_FILE" ]; then chrooter import - $chrooter_image < "$IMAGE_FILE" else echo "File $IMAGE_FILE not found" - echo "You may try to create it by command $SCRIPT_DIR/build-zip.sh" + echo "You may try to create it by command $SCRIPT_DIR/build-iso.sh" fi diff --git a/env/debian-7-32bit/build-iso.sh b/env/debian-7-32bit/build-iso.sh new file mode 100755 index 0000000..60d65a3 --- /dev/null +++ b/env/debian-7-32bit/build-iso.sh @@ -0,0 +1,35 @@ +#!/bin/bash -x + +set -e + +arch=i386 +suite=wheezy +chroot_dir="/var/chroot/$suite" +apt_mirror="http://archive.debian.org/debian/" + +SCRIPT_DIR=$(cd `dirname "$0"`; pwd) +BASE_DIR=`dirname "$SCRIPT_DIR"` +BASE_DIR=`dirname "$BASE_DIR"` +CONFIG_FILE="$BASE_DIR/config.sh" +if [ -f $CONFIG_FILE ]; then + source $CONFIG_FILE +fi + +export DEBIAN_FRONTEND=noninteractive +debootstrap --arch $arch $suite $chroot_dir $apt_mirror + +cat < $chroot_dir/etc/apt/sources.list +deb $apt_mirror $suite main +#deb $apt_mirror $suite-updates main +#deb http://security.debian.org/ $suite/updates main +EOF + +chroot $chroot_dir apt-get update +chroot $chroot_dir apt-get upgrade -y +chroot $chroot_dir apt-get autoclean +chroot $chroot_dir apt-get clean +chroot $chroot_dir apt-get autoremove + +genisoimage -quiet -R -o "$SCRIPT_DIR/debian-$suite-$arch.iso" "$chroot_dir" + +rm -rf $chroot_dir diff --git a/env/debian-7-32bit/build-zip.sh b/env/debian-7-32bit/build-zip.sh deleted file mode 100755 index ade8fd1..0000000 --- a/env/debian-7-32bit/build-zip.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -x - -set -e - -arch=i386 -suite=wheezy -chroot_dir="/var/chroot/$suite" -apt_mirror="http://archive.debian.org/debian/" - -SCRIPT_DIR=$(cd `dirname "$0"`; pwd) -BASE_DIR=`dirname "$SCRIPT_DIR"` -BASE_DIR=`dirname "$BASE_DIR"` -CONFIG_FILE="$BASE_DIR/config.sh" -if [ -f $CONFIG_FILE ]; then - source $CONFIG_FILE -fi - -export DEBIAN_FRONTEND=noninteractive -debootstrap --arch $arch $suite $chroot_dir $apt_mirror - -cat < $chroot_dir/etc/apt/sources.list -deb $apt_mirror $suite main -#deb $apt_mirror $suite-updates main -#deb http://security.debian.org/ $suite/updates main -EOF - -chroot $chroot_dir apt-get update -chroot $chroot_dir apt-get upgrade -y -chroot $chroot_dir apt-get autoclean -chroot $chroot_dir apt-get clean -chroot $chroot_dir apt-get autoremove - -pushd $chroot_dir -zip "$SCRIPT_DIR/debian-$suite-$arch.zip" -qyr0 . || true # zip cannot process some files from /dev -popd - -rm -rf $chroot_dir diff --git a/env/debian-7-32bit/build.sh b/env/debian-7-32bit/build.sh index 4598e5e..cb4deb1 100755 --- a/env/debian-7-32bit/build.sh +++ b/env/debian-7-32bit/build.sh @@ -12,4 +12,4 @@ if [ -f $CONFIG_FILE ]; then fi mkdir -p $PACKET_BUILD_DIR -chrooter build -t morevnaproject/build-debian-7-32 --privileged=true $CHROOTER_BUILD_OPTIONS "$SCRIPT_DIR" +chrooter build -t morevnaproject/build-debian-7-32 --privileged=true --buildarch=i686 $CHROOTER_BUILD_OPTIONS "$SCRIPT_DIR" diff --git a/env/debian-7-32bit/files/install-gcc.sh b/env/debian-7-32bit/files/install-gcc.sh index c546091..661989c 100755 --- a/env/debian-7-32bit/files/install-gcc.sh +++ b/env/debian-7-32bit/files/install-gcc.sh @@ -16,7 +16,7 @@ echo && echo "build and install" && echo mkdir -p build cd build [ -f "../configure.done" ] || (../gcc-*/configure && touch "../configure.done") -make -j`nproc` +make -j`nproc` || make || make make install (cd /usr/local/bin && ln gcc cc) cd .. diff --git a/env/debian-7-64bit/.gitignore b/env/debian-7-64bit/.gitignore index 637b5fe..6002e59 100644 --- a/env/debian-7-64bit/.gitignore +++ b/env/debian-7-64bit/.gitignore @@ -1 +1 @@ -/debian-wheezy-amd64.zip +/debian-wheezy-amd64.iso diff --git a/env/debian-7-64bit/Buildfile b/env/debian-7-64bit/Buildfile index 40e0326..afa486f 100644 --- a/env/debian-7-64bit/Buildfile +++ b/env/debian-7-64bit/Buildfile @@ -17,6 +17,9 @@ RUN apt-get -yq install ca-certificates # install tools RUN apt-get -yq install bash sudo pkg-config g++ make wget bzip2 +# wget cannot check SSL-certificate for some sites +RUN apt-get -yq install curl + # upgrade gcc RUN apt-get -yq install libgmp-dev libmpfr-dev libmpc-dev gcc-multilib COPY files/install-gcc.sh / @@ -68,9 +71,6 @@ RUN apt-get -yq install libegl1-mesa-dev RUN apt-get -yq install libdirectfb-dev RUN apt-get -yq install libxcursor-dev -# wget cannot check SSL-certificate for some sites -RUN apt-get -yq install curl - # for synfigstudio-nsis RUN apt-get -yq install unzip diff --git a/env/debian-7-64bit/build-base.sh b/env/debian-7-64bit/build-base.sh index 2890597..c6647f0 100755 --- a/env/debian-7-64bit/build-base.sh +++ b/env/debian-7-64bit/build-base.sh @@ -14,9 +14,9 @@ if [ -f $CONFIG_FILE ]; then source $CONFIG_FILE fi -IMAGE_FILE="$SCRIPT_DIR/debian-$suite-$arch.zip" +IMAGE_FILE="$SCRIPT_DIR/debian-$suite-$arch.iso" if [ ! -f "$IMAGE_FILE" ]; then - "$SCRIPT_DIR/build-zip.sh" + "$SCRIPT_DIR/build-iso.sh" fi @@ -24,5 +24,5 @@ if [ -f "$IMAGE_FILE" ]; then chrooter import - $chrooter_image < "$IMAGE_FILE" else echo "File $IMAGE_FILE not found" - echo "You may try to create it by command $SCRIPT_DIR/build-zip.sh" + echo "You may try to create it by command $SCRIPT_DIR/build-iso.sh" fi diff --git a/env/debian-7-64bit/build-iso.sh b/env/debian-7-64bit/build-iso.sh new file mode 100755 index 0000000..525e7a5 --- /dev/null +++ b/env/debian-7-64bit/build-iso.sh @@ -0,0 +1,35 @@ +#!/bin/bash -x + +set -e + +arch=amd64 +suite=wheezy +chroot_dir="/var/chroot/$suite" +apt_mirror="http://archive.debian.org/debian/" + +SCRIPT_DIR=$(cd `dirname "$0"`; pwd) +BASE_DIR=`dirname "$SCRIPT_DIR"` +BASE_DIR=`dirname "$BASE_DIR"` +CONFIG_FILE="$BASE_DIR/config.sh" +if [ -f $CONFIG_FILE ]; then + source $CONFIG_FILE +fi + +export DEBIAN_FRONTEND=noninteractive +setarch x86_64 debootstrap --arch $arch $suite $chroot_dir $apt_mirror + +cat < $chroot_dir/etc/apt/sources.list +deb $apt_mirror $suite main +#deb $apt_mirror $suite-updates main +#deb http://security.debian.org/ $suite/updates main +EOF + +chroot $chroot_dir apt-get update +chroot $chroot_dir apt-get upgrade -y +chroot $chroot_dir apt-get autoclean +chroot $chroot_dir apt-get clean +chroot $chroot_dir apt-get autoremove + +genisoimage -quiet -R -o "$SCRIPT_DIR/debian-$suite-$arch.iso" "$chroot_dir" + +rm -rf $chroot_dir diff --git a/env/debian-7-64bit/build-zip.sh b/env/debian-7-64bit/build-zip.sh deleted file mode 100755 index b3c3b81..0000000 --- a/env/debian-7-64bit/build-zip.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -x - -set -e - -arch=amd64 -suite=wheezy -chroot_dir="/var/chroot/$suite" -apt_mirror="http://archive.debian.org/debian/" - -SCRIPT_DIR=$(cd `dirname "$0"`; pwd) -BASE_DIR=`dirname "$SCRIPT_DIR"` -BASE_DIR=`dirname "$BASE_DIR"` -CONFIG_FILE="$BASE_DIR/config.sh" -if [ -f $CONFIG_FILE ]; then - source $CONFIG_FILE -fi - -export DEBIAN_FRONTEND=noninteractive -debootstrap --arch $arch $suite $chroot_dir $apt_mirror - -cat < $chroot_dir/etc/apt/sources.list -deb $apt_mirror $suite main -#deb $apt_mirror $suite-updates main -#deb http://security.debian.org/ $suite/updates main -EOF - -chroot $chroot_dir apt-get update -chroot $chroot_dir apt-get upgrade -y -chroot $chroot_dir apt-get autoclean -chroot $chroot_dir apt-get clean -chroot $chroot_dir apt-get autoremove - -pushd $chroot_dir -zip "$SCRIPT_DIR/debian-$suite-$arch.zip" -qyr0 . || true # zip cannot process some files from /dev -popd - -rm -rf $chroot_dir diff --git a/env/debian-7-64bit/files/install-gcc.sh b/env/debian-7-64bit/files/install-gcc.sh index c546091..661989c 100755 --- a/env/debian-7-64bit/files/install-gcc.sh +++ b/env/debian-7-64bit/files/install-gcc.sh @@ -16,7 +16,7 @@ echo && echo "build and install" && echo mkdir -p build cd build [ -f "../configure.done" ] || (../gcc-*/configure && touch "../configure.done") -make -j`nproc` +make -j`nproc` || make || make make install (cd /usr/local/bin && ln gcc cc) cd .. diff --git a/env/debian-7-64bit/files/install-mingw.sh b/env/debian-7-64bit/files/install-mingw.sh index 8fec17f..ec2265b 100755 --- a/env/debian-7-64bit/files/install-mingw.sh +++ b/env/debian-7-64bit/files/install-mingw.sh @@ -47,7 +47,7 @@ download() { wget -c --no-cookies --max-redirect 40 "$URL_BINUTILS" wget -c --no-cookies --max-redirect 40 "$URL_GCC" - wget -c --no-cookies --max-redirect 40 "$URL_MINGW" + wget -c --no-cookies --max-redirect 40 "$URL_MINGW" || curl -L "$URL_MINGW" -o "$ARH_MINGW" wget -c --no-cookies --max-redirect 40 "$URL_ICONV" wget -c --no-cookies --max-redirect 40 "$URL_GETTEXT" @@ -76,7 +76,7 @@ install_binutils() { --prefix="/usr/local/$ARCH/sys-root" touch "configure.done" fi - make -j$THREADS || make + make -j$THREADS || make || make sudo make install touch "done" fi @@ -95,7 +95,7 @@ install_headers() { --prefix="/usr/local/$ARCH/sys-root" touch "configure.done" fi - make -j$THREADS || make + make -j$THREADS || make || make sudo make install pushd "/usr/local/$ARCH/sys-root" sudo ln -s . mingw @@ -121,7 +121,7 @@ install_gcc() { --prefix="/usr/local/$ARCH/sys-root" touch "configure.done" fi - make -j$THREADS all-gcc || make + make -j$THREADS all-gcc || make || make sudo make install-gcc touch "gcc.done" fi @@ -142,7 +142,7 @@ install_crt() { --prefix="/usr/local/$ARCH/sys-root" touch "configure.done" fi - make -j$THREADS || make + make -j$THREADS || make || make sudo "../../../$0" host_install "$ARCH" touch "done" fi @@ -156,7 +156,7 @@ finish_gcc() { cd "install-mingw/build/gcc-$ARCH" if [ ! -f "done" ]; then echo && echo "finish gcc $ARCH" && echo - make -j$THREADS || make + make -j$THREADS || make || make sudo "../../../$0" host_install "$ARCH" touch "done" fi @@ -179,7 +179,7 @@ install_library() { ${@:3} touch "configure.done" fi - make -j$THREADS || make + make -j$THREADS || make || make sudo "../../../$0" host_install "$ARCH" touch "done" fi @@ -201,7 +201,7 @@ install_tool() { ${@:3} touch "configure.done" fi - make -j$THREADS || make + make -j$THREADS || make || make sudo "../../../$0" host_install "$ARCH" touch "done" fi @@ -224,7 +224,7 @@ install_iconv() { --prefix="/usr/local/$ARCH/sys-root" touch "configure.done" fi - make -j$THREADS || make + make -j$THREADS || make || make sudo "../../../$0" host_install "$ARCH" touch "done" fi @@ -253,7 +253,7 @@ install_gettext() { --prefix="/usr/local/$ARCH/sys-root" touch "configure.done" fi - make -j$THREADS || make + make -j$THREADS || make || make sudo "../../../$0" host_install "$ARCH" touch "done" fi diff --git a/readme b/readme index ddb2eb7..282f2f9 100644 --- a/readme +++ b/readme @@ -4,11 +4,9 @@ run all commands from root (as superuser) install dependency packages: - you need: bash sudo uuid-runtime unionfs-fuse fuse-zip + you need: bash sudo uuid-runtime aufs-tools fuse genisoimage for apt based OS use comand: - apt-get install bash sudo uuid-runtime unionfs-fuse fuse-zip - -if you are inside a linux container then your container need access to /dev/fuse device + apt-get install bash sudo uuid-runtime aufs-tools fuse genisoimage create and edit config file: @@ -29,8 +27,8 @@ download virtual environment: https://coolbug.org/downloads/morevna/builder-images/ you need two files: - https://coolbug.org/downloads/morevna/builder-images/morevnaproject_build-debian-7-32.zip - https://coolbug.org/downloads/morevna/builder-images/morevnaproject_build-debian-7-64.zip + https://coolbug.org/downloads/morevna/builder-images/morevnaproject_build-debian-7-32.iso + https://coolbug.org/downloads/morevna/builder-images/morevnaproject_build-debian-7-64.iso approximate 6.5Gb, place both into chrooter/images/ @@ -40,25 +38,29 @@ build virtual environment: before begin you may configure debian mirror in files: env/debian-7-32bit/files/sources.list env/debian-7-64bit/files/sources.list - env/debian-7-32bit/build-zip.sh into variable apt_mirror - env/debian-7-64bit/build-zip.sh into variable apt_mirror + env/debian-7-32bit/build-iso.sh into variable apt_mirror + env/debian-7-64bit/build-iso.sh into variable apt_mirror here you still can download a base debian images from: - https://coolbug.org/downloads/morevna/builder-images/debian-wheezy-i386.zip - https://coolbug.org/downloads/morevna/builder-images/debian-wheezy-amd64.zip + https://coolbug.org/downloads/morevna/builder-images/debian-wheezy-i386.iso + https://coolbug.org/downloads/morevna/builder-images/debian-wheezy-amd64.iso approximate 500Mb, place first into env/debian-7-32bit and second into env/debian-7-64bit or build these images from scratch by debootstrap - install packages: debootstrap zip; for apt based OS use command: - apt-get install debootstrap zip + install debootstarp: + apt-get install debootstrap and build base debian images cd env/debian-7-32bit # go to env/debian-7-32bit - ./build-zip.sh + ./build-iso.sh cd ../debian-7-64bit # go to env/debian-7-64bit - ./build-zip.sh + ./build-iso.sh cd ../.. # go back + after that will appear two new files: + env/debian-7-32bit/debian-wheezy-i386.iso + env/debian-7-64bit/debian-wheezy-amd64.iso + - now when you have files debian-wheezy-XXXX.zip you can build os images for builder + now when you have files debian-wheezy-XXXX.iso you can build os images for builder it's a long process because it will build GCC and MinGW from scratch run commands: cd env/debian-7-32bit # go to env/debian-7-32bit