使用来自的数据包跟踪器安装脚本这里由于某种原因,在安装开始之前备份了我的主目录中的数据。有人知道为什么吗?这是脚本 -paste.ubuntu.com/10975482/
更新:以下是终端的一些新输出
Installing into /home/eric/pt cp: cannot stat ‘./Downloads/Windows10_InsiderPreview_x64_EN-US_10074(1).iso.part’: No such file or directory cp: cannot copy a directory, ‘./pt’, into itself, ‘/home/eric/pt/pt’
我告诉它安装到`/home/username/pt 它获取了我主页上的内容并将其复制到该位置...为什么?
它甚至没有安装。packettracer 文件是空的
更新:'安装' 使用本指南
须藤sh PacketTracer533_i386_installer-deb.bin
须藤./PacketTracer533_i386_installer-deb.bin
但是我无法启动,因为命令关闭时没有任何错误消息, 更新也是packettracer
如此:安装修复了 GUI 启动,但没有修复终端启动。packettracer --help
packettracer -h
libgtk2.0-0:i386
答案1
if [ -e $IDIR ]; then
read -p "It appears that Packet Tracer is already installed. Do you wish to replace it? [Yn] " NEEDREPLACE
if [ "$NEEDREPLACE" = "y" ] || [ "$NEEDREPLACE" = "Y" ] || [ -z $NEEDREPLACE ]; then
sudo rm -rf $IDIR
else
echo "Program Terminated"; exit 0
fi
fi
这就rm
意味着麻烦了……如果你将软件安装在 / 中,你的系统就没了;如果你将软件安装在 /home/$USER/ 中,你的 /home/$USER/ 就没了。原因是什么?这里没有健全性检查:
echo "You have accepted the terms to the EULA. Congratulations. Packet Tracer will now be installed."
read -p "Enter location to install Cisco Packet Tracer or press enter for default [/opt/pt]: " IDIR
if [ -z $IDIR ]; then
IDIR="/opt/pt"
fi
如果用户自己不插入 /pt,IDIR 应该始终将 /pt 添加到输入中。他们默认这样做,但对用户输入却不这样做。非常非常糟糕。
现在一切都乱套了。你看到你的主页被复制的原因是因为你没有在输入中添加 /pt/ 部分,而那些白痴自己也没有添加它。
if mkdir $IDIR > /dev/null 2>&1; then
if cp -r $SDIR/* $IDIR; then
echo Copied all files successfully to $IDIR
fi
在这里,它们将 SDIR 复制到 IDIR。SDIR 定义为
DIR=`dirname $_`
目录名:“将从忽略任何尾部斜杠的路径名中检索目录路径名”。这意味着当前目录,然后向上 1 个目录。因此他们假设您在这里插入了 /home/$USER/pt/,然后想要复制它。他们再次忘记检查这里发生的事情是否合理:这意味着麻烦,因为它会返回 1 个目录并将其复制过去。糟糕。
如果您选择默认设置 (/opt/pt/),那么一切都应该没问题。请注意,FHS 规定第三方软件应安装在 /opt/ 中,如果您坚持这样做,一切将按预期进行。但此脚本的创建者应该收到警告:这是一个编写糟糕的脚本。
答案2
脚本不应该从您的主文件夹运行。它应该从仅包含 packettracer 资产的文件夹运行。
看
SDIR=`dirname $_`
...
cp -r $SDIR $IDIR
而且,我根本不会从 mediafire 安装二进制 deb。这部分我无法帮助你。
答案3
我将内容提取到一个文件夹中,然后将密码更改为该文件夹。我在提示符下键入 ./install 来运行安装脚本,它只复制了 pt 文件夹中的内容。它没有复制我的桌面或主目录内容。重新启动计算机并从命令行键入 packettracer。完成!