在Ubuntu trusty上配置dart content_shell [英] Configuring dart content_shell on ubuntu trusty

查看:219
本文介绍了在Ubuntu trusty上配置dart content_shell的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在Ubuntu Trusty上运行 xvfb-run -s'-screen 0 1024x768x24'pub run test -p content-shell



Dart和content shell以以下方式安装:

 #安装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

c> / opt / google / content_shell 包含在我的PATH变量中。

 #which content_shell 
/ opt / google / content_shell / content_shell

但是,当我运行测试尝试: / p>

 #xvfb-run -s'-screen 0 1024x768x24'pub run test -p content-shell 

我收到的错误如下:

 无法运行内容Shell:内容Shell失败,退出代码为1 .. 
dart:async Future.Future.error
软件包:async / src / result / error.dart 30 ErrorResult.asFuture
package:async / src / result.dart 93 Result.release。< fn>
=====异步间隙=========================
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)]不带SUID沙箱运行!有关使用沙盒开发的详细信息,请参阅https://code.google.com/p/chromium/wiki/LinuxSUIDSandbox开发。
[1116:1116:0100/000000:9471568304:ERROR:zygote_linux.cc(612)] write:Broken pipe

我的问题是如何配置内容shell正确安装,所以它将运行测试与 pub运行测试-p内容shell

解决方案

在我的例子中,我需要一些字体。



错误contentshell通过查看日志文件,对于我的安装位置,这是:

  cat / opt / google / content_shell / content_shell。 log 

这表明我缺少了一些字体,导致contentshell默认失败。 p>

我必须安装的(或 hack我的方式,因为许多字体包是巨大的,因为这是一个Docker容器,我想减少bloat):

  apt-get update&& apt-get install fonts-tlwg-garuda 

#修复dart内容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 / 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

其中大部分来自这个源代码验证。它更容易找到列表,它首先验证,而不是运行命令,看到下一百万次。



您可能希望实际安装此软件包。 p>

I am trying to run xvfb-run -s '-screen 0 1024x768x24' pub run test -p content-shell on Ubuntu Trusty.

Dart and content shell are installed in the following way:

# 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

with /opt/google/content_shell being included in my PATH variable.

# which content_shell
/opt/google/content_shell/content_shell

However, when I run that test attempt:

# xvfb-run -s '-screen 0 1024x768x24' pub run  test -p content-shell

I receive errors looking like:

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

I do not see any more information. I am not sure if this should be concerning, though it looks ominous:

# 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

My questions is how can I configure content shell to install correctly so it will run tests with pub run test -p content-shell?

解决方案

In my case, I needed some fonts.

You can see what errors contentshell has by viewing the log file, for my install location this is:

cat /opt/google/content_shell/content_shell.log

This showed me I was missing a bunch of fonts, which caused contentshell to silently fail.

The ones I had to install (or hack my way around since a lot of the fonts packages are huge, and since this is a Docker container I wanted to minimize bloat):

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

Most of these were from this source code validation. It's far easier to find the list it's validating first instead of running the command and seeing the next one a million times.

You may wish to actually install this package.

这篇关于在Ubuntu trusty上配置dart content_shell的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆