Ubuntu定制工具包与Ubuntu Mate 15.10

我使用UCK创建一个Mate 15.10图像有一些停止。

我有:

uck 2.4.7-0ubuntu2 LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch 

主脚本中存在一系列扩展错误,以及未满足的依赖项。 如何使其工作?

需要进行哪些更改才能创建ISO?

UCK主脚本需要一些更新。

问题1:

缺少依赖:gfxboot-theme-ubuntu

解决它:

 sudo apt-get install gfxboot-theme-ubuntu 

问题2:

与语言环境混乱。 我只是没有检查我仍然安装的语言环境(根本没有检查)。 UCK将从当前安装中获取它们。

问题3:

缺少文件。

我在这里给你修改了我的修改后的/usr/lib/uck/customization-profiles/localized_cd/customize_iso ,以使其工作(从原来的变化标记为“HS”):

 #!/bin/bash ################################################################################### # UCK - Ubuntu Customization Kit # # Copyright (C) 2006-2010 UCK Team # # # # UCK is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # UCK is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with UCK. If not, see . # ################################################################################### # NAME: # customize_iso -- customize iso image outside of root FS # # SYNOPSIS: # customize_iso [remaster_home] [customization_scripts_dir] # # DESCRIPTION: # This procedure performs additional customization that needs to # happen outside of the image of the root file system: # - Configuration of the boot environment # - isolinux configuration # - gfxboot configuration (language/keyboard support!) # - propagation of a new kernel/initrd # - Simple bootmanager (directory "install" in image) # - Configuration of additional resources outside the root FS # - Add-Ons (like sample document/music/video files) # - More Add-Ons (like OSS for Win / Mac) # # NOTES: # Execution of the procedure may require Internet access to download # the source of the latest version gfxboot-theme-ubuntu. # # If a local copy of gfxboot-theme-ubuntu is available in the remaster # home, it will be used instead of a (possibly updated) download. SCRIPT_DIR=`dirname "$0"` REMASTER_HOME=${1:-~/tmp} SCRIPT_DIR=${2-$REMASTER_HOME/customization-scripts} ISO_REMASTER_DIR="$REMASTER_HOME/remaster-iso" REMASTER_DIR="$REMASTER_HOME/remaster-root" BOOT_LANG=`cat "$SCRIPT_DIR/livecd_locale"` function failure() { echo "$@" exit 1 } function get_latest_kernel() { set -- $(ls "$REMASTER_DIR"/boot/vmlinuz* 2>/dev/null | sed -e "s@$REMASTER_DIR/boot/@@" | tr -- '-.' '\t' | sort --key=2 --key=3 --key=4 --key=5 --numeric-sort | tail -n1 ) [ "$1" = "vmlinuz" ] && echo "$REMASTER_DIR/boot/$1-$2.$3.$4-$5-$6" } # Create a temporary directory to assemble the gfxboot stuff in BUILD_DIR=`mktemp -d` if [ -d $REMASTER_HOME/gfxboot-theme-ubuntu ] then cp -r $REMASTER_HOME/gfxboot-theme-ubuntu "$BUILD_DIR" || failure "Cannot copy gfxboot-theme-ubuntu to $BUILD_DIR" pushd "$BUILD_DIR" >/dev/null || failure "Cannot change directory to $BUILD_DIR" else pushd "$BUILD_DIR" >/dev/null || failure "Cannot change directory to $BUILD_DIR" #-----HS (1)--> #DISTRO_CODENAME=`cd "$ISO_REMASTER_DIR"/dists && find . -maxdepth 1 -type d | grep '/' | cut -d '/' -f2` || # failure "Unable to identify Ubuntu distro codename" DISTRO_CODENAME="$(lsb_release -c|awk '{print $2}')"|| failure "Unable to identify Ubuntu distro codename" #-----HS (1)--< APT_SOURCES_TMP_DIR=`mktemp -d` wget -c http://archive.ubuntu.com/ubuntu/ubuntu/ubuntu/dists/$DISTRO_CODENAME/main/source/Sources.gz -O "$APT_SOURCES_TMP_DIR"/Sources.gz #-----HS (2)--> #GFXBOOT_THEME_UBUNTU_SOURCE_PACKAGE=http://archive.ubuntu.com/ubuntu/ubuntu/ubuntu/pool/main/g/gfxboot-theme-ubuntu/$(zgrep gz "$APT_SOURCES_TMP_DIR"/Sources.gz | grep gfxboot-theme-ubuntu | sed -n 1p | awk '{ print $3 }') GFXBOOT_THEME_UBUNTU_SOURCE_PACKAGE=http://archive.ubuntu.com/ubuntu/ubuntu/ubuntu/pool/main/g/gfxboot-theme-ubuntu/$(dpkg -l|grep gfxboot-theme-ubuntu|awk '{print $2"_"$3"_"$4".deb"}') #-----HS (2)--< wget $GFXBOOT_THEME_UBUNTU_SOURCE_PACKAGE || failure "Unable to download gfxboot-theme-ubuntu source package from $GFXBOOT_THEME_UBUNTU_SOURCE_PACKAGE" #-----HS (3)--> #tar xfz *.tar.gz || tar xfz *.tar.gz dpkg -x *.deb . || failure "Unable to extract gfxboot-theme-ubuntu source package" #-----HS (3)--< fi # Build the gfx boot theme #-----HS (4)--> cd usr/share #-----HS (4)--< cd gfxboot-theme-ubuntu cd po ln -s pt.po pt_PT.po cd .. ##if [ "$BOOT_LANG" = "pt_PT" ]; then ## make DEFAULT_LANG="pt" || failure "Failed to build gfxboot theme" ##else make DEFAULT_LANG="$BOOT_LANG" || failure "Failed to build gfxboot theme" ##fi # Fix list of languages pushd boot >/dev/null # Create regexp that matches all language packs on CD langpack="" for langpack in `cat "$SCRIPT_DIR/language_packs"`; do if [ -z "$LANGPACKS" ]; then LANGPACKS="$langpack" else LANGPACKS="$LANGPACKS|$langpack" fi done # Rewrite langlist cat "$SCRIPT_DIR/livecd_locales" >langlist popd >/dev/null # Copy to isolinux in image directory cp -af boot/* "$ISO_REMASTER_DIR/isolinux/" || failure "Error while copying boot files to $ISO_REMASTER_DIR/isolinux" popd >/dev/null # Cleanup [ "$BUILD_DIR" != "/" ] && rm -rf "$BUILD_DIR" # Copy kernel and initrd, in case it was changed during installation VMLINUZ=$(get_latest_kernel) if [ "$VMLINUZ" != "" ] then INITRD="$REMASTER_DIR"/boot/initrd.img-$(echo `basename $VMLINUZ` | cut -d'-' -f 2-) if [ -e "$VMLINUZ" -a -e "$INITRD" ] then echo "Updating kernel:" echo " kernel=$VMLINUZ" echo " initrd=$INITRD" cp -f "$VMLINUZ" "$ISO_REMASTER_DIR/casper/vmlinuz" cp -f "$INITRD" "$ISO_REMASTER_DIR/casper/initrd.gz" else echo "Not updating kernel as initrd not present" fi fi # Misc fixup for Karmic pushd "$ISO_REMASTER_DIR"/isolinux >/dev/null # What used to be called "message" is now called "bootlogo" if [ -f isolinux.cfg -a -n "`grep "gfxboot bootlogo" isolinux.cfg 2>/dev/null`" ] then if [ -f message ] then echo "Using bootlogo instead of message" mv message bootlogo fi fi # What used to be a gzipped initrd now is a lzma compressed initrd if [ -f text.cfg ] || [ -f txt.cfg ] then # At least one of the .cfg file will be missing. Drop error message. lzused=`grep initrd.lz text.cfg txt.cfg 2>/dev/null` lzmacmd=`which lzma` if [ -n "$lzused" ] then if [ -n "$lzmacmd" ] then if [ -f ../casper/initrd.gz ] then pushd "$ISO_REMASTER_DIR"/casper >/dev/null echo "Recompressing initrd from gzip to lzma" rm -f initrd.lz gunzip initrd.lz rm -f initrd.gz popd >/dev/null fi else if [ -f ../casper/initrd.gz ] then echo "lzma command not installed" echo "Switching permanently to gzipped initrd" sed -i -e 's/initrd\.lz/initrd.gz/g' text.cfg txt.cfg rm -f ../casper/initrd.lz else : do nothing - no initrd.gz fi fi else : do nothing - initrd.lz not used fi fi 

最好的祝福。

问题4

缺少配合终端以通过命令行进行自定义操作。

我更改了文件/usr/lib/uck/customization-profiles/localized_cd/customize函数run_console()

 function run_console() { echo "Starting console application..." CONSOLE_APP=`which konsole` CONSOLE_APP_OPTIONS=(--caption "UCK customization console" -e /bin/bash) if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which gnome-terminal` CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash) fi if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which xfce4-terminal` CONSOLE_APP_OPTIONS=(-T "UCK customization console" -e /bin/bash) fi if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which lxterminal` CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash) fi if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which mate-terminal` CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash) fi if [ "$CONSOLE_APP" = "" ]; then CONSOLE_APP=`which xterm` CONSOLE_APP_OPTIONS=(-title "UCK customization console" -e /bin/bash) fi if [ "$CONSOLE_APP" = "" ]; then dialog_msgbox "Failure" "Unable to find any console application" else eval `dbus-launch --sh-syntax --exit-with-session 2>/dev/null` $CONSOLE_APP "${CONSOLE_APP_OPTIONS[@]}" RESULT=$? fi } 

请参见: https : //forum.ubuntu-fr.org/viewtopic.php?id = 1758821