Ubuntu 17.04でGazeboをコンパイルしようとしています。
私はこれをフォローしています指示するしかし、次はバグのようです。
sudo apt-get install $(sed 's:\\ ::g' <<< $BASE_DEPENDENCIES) $(sed 's:\\ ::g' <<< $GAZEBO_BASE_DEPENDENCIES)
ここで何が起こっているのかわかりません。sed 's:\\ ::g'
前のコマンドを実行すると、sudo apt-get install ...
次のエラーが42回発生します。
E: パッケージが見つかりません\
私は両方の変数に答えました。
echo $BASE_DEPENDENCIES
build-essential \ cmake \ debhelper \ mesa-utils \ cppcheck \ xsltproc \ python-psutil \ python \ bc \ netcat-openbsd \ gnupg2 \ net-tools \ locales
もう一つ:
echo $GAZEBO_BASE_DEPENDENCIES
libfreeimage-dev \ libprotoc-dev \ libprotobuf-dev \ protobuf-compiler \ freeglut3-dev \ libcurl4-openssl-dev \ libtinyxml-dev \ libtar-dev \ libtbb-dev \ libogre-1.9-dev \ libxml2-dev \ pkg-config \ qtbase5-dev \ libqwt-qt5-dev \ libltdl-dev \ libgts-dev \ libboost-thread-dev \ libboost-signals-dev \ libboost-system-dev \ libboost-filesystem-dev \ libboost-program-options-dev \ libboost-regex-dev \ libboost-iostreams-dev \ libbullet-dev \ libsimbody-dev \ \ libignition-transport3-dev \ libignition-math3-dev \ libignition-msgs-dev \ libtinyxml2-dev \ libsdformat5-dev
このコマンドの出力は次のsed 's:\\ ::g' <<< $BASE_DEPENDENCIES
とおりです。
build-essential \
cmake \
debhelper \
mesa-utils \
cppcheck \
xsltproc \
python-psutil \
python \
bc \
netcat-openbsd \
gnupg2 \
net-tools \
locales
修正するsed 's:\\[[:space:]]::g' <<< $BASE_DEPENDENCIES
次の出力でコマンドを試しました。
user@Mpc:~$ sed 's:\\[[:space:]]::g' <<< $BASE_DEPENDENCIES
build-essential \
cmake \
debhelper \
mesa-utils \
cppcheck \
xsltproc \
python-psutil \
python \
bc \
netcat-openbsd \
gnupg2 \
net-tools \
locales
アップデート2
sed コマンドは問題ないようです。環境変数を使用せずに次のようにすると、正しい文字列が得られます。
user@pc:~$ echo 'build-essential \ cmake \ debhelper \ mesa-utils \ cppcheck \ xsltproc \ python-psutil \ python \ bc \ netcat-openbsd \ gnupg2 \ net-tools \ locales' | sed 's:\\ ::g'
build-essential cmake debhelper mesa-utils cppcheck xsltproc python-psutil python bc netcat-openbsd gnupg2 net-tools locales
アップデート3
私が環境を囲んでいる場合。変わりやすい。これに応じて、私は改行とスペースを取得します。ただし、引用符なしで応答すると、すべての内容が1行に表示されます。
引用符なしでenv.varでsedを使用すると、新しい行とスペースを含む変数の値が得られます。
このエラーをどのように解決できますか?
ベストアンサー1
このsed
コマンドは変数の内容からすべてのバックスラッシュを削除する必要がありますが、バックスラッシュの後にスペースを入れる必要があります。しかし、その後に改行文字が続くようですので、次のようにしてください。
sed -z 's:\\[[:space:]]::g'
代わりに(これはGNUにのみ適用されますが、sed
Ubuntuを使用しているため...)