gothicVI
Anmeldungsdatum: 25. April 2011
Beiträge: Zähle...
Wohnort: München
|
Hallo zusammen, die Überschrift sagt eigentlich ja schon Alles 😉 Ich bekomme über die Uni verschiedene Software (VPN-Client, Mathematica, etc.) zur Verfügung gestellt. Zum Glück auch für Linux - leider jedoch nur als .sh-Installer =( Ich meine mal irgendwo gelesen zu haben, dass in solchen .sh-Installern irgendwie noch ein Archiv verpackt ist. Somit zu meiner Frage: Kann ich aus besagten .sh-Installern die Dateien irgendwie extrahieren und ein .deb-Paket daraus bauen, sodass ich im Fall der Fälle die Software auch wieder ordentlich entfernen kann? Ich installiere nur sehr ungerne an der Paketverwaltung vorbei! Danke schonmal und Gruß aus München gothicVI
|
axt
Anmeldungsdatum: 22. November 2006
Beiträge: 34254
|
.sh ist einfach nur die Endung für Shell-Scripts.
|
gothicVI
(Themenstarter)
Anmeldungsdatum: 25. April 2011
Beiträge: 56
Wohnort: München
|
axt schrieb: .sh ist einfach nur die Endung für Shell-Scripts.
Das ist mir klar. Atm verwende ich ja auch die .sh-Installer via
chmod +x xxx.sh
sudo ./ xxx.sh
wie auch beschrieben. Jedoch möchte ich davon weg, da ich damit ja Software an der Paketverwaltung vorbei installiere...
|
Frank62
Anmeldungsdatum: 8. Dezember 2008
Beiträge: 2105
Wohnort: Borken
|
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 3991
|
Manchmal haben so sh-Installer sogar einen Parameter zum Entpacken, das entpackte lässt sich dann in ein Debianpaket bringen. z.B. Netbeans:
sh netbeans-8.0.2-linux.sh --help
...
--extract [dir] Extract all bundled data to <dir>.
If <dir> is not specified then extract to the current directory z.B. Qt:
./qt-opensource-linux-x64-5.4.1.run --help
...
--create-offline-repository Offline installer only: Create a local repository inside the
installation directory based on the offline
installer's content.
--dump-binary-data -i [PATH] -o [PATH] Dumps the binary content into specified output path (offline
installer only). z.B. Vmware:
bash VMware-Workstation-Full-11.1.0-2496824.x86_64.bundle --help
...
-x DIR, --extract=DIR
Extract the contents of the bundle into DIR Du kannst auch einfach mal in die sh-Scripts schauen, was die tun.
|
djcj
Anmeldungsdatum: 28. August 2013
Beiträge: 240
|
Klingt nach Loki- oder Mojo-Installer. Bin persönlich auch kein so großer Freund davon. Ist zwar nett gemeint und angelehnt an die Installer aus Windows, aber mit einfachen zip oder tar-Archiven ist den meisten Linux-Nutzern wohl eher geholfen. Versuch mal ./xxx.sh -h oder ./xxx.sh --help , da sollte es einen Befehl geben, mit dem der Inhalt in ein beliebiges Verzeichnis extrahiert werden kann, ohne die eigentliche Installation durchzuführen. Du könntest die Programme aber auch einfach ins Heimverzeichnis oder nach /opt installieren, da sollten die leichter wieder zu entfernen sein als aus /usr/local.
|
gothicVI
(Themenstarter)
Anmeldungsdatum: 25. April 2011
Beiträge: 56
Wohnort: München
|
Der Tipp mit
sh xxx.sh --help
hilft ein wenig. Ich bekomme:
sh Mathematica_10.0.1_LINUX.sh --help
Makeself version 2.1.1
1) Getting help or info about Mathematica_10.0.1_LINUX.sh :
Mathematica_10.0.1_LINUX.sh --help Print this message
Mathematica_10.0.1_LINUX.sh --info Print embedded info : title, default target directory, embedded script ...
Mathematica_10.0.1_LINUX.sh --lsm Print embedded lsm entry (or no LSM)
Mathematica_10.0.1_LINUX.sh --list Print the list of files in the archive
Mathematica_10.0.1_LINUX.sh --check Checks integrity of the archive
2) Running Mathematica_10.0.1_LINUX.sh :
Mathematica_10.0.1_LINUX.sh [options] [--] [additional arguments to embedded script]
with following options (in that order)
--confirm Ask before running embedded script
--keep Do not erase target directory after running
the embedded script
--nox11 Do not spawn an xterm
--nochown Do not give the extracted files to the current user
--target NewDirectory Extract in NewDirectory
-- Following arguments will be passed to the embedded script
Der Versuch via
sh Mathematica_10.0.1_LINUX.sh --target NewDirectory test/
etwas zu bewirken, generiert im Ordner test einen neuen Ordner Unix mit vielen Unterordnern, und startet danach die "normale" Installation - entpackt das Skript jedoch leider nicht =( Das Skript zum Installieren des VPN-Clients kennt leider den Befehl --help nicht und startet sofort die Installation... Jemand Ideen? Kann man generell überhaupt .sh-Installer in .deb-Pakete umwandeln? Oder wäre es eventuell irgendwie möglich, die Installation in einer sauberen Umgebung durchzuführen, alle "neuen" Dateien zusammen zu suchen und dann in ein .deb-Paket zu packen? Danke schonmal 👍 EDIT: Hab noch was gefunden. Eventuell hilft das ja weiter:
more vpnsetup.sh
#!/bin/sh
#
BASH_BASE_SIZE=0x00000000
CISCO_AC_TIMESTAMP=0x0000000000000000
# BASH_BASE_SIZE=0x00000000 is required for signing
# CISCO_AC_TIMESTAMP is also required for signing
# comment is after BASH_BASE_SIZE or else sign tool will find the comment
LEGACY_INSTPREFIX=/opt/cisco/vpn
LEGACY_BINDIR=${LEGACY_INSTPREFIX}/bin
LEGACY_UNINST=${LEGACY_BINDIR}/vpn_uninstall.sh
TARROOT="vpn"
INSTPREFIX=/opt/cisco/anyconnect
ROOTCERTSTORE=/opt/.cisco/certificates/ca
ROOTCACERT="VeriSignClass3PublicPrimaryCertificationAuthority-G5.pem"
INIT_SRC="vpnagentd_init"
INIT="vpnagentd"
BINDIR=${INSTPREFIX}/bin
LIBDIR=${INSTPREFIX}/lib
PROFILEDIR=${INSTPREFIX}/profile
SCRIPTDIR=${INSTPREFIX}/script
HELPDIR=${INSTPREFIX}/help
PLUGINDIR=${BINDIR}/plugins
UNINST=${BINDIR}/vpn_uninstall.sh
INSTALL=install
SYSVSTART="S85"
SYSVSTOP="K25"
SYSVLEVELS="2 3 4 5"
PREVDIR=`pwd`
MARKER=$((`grep -an "[B]EGIN\ ARCHIVE" $0 | cut -d ":" -f 1` + 1))
MARKER_END=$((`grep -an "[E]ND\ ARCHIVE" $0 | cut -d ":" -f 1` - 1))
LOGFNAME=`date "+anyconnect-linux-64-3.1.07021-k9-%H%M%S%d%m%Y.log"`
CLIENTNAME="Cisco AnyConnect Secure Mobility Client"
FEEDBACK_DIR="${INSTPREFIX}/CustomerExperienceFeedback"
echo "Installing ${CLIENTNAME}..."
echo "Installing ${CLIENTNAME}..." > /tmp/${LOGFNAME}
echo `whoami` "invoked $0 from " `pwd` " at " `date` >> /tmp/${LOGFNAME}
# Make sure we are root
if [ `id | sed -e 's/(.*//'` != "uid=0" ]; then
echo "Sorry, you need super user privileges to run this script."
exit 1
fi
## The web-based installer used for VPN client installation and upgrades does
## not have the license.txt in the current directory, intentionally skipping
## the license agreement. Bug CSCtc45589 has been filed for this behavior.
if [ -f "license.txt" ]; then
cat ./license.txt
echo
echo -n "Do you accept the terms in the license agreement? [y/n] "
read LICENSEAGREEMENT
while :
do
case ${LICENSEAGREEMENT} in
[Yy][Ee][Ss])
echo "You have accepted the license agreement."
echo "Please wait while ${CLIENTNAME} is being installed..."
break
;;
[Yy])
echo "You have accepted the license agreement."
echo "Please wait while ${CLIENTNAME} is being installed..."
break
;;
[Nn][Oo])
echo "The installation was cancelled because you did not accept the license agreement."
exit 1
;;
[Nn])
echo "The installation was cancelled because you did not accept the license agreement."
exit 1
;;
*)
echo "Please enter either \"y\" or \"n\"."
read LICENSEAGREEMENT
;;
esac
done
fi
if [ "`basename $0`" != "vpn_install.sh" ]; then
if which mktemp >/dev/null 2>&1; then
TEMPDIR=`mktemp -d /tmp/vpn.XXXXXX`
RMTEMP="yes"
else
TEMPDIR="/tmp"
RMTEMP="no"
fi
else
TEMPDIR="."
fi
#
# Check for and uninstall any previous version.
#
if [ -x "${LEGACY_UNINST}" ]; then
echo "Removing previous installation..."
echo "Removing previous installation: "${LEGACY_UNINST} >> /tmp/${LOGFNAME}
STATUS=`${LEGACY_UNINST}`
if [ "${STATUS}" ]; then
echo "Error removing previous installation! Continuing..." >> /tmp/${LOGFNAME}
fi
# migrate the /opt/cisco/vpn directory to /opt/cisco/anyconnect directory
echo "Migrating ${LEGACY_INSTPREFIX} directory to ${INSTPREFIX} directory" >> /tmp/${LOGFNAME}
${INSTALL} -d ${INSTPREFIX}
# local policy file
if [ -f "${LEGACY_INSTPREFIX}/AnyConnectLocalPolicy.xml" ]; then
mv -f ${LEGACY_INSTPREFIX}/AnyConnectLocalPolicy.xml ${INSTPREFIX}/ 2>&1 >/dev/null
fi
# global preferences
if [ -f "${LEGACY_INSTPREFIX}/.anyconnect_global" ]; then
mv -f ${LEGACY_INSTPREFIX}/.anyconnect_global ${INSTPREFIX}/ 2>&1 >/dev/null
fi
# logs
mv -f ${LEGACY_INSTPREFIX}/*.log ${INSTPREFIX}/ 2>&1 >/dev/null
# VPN profiles
if [ -d "${LEGACY_INSTPREFIX}/profile" ]; then
${INSTALL} -d ${INSTPREFIX}/profile
tar cf - -C ${LEGACY_INSTPREFIX}/profile . | (cd ${INSTPREFIX}/profile; tar xf -)
rm -rf ${LEGACY_INSTPREFIX}/profile
fi
# VPN scripts
if [ -d "${LEGACY_INSTPREFIX}/script" ]; then
${INSTALL} -d ${INSTPREFIX}/script
tar cf - -C ${LEGACY_INSTPREFIX}/script . | (cd ${INSTPREFIX}/script; tar xf -)
rm -rf ${LEGACY_INSTPREFIX}/script
fi
# localization
if [ -d "${LEGACY_INSTPREFIX}/l10n" ]; then
${INSTALL} -d ${INSTPREFIX}/l10n
tar cf - -C ${LEGACY_INSTPREFIX}/l10n . | (cd ${INSTPREFIX}/l10n; tar xf -)
rm -rf ${LEGACY_INSTPREFIX}/l10n
fi
elif [ -x "${UNINST}" ]; then
echo "Removing previous installation..."
echo "Removing previous installation: "${UNINST} >> /tmp/${LOGFNAME}
STATUS=`${UNINST}`
if [ "${STATUS}" ]; then
echo "Error removing previous installation! Continuing..." >> /tmp/${LOGFNAME}
fi
fi
if [ "${TEMPDIR}" != "." ]; then
TARNAME=`date +%N`
TARFILE=${TEMPDIR}/vpninst${TARNAME}.tgz
echo "Extracting installation files to ${TARFILE}..."
echo "Extracting installation files to ${TARFILE}..." >> /tmp/${LOGFNAME}
# "head --bytes=-1" used to remove '\n' prior to MARKER_END
head -n ${MARKER_END} $0 | tail -n +${MARKER} | head --bytes=-1 2>> /tmp/${LOGFNAME} > ${TARFILE} || exit 1
echo "Unarchiving installation files to ${TEMPDIR}..."
echo "Unarchiving installation files to ${TEMPDIR}..." >> /tmp/${LOGFNAME}
tar xvzf ${TARFILE} -C ${TEMPDIR} >> /tmp/${LOGFNAME} 2>&1 || exit 1
rm -f ${TARFILE}
NEWTEMP="${TEMPDIR}/${TARROOT}"
else
NEWTEMP="."
fi
# Make sure destination directories exist
echo "Installing "${BINDIR} >> /tmp/${LOGFNAME}
${INSTALL} -d ${BINDIR} || exit 1
echo "Installing "${LIBDIR} >> /tmp/${LOGFNAME}
${INSTALL} -d ${LIBDIR} || exit 1
echo "Installing "${PROFILEDIR} >> /tmp/${LOGFNAME}
${INSTALL} -d ${PROFILEDIR} || exit 1
echo "Installing "${SCRIPTDIR} >> /tmp/${LOGFNAME}
${INSTALL} -d ${SCRIPTDIR} || exit 1
echo "Installing "${HELPDIR} >> /tmp/${LOGFNAME}
${INSTALL} -d ${HELPDIR} || exit 1
echo "Installing "${PLUGINDIR} >> /tmp/${LOGFNAME}
${INSTALL} -d ${PLUGINDIR} || exit 1
echo "Installing "${ROOTCERTSTORE} >> /tmp/${LOGFNAME}
${INSTALL} -d ${ROOTCERTSTORE} || exit 1
# Copy files to their home
echo "Installing "${NEWTEMP}/${ROOTCACERT} >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 444 ${NEWTEMP}/${ROOTCACERT} ${ROOTCERTSTORE} || exit 1
echo "Installing "${NEWTEMP}/vpn_uninstall.sh >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/vpn_uninstall.sh ${BINDIR} || exit 1
echo "Creating symlink "${BINDIR}/vpn_uninstall.sh >> /tmp/${LOGFNAME}
mkdir -p ${LEGACY_BINDIR}
ln -s ${BINDIR}/vpn_uninstall.sh ${LEGACY_BINDIR}/vpn_uninstall.sh || exit 1
chmod 755 ${LEGACY_BINDIR}/vpn_uninstall.sh
echo "Installing "${NEWTEMP}/anyconnect_uninstall.sh >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/anyconnect_uninstall.sh ${BINDIR} || exit 1
echo "Installing "${NEWTEMP}/vpnagentd >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 4755 ${NEWTEMP}/vpnagentd ${BINDIR} || exit 1
echo "Installing "${NEWTEMP}/libvpnagentutilities.so >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libvpnagentutilities.so ${LIBDIR} || exit 1
echo "Installing "${NEWTEMP}/libvpncommon.so >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libvpncommon.so ${LIBDIR} || exit 1
echo "Installing "${NEWTEMP}/libvpncommoncrypt.so >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libvpncommoncrypt.so ${LIBDIR} || exit 1
echo "Installing "${NEWTEMP}/libvpnapi.so >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libvpnapi.so ${LIBDIR} || exit 1
echo "Installing "${NEWTEMP}/libacciscossl.so >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libacciscossl.so ${LIBDIR} || exit 1
echo "Installing "${NEWTEMP}/libacciscocrypto.so >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libacciscocrypto.so ${LIBDIR} || exit 1
echo "Installing "${NEWTEMP}/libaccurl.so.4.3.0 >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libaccurl.so.4.3.0 ${LIBDIR} || exit 1
echo "Creating symlink "${NEWTEMP}/libaccurl.so.4 >> /tmp/${LOGFNAME}
ln -s ${LIBDIR}/libaccurl.so.4.3.0 ${LIBDIR}/libaccurl.so.4 || exit 1
if [ -f "${NEWTEMP}/libvpnipsec.so" ]; then
echo "Installing "${NEWTEMP}/libvpnipsec.so >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libvpnipsec.so ${PLUGINDIR} || exit 1
else
echo "${NEWTEMP}/libvpnipsec.so does not exist. It will not be installed."
fi
if [ -f "${NEWTEMP}/libacfeedback.so" ]; then
echo "Installing "${NEWTEMP}/libacfeedback.so >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/libacfeedback.so ${PLUGINDIR} || exit 1
else
echo "${NEWTEMP}/libacfeedback.so does not exist. It will not be installed."
fi
if [ -f "${NEWTEMP}/vpnui" ]; then
echo "Installing "${NEWTEMP}/vpnui >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/vpnui ${BINDIR} || exit 1
else
echo "${NEWTEMP}/vpnui does not exist. It will not be installed."
fi
echo "Installing "${NEWTEMP}/vpn >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/vpn ${BINDIR} || exit 1
if [ -d "${NEWTEMP}/pixmaps" ]; then
echo "Copying pixmaps" >> /tmp/${LOGFNAME}
cp -R ${NEWTEMP}/pixmaps ${INSTPREFIX}
else
echo "pixmaps not found... Continuing with the install."
fi
if [ -f "${NEWTEMP}/cisco-anyconnect.menu" ]; then
echo "Installing ${NEWTEMP}/cisco-anyconnect.menu" >> /tmp/${LOGFNAME}
mkdir -p /etc/xdg/menus/applications-merged || exit
# there may be an issue where the panel menu doesn't get updated when the applications-merged
# folder gets created for the first time.
# This is an ubuntu bug. https://bugs.launchpad.net/ubuntu/+source/gnome-panel/+bug/369405
${INSTALL} -o root -m 644 ${NEWTEMP}/cisco-anyconnect.menu /etc/xdg/menus/applications-merged/
else
echo "${NEWTEMP}/anyconnect.menu does not exist. It will not be installed."
fi
if [ -f "${NEWTEMP}/cisco-anyconnect.directory" ]; then
echo "Installing ${NEWTEMP}/cisco-anyconnect.directory" >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 644 ${NEWTEMP}/cisco-anyconnect.directory /usr/share/desktop-directories/
else
echo "${NEWTEMP}/anyconnect.directory does not exist. It will not be installed."
fi
# if the update cache utility exists then update the menu cache
# otherwise on some gnome systems, the short cut will disappear
# after user logoff or reboot. This is neccessary on some
# gnome desktops(Ubuntu 10.04)
if [ -f "${NEWTEMP}/cisco-anyconnect.desktop" ]; then
echo "Installing ${NEWTEMP}/cisco-anyconnect.desktop" >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 644 ${NEWTEMP}/cisco-anyconnect.desktop /usr/share/applications/
if [ -x "/usr/share/gnome-menus/update-gnome-menus-cache" ]; then
for CACHE_FILE in $(ls /usr/share/applications/desktop.*.cache); do
echo "updating ${CACHE_FILE}" >> /tmp/${LOGFNAME}
/usr/share/gnome-menus/update-gnome-menus-cache /usr/share/applications/ > ${CACHE_FILE}
done
fi
else
echo "${NEWTEMP}/anyconnect.desktop does not exist. It will not be installed."
fi
if [ -f "${NEWTEMP}/ACManifestVPN.xml" ]; then
echo "Installing "${NEWTEMP}/ACManifestVPN.xml >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 444 ${NEWTEMP}/ACManifestVPN.xml ${INSTPREFIX} || exit 1
else
echo "${NEWTEMP}/ACManifestVPN.xml does not exist. It will not be installed."
fi
if [ -f "${NEWTEMP}/manifesttool" ]; then
echo "Installing "${NEWTEMP}/manifesttool >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/manifesttool ${BINDIR} || exit 1
# create symlinks for legacy install compatibility
${INSTALL} -d ${LEGACY_BINDIR}
echo "Creating manifesttool symlink for legacy install compatibility." >> /tmp/${LOGFNAME}
ln -f -s ${BINDIR}/manifesttool ${LEGACY_BINDIR}/manifesttool
else
echo "${NEWTEMP}/manifesttool does not exist. It will not be installed."
fi
if [ -f "${NEWTEMP}/update.txt" ]; then
echo "Installing "${NEWTEMP}/update.txt >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 444 ${NEWTEMP}/update.txt ${INSTPREFIX} || exit 1
# create symlinks for legacy weblaunch compatibility
${INSTALL} -d ${LEGACY_INSTPREFIX}
echo "Creating update.txt symlink for legacy weblaunch compatibility." >> /tmp/${LOGFNAME}
ln -s ${INSTPREFIX}/update.txt ${LEGACY_INSTPREFIX}/update.txt
else
echo "${NEWTEMP}/update.txt does not exist. It will not be installed."
fi
if [ -f "${NEWTEMP}/vpndownloader" ]; then
# cached downloader
echo "Installing "${NEWTEMP}/vpndownloader >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/vpndownloader ${BINDIR} || exit 1
# create symlinks for legacy weblaunch compatibility
${INSTALL} -d ${LEGACY_BINDIR}
echo "Creating vpndownloader.sh script for legacy weblaunch compatibility." >> /tmp/${LOGFNAME}
echo "ERRVAL=0" > ${LEGACY_BINDIR}/vpndownloader.sh
echo ${BINDIR}/"vpndownloader \"\$*\" || ERRVAL=\$?" >> ${LEGACY_BINDIR}/vpndownloader.sh
echo "exit \${ERRVAL}" >> ${LEGACY_BINDIR}/vpndownloader.sh
chmod 444 ${LEGACY_BINDIR}/vpndownloader.sh
echo "Creating vpndownloader symlink for legacy weblaunch compatibility." >> /tmp/${LOGFNAME}
ln -s ${BINDIR}/vpndownloader ${LEGACY_BINDIR}/vpndownloader
else
echo "${NEWTEMP}/vpndownloader does not exist. It will not be installed."
fi
if [ -f "${NEWTEMP}/vpndownloader-cli" ]; then
# cached downloader (cli)
echo "Installing "${NEWTEMP}/vpndownloader-cli >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/vpndownloader-cli ${BINDIR} || exit 1
else
echo "${NEWTEMP}/vpndownloader-cli does not exist. It will not be installed."
fi
# Open source information
echo "Installing "${NEWTEMP}/OpenSource.html >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 444 ${NEWTEMP}/OpenSource.html ${INSTPREFIX} || exit 1
# Profile schema
echo "Installing "${NEWTEMP}/AnyConnectProfile.xsd >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 444 ${NEWTEMP}/AnyConnectProfile.xsd ${PROFILEDIR} || exit 1
echo "Installing "${NEWTEMP}/AnyConnectLocalPolicy.xsd >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 444 ${NEWTEMP}/AnyConnectLocalPolicy.xsd ${INSTPREFIX} || exit 1
# Import any AnyConnect XML profiles side by side vpn install directory (in well known Profiles/vpn directory)
# Also import the AnyConnectLocalPolicy.xml file (if present)
# If failure occurs here then no big deal, don't exit with error code
# only copy these files if tempdir is . which indicates predeploy
INSTALLER_FILE_DIR=$(dirname "$0")
if [ "${TEMPDIR}" != "." ]; then
IS_PRE_DEPLOY=false;
fi
if $IS_PRE_DEPLOY; then
PROFILE_IMPORT_DIR="${INSTALLER_FILE_DIR}/../Profiles"
VPN_PROFILE_IMPORT_DIR="${INSTALLER_FILE_DIR}/../Profiles/vpn"
if [ -d ${PROFILE_IMPORT_DIR} ]; then
find ${PROFILE_IMPORT_DIR} -maxdepth 1 -name "AnyConnectLocalPolicy.xml" -type f -exec ${INSTALL} -o root -m 644 {}
${INSTPREFIX} \;
fi
if [ -d ${VPN_PROFILE_IMPORT_DIR} ]; then
find ${VPN_PROFILE_IMPORT_DIR} -maxdepth 1 -name "*.xml" -type f -exec ${INSTALL} -o root -m 644 {} ${PROFILEDIR} \;
fi
fi
# Process transforms
# API to get the value of the tag from the transforms file
# The Third argument will be used to check if the tag value needs to converted to lowercase
getProperty()
{
FILE=${1}
TAG=${2}
TAG_FROM_FILE=$(grep ${TAG} "${FILE}" | sed "s/\(.*\)\(<${TAG}>\)\(.*\)\(<\/${TAG}>\)\(.*\)/\3/")
if [ "${3}" = "true" ]; then
TAG_FROM_FILE=`echo ${TAG_FROM_FILE} | tr '[:upper:]' '[:lower:]'`
fi
echo $TAG_FROM_FILE;
}
DISABLE_FEEDBACK_TAG="DisableCustomerExperienceFeedback"
if $IS_PRE_DEPLOY; then
if [ -d "${PROFILE_IMPORT_DIR}" ]; then
TRANSFORM_FILE="${PROFILE_IMPORT_DIR}/ACTransforms.xml"
fi
else
TRANSFORM_FILE="${INSTALLER_FILE_DIR}/ACTransforms.xml"
fi
#get the tag values from the transform file
if [ -f "${TRANSFORM_FILE}" ] ; then
echo "Processing transform file in ${TRANSFORM_FILE}"
DISABLE_FEEDBACK=$(getProperty "${TRANSFORM_FILE}" ${DISABLE_FEEDBACK_TAG} "true" )
fi
# if disable phone home is specified, remove the phone home plugin and any data folder
# note: this will remove the customer feedback profile if it was imported above
FEEDBACK_PLUGIN="${PLUGINDIR}/libacfeedback.so"
if [ "x${DISABLE_FEEDBACK}" = "xtrue" ] ; then
echo "Disabling Customer Experience Feedback plugin"
rm -f ${FEEDBACK_PLUGIN}
rm -rf ${FEEDBACK_DIR}
fi
# Attempt to install the init script in the proper place
# Find out if we are using chkconfig
if [ -e "/sbin/chkconfig" ]; then
CHKCONFIG="/sbin/chkconfig"
elif [ -e "/usr/sbin/chkconfig" ]; then
CHKCONFIG="/usr/sbin/chkconfig"
else
CHKCONFIG="chkconfig"
fi
if [ `${CHKCONFIG} --list 2> /dev/null | wc -l` -lt 1 ]; then
CHKCONFIG=""
echo "(chkconfig not found or not used)" >> /tmp/${LOGFNAME}
fi
# Locate the init script directory
if [ -d "/etc/init.d" ]; then
INITD="/etc/init.d"
elif [ -d "/etc/rc.d/init.d" ]; then
INITD="/etc/rc.d/init.d"
else
INITD="/etc/rc.d"
fi
# BSD-style init scripts on some distributions will emulate SysV-style.
if [ "x${CHKCONFIG}" = "x" ]; then
if [ -d "/etc/rc.d" -o -d "/etc/rc0.d" ]; then
BSDINIT=1
if [ -d "/etc/rc.d" ]; then
RCD="/etc/rc.d"
else
RCD="/etc"
fi
fi
fi
if [ "x${INITD}" != "x" ]; then
echo "Installing "${NEWTEMP}/${INIT_SRC} >> /tmp/${LOGFNAME}
echo ${INSTALL} -o root -m 755 ${NEWTEMP}/${INIT_SRC} ${INITD}/${INIT} >> /tmp/${LOGFNAME}
${INSTALL} -o root -m 755 ${NEWTEMP}/${INIT_SRC} ${INITD}/${INIT} || exit 1
if [ "x${CHKCONFIG}" != "x" ]; then
echo ${CHKCONFIG} --add ${INIT} >> /tmp/${LOGFNAME}
${CHKCONFIG} --add ${INIT}
else
if [ "x${BSDINIT}" != "x" ]; then
for LEVEL in ${SYSVLEVELS}; do
DIR="rc${LEVEL}.d"
if [ ! -d "${RCD}/${DIR}" ]; then
mkdir ${RCD}/${DIR}
chmod 755 ${RCD}/${DIR}
fi
ln -sf ${INITD}/${INIT} ${RCD}/${DIR}/${SYSVSTART}${INIT}
ln -sf ${INITD}/${INIT} ${RCD}/${DIR}/${SYSVSTOP}${INIT}
done
fi
fi
echo "Starting ${CLIENTNAME} Agent..."
echo "Starting ${CLIENTNAME} Agent..." >> /tmp/${LOGFNAME}
# Attempt to start up the agent
echo ${INITD}/${INIT} start >> /tmp/${LOGFNAME}
logger "Starting ${CLIENTNAME} Agent..."
${INITD}/${INIT} start >> /tmp/${LOGFNAME} || exit 1
fi
# Generate/update the VPNManifest.dat file
if [ -f ${BINDIR}/manifesttool ]; then
${BINDIR}/manifesttool -i ${INSTPREFIX} ${INSTPREFIX}/ACManifestVPN.xml
fi
if [ "${RMTEMP}" = "yes" ]; then
echo rm -rf ${TEMPDIR} >> /tmp/${LOGFNAME}
rm -rf ${TEMPDIR}
fi
echo "Done!"
echo "Done!" >> /tmp/${LOGFNAME}
# move the logfile out of the tmp directory
mv /tmp/${LOGFNAME} ${INSTPREFIX}/.
exit 0
--BEGIN ARCHIVE-- und more Mathematica_10.0.1_LINUX.sh
#!/bin/sh
# This script was generated using Makeself 2.1.1
CRCsum="2327428057"
MD5="3af34bb09f217f0029b06c15f28cb42d"
TMPROOT=${TMPDIR:=/tmp}
# DEC-AXP cksum/md5sum handling - we need to set compatibility flags
uname=`uname`
if [ $uname = "OSF1" ]; then
CMD_ENV=xpg4
export CMD_ENV
fi
label="Mathematica Secured 10.0.1 for LINUX Installer Archive"
script="Unix/Installer/MathInstaller"
scriptargs=""
targetdir=".13753"
filesizes="2724638720"
keep=n
temp=n
if test "$temp" = n; then
targetdir=.$$
fi
print_cmd_arg=""
if type printf > /dev/null; then
print_cmd="printf"
elif test -x /usr/ucb/echo; then
print_cmd="/usr/ucb/echo"
else
print_cmd="echo"
fi
MS_Printf()
{
$print_cmd $print_cmd_arg "$1"
}
MS_Progress()
{
while read a; do
MS_Printf .
done
}
MS_dd()
{
blocks=`expr $3 / 1024`
bytes=`expr $3 % 1024`
dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \
{ test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \
test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null
}
MS_Help()
{
cat << EOH >&2
Makeself version 2.1.1
1) Getting help or info about $0 :
$0 --help Print this message
$0 --info Print embedded info : title, default target directory, embedded script ...
$0 --lsm Print embedded lsm entry (or no LSM)
$0 --list Print the list of files in the archive
$0 --check Checks integrity of the archive
2) Running $0 :
$0 [options] [--] [additional arguments to embedded script]
with following options (in that order)
--confirm Ask before running embedded script
--keep Do not erase target directory after running
the embedded script
--nox11 Do not spawn an xterm
--nochown Do not give the extracted files to the current user
--target NewDirectory Extract in NewDirectory
-- Following arguments will be passed to the embedded script
EOH
}
MS_Check()
{
OLD_PATH=$PATH
PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"}
MD5_PATH=`which md5sum 2>/dev/null || type md5sum 2>/dev/null`
MD5_PATH=${MD5_PATH:-`which md5 2>/dev/null || type md5 2>/dev/null`}
PATH=$OLD_PATH
MS_Printf "Verifying archive integrity. \n"
offset=`head -n 387 "$1" | wc -c | tr -d " "`
verbose=$2
i=1
for s in $filesizes
do
crc=`echo $CRCsum | cut -d" " -f$i`
if test -x "$MD5_PATH"; then
md5=`echo $MD5 | cut -d" " -f$i`
if test $md5 = "00000000000000000000000000000000"; then
test x$verbose = xy && echo " $1 does not contain an embedded MD5 checksum." >&2
else
md5sum=`MS_dd "$1" $offset $s | "$MD5_PATH" | cut -b-32`;
if test "$md5sum" != "$md5"; then
echo "Error in MD5 checksums: $md5sum is different from $md5" >&2
cd "$location"; /bin/rm -rf "$tmpdir"
exit 2
else
test x$verbose = xy && MS_Printf " MD5 checksums are OK." >&2
fi
crc="0000000000"; verbose=n
fi
fi
if test $crc = "0000000000"; then
test x$verbose = xy && echo " $1 does not contain a CRC checksum." >&2
else
sum1=`MS_dd "$1" $offset $s | cksum | awk '{print $1}'`
if test "$sum1" = "$crc"; then
test x$verbose = xy && MS_Printf " CRC checksums are OK." >&2
else
echo "Error in checksums: $sum1 is different from $crc"
cd "$location"; /bin/rm -rf "$tmpdir"
exit 2;
fi
fi
i=`expr $i + 1`
offset=`expr $offset + $s`
done
}
UnTAR()
{
tar $1vf - 2>&1 || { echo; echo "Extraction failed. No space left on $targetdir" > /dev/tty; kill -15 $$; }
}
finish=true
xterm_loop=
nox11=n
copy=none
ownership=
while true
do
case "$1" in
-h | --help)
MS_Help
exit 0
;;
--info)
echo Identification: "$label"
echo Target directory: "$targetdir"
echo Uncompressed size: 2661500 KB
echo Compression: none
echo Date of packaging: Wed Sep 10 14:24:52 CDT 2014
echo Built with Makeself version 2.1.1 on linux
if test x$script != x; then
echo Script run after extraction:
echo " " $script $scriptargs
fi
exit 0
;;
--dumpconf)
echo LABEL=\"$label\"
echo SCRIPT=\"$script\"
echo SCRIPTARGS=\"$scriptargs\"
echo archdirname=\".13753\"
echo KEEP=n
echo COMPRESS=none
echo filesizes=\"$filesizes\"
echo CRCsum=\"$CRCsum\"
echo MD5sum=\"$MD5\"
echo OLDUSIZE=2661500
echo OLDSKIP=388
exit 0
;;
--lsm)
cat << EOLSM
No LSM.
EOLSM
exit 0
;;
--list)
echo Target directory: $targetdir
offset=`head -n 387 "$0" | wc -c | tr -d " "`
for s in $filesizes
do
MS_dd "$0" $offset $s | eval "cat" | UnTAR t
offset=`expr $offset + $s`
done
exit 0
;;
--check)
MS_Check "$0" y
exit 0
;;
--confirm)
verbose=y
shift
;;
--keep)
keep=y
shift
;;
--target)
otherdirectory=y
targetdir=${2:-.}
shift 2
;;
--nox11)
nox11=y
shift
;;
--nochown)
ownership=n
shift
;;
--xwin)
finish="echo Press Return to close this window...; read junk"
xterm_loop=1
shift
;;
--phase2)
copy=phase2
shift
;;
--)
shift
break ;;
-*)
echo Unrecognized flag : "$1" >&2
MS_Help
exit 1
;;
*)
break ;;
esac
done
case "$copy" in
copy)
SCRIPT_COPY="$TMPROOT/makeself$$"
echo "Copying to a temporary location..." >&2
cp "$0" "$SCRIPT_COPY"
chmod +x "$SCRIPT_COPY"
cd "$TMPROOT"
exec "$SCRIPT_COPY" --phase2
;;
phase2)
finish="$finish ; rm -f $0"
;;
esac
if test "$nox11" = "n"; then
if tty -s; then # Do we have a terminal?
:
else
if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have X?
if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable
GUESS_XTERMS="xterm rxvt dtterm eterm Eterm kvt konsole aterm"
for a in $GUESS_XTERMS; do
if type $a >/dev/null 2>&1; then
XTERM=$a
break
fi
done
chmod a+x $0 || echo Please add execution rights on $0
if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal!
exec $XTERM -title "$label" -e "$0" --xwin "$@"
else
exec $XTERM -title "$label" -e "./$0" --xwin "$@"
fi
fi
fi
fi
fi
location="`pwd`"
if test -x /usr/ucb/whoami; then
hoo_cmd="/usr/ucb/whoami"
else
hoo_cmd="whoami"
fi
hoo="`$hoo_cmd`"
if test "$targetdir" = "."; then
tmpdir="."
else
if test "$temp" = n; then
tmpdir="$targetdir"
else
tmpdir="$TMPROOT/selfgz$$"
fi
if test -d "$tmpdir" || test -f "$tmpdir"; then
echo Cannot create directory "$tmpdir": File exists >&2
echo Use \'--target dirName\' to specify another location. >&2
eval $finish
exit 1
fi
if test "$otherdirectory" = y; then
ckdir="`dirname $tmpdir`"
if test -w "$ckdir"; then
:
else
echo User \'$hoo\' cannot write to directory "$ckdir" >&2
echo Use \'--target dirName\' to specify another location. >&2
eval $finish
exit 1
fi
else
if test -w "$location"; then
:
else
echo User \'$hoo\' cannot write to "$location" >&2
echo Use \'--target dirName\' to specify another location. >&2
eval $finish
exit 1
fi
fi
mkdir $tmpdir 2> /dev/null
if test $? = 1; then
echo Unable to create directory "$tmpdir" in the current directory. >&2
echo User \'$hoo\' may not have write permissions. >&2
echo Use \'--target dirName\' to specify another location. >&2
eval $finish
exit 1
fi
fi
MS_Printf "$label\n"
#MS_Printf "Copyright (c) 1988-2004 Wolfram Research, Inc.\n"
MS_Printf "\n"
if test x$SETUP_NOCHECK != x1; then
MS_Check "$0"
fi
offset=`head -n 387 "$0" | wc -c | tr -d " "`
# Save extracted archives?
if test "$keep" = y; then
echo "$tmpdir will not be removed."
fi
MS_Printf "Extracting installer. "
res=3
if test "$keep" = n; then
trap 'echo Removing temporary files. >&2; cd "$location"; /bin/rm -rf "$tmpdir"; eval $finish; exit 15' 1 2 3 15
fi
for s in $filesizes
do
if MS_dd "$0" $offset $s | eval "cat" | ( cd "$tmpdir"; UnTAR x; chmod -R u+w . ) | MS_Progress; then
if test x"$ownership" != x; then
(PATH=/usr/xpg4/bin:$PATH; chown -R `id -u` .; chgrp -R `id -g` .)
fi
else
echo
echo "Unable to decompress $0" >&2
eval $finish; exit 1
fi
offset=`expr $offset + $s`
done
echo
cd "$tmpdir"
res=0
if test x"$script" != x; then
if test x"$verbose" = xy; then
MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] "
read yn
if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then
$script $scriptargs $*; res=$?;
fi
else
$script $scriptargs $*; res=$?
fi
if test $res -ne 0; then
echo "The program returned an error code ($res)" >&2
fi
fi
if test "$keep" = n; then
cd "$location"; /bin/rm -rf "$tmpdir"
fi
eval $finish; exit $res
Unix/
ProductName Wolfram Mathematica
FullProductName Wolfram Mathematica
VersionNumber 10.0
ReleaseNumber 1
MinorReleaseNumber 0
CreationDate 2014-09-10
CreationID 5157632
CopyrightYear 2014
Language English
SystemID None
ExecScripts
Feature Full
InstallBase /usr/local/Wolfram/Mathematica/10.0
InstallDir
InstallID None
InstallerType Math
DefaultExecDirectory
TargetCreationID $patch_target
Req_Mask_And $requirement_mask_and
Req_Mask_XOr $requirement_mask_xor
Update_Mask_And $update_mask_and
Update_Mask_XOr $update_mask_xor
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 3991
|
Wegen Makeself:
Archives generated with Makeself 2.1 can be passed the following arguments: --tar : Run the tar command on the contents of the archive, using the following arguments as parameter for the command.
--noexec : Do not run the embedded script after extraction.
http://www.megastep.org/makeself/ Ist auch nicht gesagt, dass die da gepackten Dateien direkt die sind, welche nach bin und sonstwohin kopiert werden, vielleicht sind das wieder Archive. Wie weiter verfahren wird, hängt also konkret von den entpackten Dateien ab. Zum Vorher-/Nachhervergleich vom Dateisystem: so hab ich schon Windowsinstaller gebaut. 😀 Ist der Installer für den VPN-Clienten öffentlich verfügbar?
|
gothicVI
(Themenstarter)
Anmeldungsdatum: 25. April 2011
Beiträge: 56
Wohnort: München
|
verdooft schrieb: Wegen Makeself:
Archives generated with Makeself 2.1 can be passed the following arguments: --tar : Run the tar command on the contents of the archive, using the following arguments as parameter for the command.
--noexec : Do not run the embedded script after extraction.
http://www.megastep.org/makeself/ Ist auch nicht gesagt, dass die da gepackten Dateien direkt die sind, welche nach bin und sonstwohin kopiert werden, vielleicht sind das wieder Archive. Wie weiter verfahren wird, hängt also konkret von den entpackten Dateien ab. Zum Vorher-/Nachhervergleich vom Dateisystem: so hab ich schon Windowsinstaller gebaut. 😀 Ist der Installer für den VPN-Clienten öffentlich verfügbar?
sh Mathematica_10.0.1_LINUX.sh --tar bewirkt leider nix. Hier der Client: http://users.ph.tum.de/ga56gix/vpnsetup.sh und hier die Hilfe-Seite: https://www.lrz.de/services/netz/mobil/vpn/anyconnect/
|
dirkolus
Anmeldungsdatum: 17. Mai 2011
Beiträge: 1996
Wohnort: dahoam
|
checkinstall - ist zwar eigentlich als Ersatz für den Aufruf 'make install' gedacht, aber vielleicht kann man es auch hier einsetzen? Dirk
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 3991
|
Also der VPN Client entpackt sich beim Ausführen des Setups in ein Verzeichnis: sudo sh vpnsetup.sh
...
Extracting installation files to /tmp/vpn.ietmSg/vpninst376125312.tgz...
Unarchiving installation files to /tmp/vpn.ietmSg... Da befindet sich ein Ordner vpn mit vielen Dateien, z.B. so, .desktop-Datei, vpn - ELF 64-bit LSB executable, x86-64 ... Denke daraus kann man ein Debianpaket basteln.
|
gothicVI
(Themenstarter)
Anmeldungsdatum: 25. April 2011
Beiträge: 56
Wohnort: München
|
dirkolus schrieb: checkinstall - ist zwar eigentlich als Ersatz für den Aufruf 'make install' gedacht, aber vielleicht kann man es auch hier einsetzen? Dirk
Sehe ich das richtig, dass dein Vorschlag zum Paketbau gedacht ist? Soweit bin ich ja noch nicht. Was ich jetzt noch rausgefunden habe:
tail -n +527 vpnsetup.sh > vpnsetup.tar
(Es sind 527 Zeilen inklusive --Begin Archive--)
tar -xvf vpnsetup.tar
vpn/
vpn/vpn_install.sh
vpn/vpnagentd
vpn/vpnagentd_init
vpn/vpn_uninstall.sh
vpn/anyconnect_uninstall.sh
vpn/libacciscossl.so
vpn/libacciscocrypto.so
vpn/libaccurl.so.4.3.0
vpn/vpnui
vpn/cisco-anyconnect.desktop
vpn/cisco-anyconnect.menu
vpn/cisco-anyconnect.directory
vpn/libvpnagentutilities.so
vpn/libvpncommon.so
vpn/libvpncommoncrypt.so
vpn/libvpnapi.so
vpn/libvpnipsec.so
vpn/vpn
vpn/pixmaps/
vpn/pixmaps/company-logo.png
vpn/pixmaps/cvc-about.png
vpn/pixmaps/cvc-configure.png
vpn/pixmaps/cvc-connect.png
vpn/pixmaps/cvc-disconnect.png
vpn/pixmaps/cvc-info.png
vpn/pixmaps/systray_connected.png
vpn/pixmaps/systray_disconnecting.png
vpn/pixmaps/systray_notconnected.png
vpn/pixmaps/systray_quarantined.png
vpn/pixmaps/systray_reconnecting.png
vpn/pixmaps/vpnui48.png
vpn/pixmaps/downloader-arrow.png
vpn/manifesttool
vpn/ACManifestVPN.xml
vpn/vpndownloader
vpn/vpndownloader-cli
vpn/update.txt
vpn/OpenSource.html
vpn/AnyConnectProfile.xsd
vpn/AnyConnectLocalPolicy.xsd
vpn/libacfeedback.so
vpn/license.txt
gzip: stdin: decompression OK, trailing garbage ignored
vpn/VeriSignClass3PublicPrimaryCertificationAuthority-G5.pem
tar: Child returned status 2
tar: Error is not recoverable: exiting now Das scheint mir nun schonmal die Dateien zu liefern. Jedoch leider ohne Ordnerstruktur und mit einer seltsamen Fehlermeldung am Ende 😢 Und dann noch ein spannender Fehler, der an Mathematica liegen könnte - proprietäre Software...:
tail -n +419 Mathematica_10.0.1_LINUX.sh > Mat.tar && tar -xvf Mat.tar
tar: Das sieht nicht wie ein „tar“-Archiv aus.
tar: Springe zum nächsten Kopfteil.
tar: Beende mit Fehlerstatus aufgrund vorheriger Fehler
|
dirkolus
Anmeldungsdatum: 17. Mai 2011
Beiträge: 1996
Wohnort: dahoam
|
checkinstall macht folgendes:
Es fragt Metadaten für ein neu zu erstellendes Paket ab: Paketname, Maintainer, Release nr, etc. Es führt das Kommando aus, mit dem das zu erstellende Paket installiert wird. Wenn nichts anderes angegeben, ist das 'make install'. Es installiert nicht ins normale Filesystem, sondern in ein temporäres Verzeichnis. Es erstellt aus diesem temporären Verzeichnis ein .deb-Paket (und installiert's Dir gleich, wenn nicht anders angegeben).
Nichts anderes willst Du doch, oder? Ich würd's jedenfalls mal ausprobieren. Dein Aufruf sollte also sein
sudo checkinstall vpnsetup.sh checkinstall-README Dirk N.B.: In einem Checkinstall-Wiki gesehen: checkinstall lässt make erst mal alle Dateien in das System kopieren und schaut dabei zu. Erst dann wird das eigentliche Paket erstellt. Dabei kann es passieren, dass Dateien überschrieben werden, ohne dass man es mitbekommt. checkinstall hat also die selben Schwächen wie ein reines make install, bietet aber den Riesenvorteil, dass das Paket später sauber wieder deinstalliert werden kann.
|
tomtomtom
Supporter
Anmeldungsdatum: 22. August 2008
Beiträge: 53484
Wohnort: Berlin
|
Checkinstall dürfte aber ohne Konfiguration nicht laufen. Hier wäre aber möglich ein "Quick-and-Dirty"-Paket zu bauen. Also eine Verzeichnisstruktur erstellen, die Dateien, die über den sh-Installer da reinkopiert werden, entsprechend platzieren, ein Verzeichnis DEBIAN samt control -Datei darin erstellen und in der DEBIAN/control die Abhängigkeiten, den Paketnamen, Maintainer etc. angeben. Dann einfach mit dpkg aus dem Verzeichnis ein Paket backen.
|
gothicVI
(Themenstarter)
Anmeldungsdatum: 25. April 2011
Beiträge: 56
Wohnort: München
|
tomtomtom schrieb: Checkinstall dürfte aber ohne Konfiguration nicht laufen. Hier wäre aber möglich ein "Quick-and-Dirty"-Paket zu bauen. Also eine Verzeichnisstruktur erstellen, die Dateien, die über den sh-Installer da reinkopiert werden, entsprechend platzieren, ein Verzeichnis DEBIAN samt control -Datei darin erstellen und in der DEBIAN/control die Abhängigkeiten, den Paketnamen, Maintainer etc. angeben. Dann einfach mit dpkg aus dem Verzeichnis ein Paket backen.
Kannst du mir ein Anleitung für Dummies geben? Was ich jetzt noch gemacht habe: sudo checkinstall --install=no ./Mathematica_10.0.1_LINUX.sh Dann scheint die Installation so zu laufen, wie auch mit dem .sh-Installer, aber: Installation failed. See /usr/local/Wolfram/Mathematica/10.0/InstallErrors.
====================== Installation erfolgreich ==========================
Kopiere Dateien in das temporäre Verzeichnis...OK
Stripping ELF binaries and libraries...OK
Komprimiere man-Seiten...OK
Erzeuge Datei-Liste...OK
Erstelle Debian-Paket...OK
ANMERKUNG: Das Paket wird nicht installiert
Lösche temporäre Dateien...OK
Schreibe Sicherungs-Paket...OK
OK
Lösche temporäres Verzeichnis...OK
**********************************************************************
Done. The new package has been saved to
xxx/mathematica_10.0.1-1_all.deb
You can install it in your system anytime using:
dpkg -i mathematica_10.0.1-1_all.deb
********************************************************************** Hier die InstallErrors: tar: SystemFiles/Java/Linux-x86-64/man/ja: Cannot change mode to rwxrwxrwx: No such file or directory
tar: Exiting with failure status due to previous errors
tar: SystemFiles/Java/Linux/man/ja: Cannot change mode to rwxrwxrwx: No such file or directory
tar: Exiting with failure status due to previous errors Und noch eine komische Sache: mathematica_10.0.1-1_all.deb ist 2,4MB groß, was mich sehr wundert. Dachte da werden alle installierten Dateien reingepackt. Alleine der Ordner /usr/local/Wolfram/Mathematica/10.0 ist 5,9GB groß 😲 Vielen, vielen Dank schonmal an euch alle, für die Mühe die ihr euch gebt und hoffentlich noch geben werdet 👍
|