我在理解旅行红宝石教程的部分内容时遇到了问题。
https://github.com/phusion/traveling-ruby/blob/master/TUTORIAL-1.md
#!/bin/bash
set -e
# Figure out where this script is located.
SELFDIR="`dirname "$0"`"
SELFDIR="`cd "$SELFDIR" && pwd`"
# Run the actual app using the bundled Ruby interpreter.
exec "$SELFDIR/lib/ruby/bin/ruby" "$SELFDIR/lib/app/hello.rb"
当我复制并粘贴它时,它似乎不起作用,我不确定最终结果应该是什么,我看不到这将如何浏览目录并找到我的脚本,这就是评论所暗示的(# 找出这个脚本的位置。我不明白为什么它不起作用。
我从粘贴中得到的结果是:
dirname: illegal option -- b
usage: dirname path
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[Process completed]
完全按照说明进行操作以获得预期的结果。 有一个步骤可能会让您在说明中打乱,假设您在Mac上并运行了健全性检查。 您需要执行cd ..
才能向上移动一个目录,然后执行下一步,您需要在正确的目录中创建文件。 它应该在hello_app/packaging/wrapper.sh
这是一个 shell 脚本,它将处理将应用程序打包到其各自的文件夹中。 它不是 ruby 脚本,不能通过 ruby 或 ruby IRB 控制台等执行。
在按照此处的说明对子目录进行 tar 之前hello_app
请确保您位于文件夹的根目录中:https://github.com/phusion/traveling-ruby/blob/master/TUTORIAL-1.md#finalizing-packages
这些命令会发生这种情况:
tar -czf hello-1.0.0-linux-x86.tar.gz hello-1.0.0-linux-x86
tar -czf hello-1.0.0-linux-x86_64.tar.gz hello-1.0.0-linux-x86_64
tar -czf hello-1.0.0-osx.tar.gz hello-1.0.0-osx
rm -rf hello-1.0.0-linux-x86
rm -rf hello-1.0.0-linux-x86_64
rm -rf hello-1.0.0-osx
如果你正确地做了所有事情,你最终会得到一个目录结构,比如:
-rw-r--r-- 1 someone staff 5936573 Apr 11 20:17 hello-1.0.0-linux-x86.tar.gz
-rw-r--r-- 1 someone staff 6378021 Apr 11 20:17 hello-1.0.0-linux-x86_64.tar.gz
-rw-r--r-- 1 someone staff 6800089 Apr 11 20:17 hello-1.0.0-osx.tar.gz
-rw-r--r-- 1 someone staff 39 Apr 11 20:10 hello.rb
drwxr-xr-x 6 someone staff 204 Apr 11 20:13 packaging/
hello_app % ll packaging
total 37328
-rw-r--r-- 1 someone staff 5945007 Apr 11 20:11 traveling-ruby-20141215-2.1.5-linux-x86.tar.gz
-rw-r--r-- 1 someone staff 6388408 Apr 11 20:11 traveling-ruby-20141215-2.1.5-linux-x86_64.tar.gz
-rw-r--r-- 1 someone staff 6769622 Apr 11 20:11 traveling-ruby-20141215-2.1.5-osx.tar.gz
-rwxr-xr-x 1 someone staff 244 Apr 11 20:13 wrapper.sh*