在 ubuntu trusty 上配置飞镖 content_shell
Configuring dart content_shell on ubuntu trusty
我正在尝试 运行 xvfb-run -s '-screen 0 1024x768x24' pub run test -p content-shell
Ubuntu Trusty。
Dart 和 content shell 安装方式如下:
# Install Dart
curl https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --import --no-default-keyring --keyring /etc/apt/trusted.gpg.d/google.gpg
curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list
apt-get update
apt-get install --assume-yes dart=1.15.0-1
# Content shell and dartium
curl https://storage.googleapis.com/dart-archive/channels/stable/release/1.15.0/dartium/dartium-linux-x64-release.zip> /dartium-linux-x64-release.zip && \
unzip /dartium-linux-x64-release.zip -d /opt/google && \
mv /opt/google/dartium-* /opt/google/dartium && \
chmod -R 755 /opt/google/dartium
curl http://storage.googleapis.com/dart-archive/channels/stable/release/1.15.0/dartium/content_shell-linux-x64-release.zip > /content_shell-linux-x64-release.zip && \
unzip /content_shell-linux-x64-release.zip -d /opt/google && \
mv /opt/google/drt-* /opt/google/content_shell && \
chmod -R 755 /opt/google/content_shell
/opt/google/content_shell
包含在我的 PATH 变量中。
# which content_shell
/opt/google/content_shell/content_shell
然而,当我 运行 那个测试尝试时:
# xvfb-run -s '-screen 0 1024x768x24' pub run test -p content-shell
我收到如下错误:
Failed to run Content Shell: Content Shell failed with exit code 1..
dart:async Future.Future.error
package:async/src/result/error.dart 30 ErrorResult.asFuture
package:async/src/result.dart 93 Result.release.<fn>
===== asynchronous gap ===========================
dart:async _Future.then
package:async/src/result.dart 93 Result.release
我没有看到更多信息。我不确定这是否应该引起关注,尽管它看起来很不祥:
# content_shell --version
[1114:1114:0617/150811:9471556647:ERROR:browser_main_loop.cc(189)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[1116:1116:0100/000000:9471568304:ERROR:zygote_linux.cc(612)] write: Broken pipe
我的问题是如何配置内容 shell 以正确安装以便它 运行 测试 pub run test -p content-shell
?
就我而言,我需要一些字体。
您可以通过查看日志文件了解 contentshell 有哪些错误,我的安装位置是:
cat /opt/google/content_shell/content_shell.log
这表明我缺少一堆字体,导致 contentshell 无声地失败。
我必须安装的那些(或 hack my way around 因为很多字体包都很大,而且因为这是一个 Docker 容器我想尽量减少膨胀):
apt-get update && apt-get install fonts-tlwg-garuda
# fix dart content shell
mkdir /usr/share/fonts/truetype/kochi
cd /usr/share/fonts/truetype/kochi
ln -s ../dejavu/DejaVuSans-Bold.ttf kochi-gothic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf kochi-mincho.ttf
mkdir /usr/share/fonts/truetype/ttf-indic-fonts-core/
cd /usr/share/fonts/truetype/ttf-indic-fonts-core/
ln -s ../dejavu/DejaVuSans-Bold.ttf lohit_hi.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf lohit_ta.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf MuktiNarrow.ttf
mkdir /usr/share/fonts/truetype/ttf-punjabi-fonts/
cd /usr/share/fonts/truetype/ttf-punjabi-fonts/
ln -s ../dejavu/DejaVuSans-Bold.ttf lohit_pa.ttf
ln -s dejavu/ ttf-dejavu
cd /usr/share/fonts/truetype
ln -s dejavu/ ttf-dejavu
mkdir /usr/share/fonts/truetype/msttcorefonts/
cd /usr/share/fonts/truetype/msttcorefonts/
ln -s ../dejavu/DejaVuSans-Bold.ttf Arial.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Arial_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Arial_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Arial_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Comic_Sans_MS.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Comic_Sans_MS_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Courier_New.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Courier_New_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Courier_New_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Courier_New_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Georgia.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Georgia_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Georgia_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Georgia_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Impact.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Trebuchet_MS.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Trebuchet_MS_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Trebuchet_MS_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Trebuchet_MS_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Times_New_Roman.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Times_New_Roman_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Times_New_Roman_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Times_New_Roman_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Verdana.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Verdana_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Verdana_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Verdana_Italic.ttf
其中大部分来自 this source code 验证。找到它首先验证的列表而不是 运行 命令并看到下一个列表一百万次要容易得多。
您可能希望实际安装此软件包。
我正在尝试 运行 xvfb-run -s '-screen 0 1024x768x24' pub run test -p content-shell
Ubuntu Trusty。
Dart 和 content shell 安装方式如下:
# Install Dart
curl https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --import --no-default-keyring --keyring /etc/apt/trusted.gpg.d/google.gpg
curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list
apt-get update
apt-get install --assume-yes dart=1.15.0-1
# Content shell and dartium
curl https://storage.googleapis.com/dart-archive/channels/stable/release/1.15.0/dartium/dartium-linux-x64-release.zip> /dartium-linux-x64-release.zip && \
unzip /dartium-linux-x64-release.zip -d /opt/google && \
mv /opt/google/dartium-* /opt/google/dartium && \
chmod -R 755 /opt/google/dartium
curl http://storage.googleapis.com/dart-archive/channels/stable/release/1.15.0/dartium/content_shell-linux-x64-release.zip > /content_shell-linux-x64-release.zip && \
unzip /content_shell-linux-x64-release.zip -d /opt/google && \
mv /opt/google/drt-* /opt/google/content_shell && \
chmod -R 755 /opt/google/content_shell
/opt/google/content_shell
包含在我的 PATH 变量中。
# which content_shell
/opt/google/content_shell/content_shell
然而,当我 运行 那个测试尝试时:
# xvfb-run -s '-screen 0 1024x768x24' pub run test -p content-shell
我收到如下错误:
Failed to run Content Shell: Content Shell failed with exit code 1..
dart:async Future.Future.error
package:async/src/result/error.dart 30 ErrorResult.asFuture
package:async/src/result.dart 93 Result.release.<fn>
===== asynchronous gap ===========================
dart:async _Future.then
package:async/src/result.dart 93 Result.release
我没有看到更多信息。我不确定这是否应该引起关注,尽管它看起来很不祥:
# content_shell --version
[1114:1114:0617/150811:9471556647:ERROR:browser_main_loop.cc(189)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[1116:1116:0100/000000:9471568304:ERROR:zygote_linux.cc(612)] write: Broken pipe
我的问题是如何配置内容 shell 以正确安装以便它 运行 测试 pub run test -p content-shell
?
就我而言,我需要一些字体。
您可以通过查看日志文件了解 contentshell 有哪些错误,我的安装位置是:
cat /opt/google/content_shell/content_shell.log
这表明我缺少一堆字体,导致 contentshell 无声地失败。
我必须安装的那些(或 hack my way around 因为很多字体包都很大,而且因为这是一个 Docker 容器我想尽量减少膨胀):
apt-get update && apt-get install fonts-tlwg-garuda
# fix dart content shell
mkdir /usr/share/fonts/truetype/kochi
cd /usr/share/fonts/truetype/kochi
ln -s ../dejavu/DejaVuSans-Bold.ttf kochi-gothic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf kochi-mincho.ttf
mkdir /usr/share/fonts/truetype/ttf-indic-fonts-core/
cd /usr/share/fonts/truetype/ttf-indic-fonts-core/
ln -s ../dejavu/DejaVuSans-Bold.ttf lohit_hi.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf lohit_ta.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf MuktiNarrow.ttf
mkdir /usr/share/fonts/truetype/ttf-punjabi-fonts/
cd /usr/share/fonts/truetype/ttf-punjabi-fonts/
ln -s ../dejavu/DejaVuSans-Bold.ttf lohit_pa.ttf
ln -s dejavu/ ttf-dejavu
cd /usr/share/fonts/truetype
ln -s dejavu/ ttf-dejavu
mkdir /usr/share/fonts/truetype/msttcorefonts/
cd /usr/share/fonts/truetype/msttcorefonts/
ln -s ../dejavu/DejaVuSans-Bold.ttf Arial.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Arial_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Arial_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Arial_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Comic_Sans_MS.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Comic_Sans_MS_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Courier_New.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Courier_New_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Courier_New_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Courier_New_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Georgia.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Georgia_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Georgia_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Georgia_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Impact.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Trebuchet_MS.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Trebuchet_MS_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Trebuchet_MS_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Trebuchet_MS_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Times_New_Roman.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Times_New_Roman_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Times_New_Roman_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Times_New_Roman_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Verdana.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Verdana_Bold.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Verdana_Bold_Italic.ttf
ln -s ../dejavu/DejaVuSans-Bold.ttf Verdana_Italic.ttf
其中大部分来自 this source code 验证。找到它首先验证的列表而不是 运行 命令并看到下一个列表一百万次要容易得多。
您可能希望实际安装此软件包。