Ставим Go

wget https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz --no-check-certificate
sudo tar -C /usr/local -xzf ./go1.6.linux-amd64.tar.gz

Прописываем переменные GOPATH и GOROOT

Я работаю в контейнере openvz, поэтому просто поправил /etc/environment и он стал таким:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/go/bin:"
GOROOT=/usr/local/go
GOPATH=/root/go

При этом путь GOPATH не может быть относительным типа $HOME/go, а только абсолютным - /home/user/go

Обновляем GCC

Для сборки Webkit понадобится GCC версии не ниже 4.9, однако в Ubuntu 14.04.04 в стандартной поставке GCC 4.8.
При этом, попытки скомпилировать WebKit с GCC 5.3.0 уперлись в ошибку типа:

undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

Пробую ставить gcc 4.9:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
sudo update-alternatives --remove-all gcc
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --config gcc

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --config gcc
sudo update-alternatives --config cpp
sudo update-alternatives --config g++

Собираем WebGit с GTK

sudo apt-get update && sudo apt-get install git pkg-config cmake clang nano  build-essential bison gperf ruby-full libcairo2-dev libicu-dev gettext libjpeg62-dev libxslt1-dev libsqlite3-dev libatspi2.0-dev libwebp-dev libgles2-mesa-dev libgl1-mesa-dev geoclue-2.0 geoclue libgeoclue-dev gobject-introspection

Клонируем репозиторий WebKit

git clone git://git.webkit.org/WebKit.git WebKit

Теперь нужно установить зависимости с помощью скрипта - Tools/gtk/install-dependencies
Однако, в нем некорректно указан пакет libtool-bin
Нужно изменить libtool-bin на libtool.

sudo Tools/gtk/install-dependencies

Дальше скачиваем еще немного необходимых модулей:

Tools/Scripts/update-webkitgtk-libs

Собираем:

Tools/Scripts/build-webkit --gtk --prefix=/usr/local --release

Пробуем скачать и запустить webloop

go get github.com/sourcegraph/webloop/...

Он выругается, что есть какой-то неизвестный тип или отсутствует пакет. Скорее всего нужна правильная версия GTK+. Если установить версию GTK+ старше 3.10, то будут сообщения, указывающие на отсуствие refrence gdk_wayland_display_get_type А если поставить версию 3.10, то тоже не соберется с сообщением об неивестном типе - unknown type name 'GtkPopover' . Поэтому выход такой - Сначала ставим версию GTK+ 3.10, а потом 3.16. Но прежде - нужно пройти dependence hell. Список, которые поставил я выглядит так:

-rw-r--r-- 1 root root  9427862 Jun  2 09:06 adwaita-icon-theme-full_3.16.2.1-2ubuntu1_all.deb
-rw-r--r-- 1 root root   943512 Jun  2 09:06 adwaita-icon-theme_3.16.2.1-2ubuntu1_all.deb
-rw-r--r-- 1 root root    48712 Jan 19  2015 fontconfig-config_2.11.1-0ubuntu6_all.deb
-rw-r--r-- 1 root root    17030 Sep 11 06:16 gcc-5-base_5.2.1-17ubuntu1_amd64.deb
-rw-r--r-- 1 root root    17728 May 14 06:20 gir1.2-atk-1.0_2.16.0-2_amd64.deb
-rw-r--r-- 1 root root   187352 Jul 24 09:34 gir1.2-gtk-3.0_3.16.6-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root    12836 Aug 12 18:24 gir1.2-javascriptcoregtk-3.0_2.4.9-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root    20950 Nov 18  2014 gir1.2-pango-1.0_1.36.8-3_amd64.deb
-rw-r--r-- 1 root root    26614 Aug 12 18:24 gir1.2-webkit2-3.0_2.4.9-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root  1315042 Jul  6 11:41 humanity-icon-theme_0.6.9_all.deb
-rw-r--r-- 1 root root   378772 Sep 11 05:18 lib64stdc++6_5.2.1-17ubuntu1_i386.deb
-rw-r--r-- 1 root root    57782 May 14 06:20 libatk1.0-0_2.16.0-2_amd64.deb
-rw-r--r-- 1 root root    16898 May 14 06:20 libatk1.0-data_2.16.0-2_all.deb
-rw-r--r-- 1 root root    79070 May 14 06:20 libatk1.0-dev_2.16.0-2_amd64.deb
-rw-r--r-- 1 root root    37258 Jul 30 05:34 libboost-filesystem1.58.0_1.58.0+dfsg-0ubuntu5_amd64.deb
-rw-r--r-- 1 root root     9454 Jul 30 05:34 libboost-system1.58.0_1.58.0+dfsg-0ubuntu5_amd64.deb
-rw-r--r-- 1 root root    17416 Apr  8 08:12 libcairo-gobject2_1.14.2-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root    54382 Apr  8 08:12 libcairo-script-interpreter2_1.14.2-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root   593992 Apr  8 08:12 libcairo2-dev_1.14.2-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root   558844 Apr  8 08:12 libcairo2_1.14.2-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root    20282 Jun  9 07:13 libcap2-bin_2.24-9_amd64.deb
-rw-r--r-- 1 root root   100690 Jun  9 22:51 libcolord2_1.2.11-0ubuntu1_amd64.deb
-rw-r--r-- 1 root root    39008 Aug  8 06:11 libelf1_0.163-4ubuntu1_amd64.deb
-rw-r--r-- 1 root root   104426 Jun  8  2014 libepoxy-dev_1.2-1_amd64.deb
-rw-r--r-- 1 root root   164522 Jun  8  2014 libepoxy0_1.2-1_amd64.deb
-rw-r--r-- 1 root root   640896 Jan 19  2015 libfontconfig1-dev_2.11.1-0ubuntu6_amd64.deb
-rw-r--r-- 1 root root   126516 Jan 19  2015 libfontconfig1_2.11.1-0ubuntu6_amd64.deb
-rw-r--r-- 1 root root   632734 Sep 10 08:13 libfreetype6-dev_2.5.2-2ubuntu3.1_amd64.deb
-rw-r--r-- 1 root root   314522 Sep 10 13:03 libfreetype6_2.5.2-2ubuntu3.1_amd64.deb
-rw-r--r-- 1 root root    88266 Oct 27  2014 libgirepository-1.0-1_1.42.0-2.2_amd64.deb
-rw-r--r-- 1 root root  1106104 Sep  7 07:38 libglib2.0-0_2.45.7-1_amd64.deb
-rw-r--r-- 1 root root    39468 Sep  7 07:38 libglib2.0-bin_2.45.7-1_amd64.deb
-rw-r--r-- 1 root root  1367218 Sep  7 07:38 libglib2.0-dev_2.45.7-1_amd64.deb
-rw-r--r-- 1 root root   729218 Sep  4 13:20 libgstreamer1.0-0_1.5.90-1_amd64.deb
-rw-r--r-- 1 root root  2300010 Jul 24 09:34 libgtk-3-0_3.16.6-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root   196084 Jul 24 09:34 libgtk-3-common_3.16.6-1ubuntu1_all.deb
-rw-r--r-- 1 root root   863430 Jul 24 09:34 libgtk-3-dev_3.16.6-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root   178560 Jan  5  2015 libharfbuzz-dev_0.9.37-1_amd64.deb
-rw-r--r-- 1 root root    11124 Jan  5  2015 libharfbuzz-gobject0_0.9.37-1_amd64.deb
-rw-r--r-- 1 root root     5446 Jan  5  2015 libharfbuzz-icu0_0.9.37-1_amd64.deb
-rw-r--r-- 1 root root   131906 Jan  5  2015 libharfbuzz0b_0.9.37-1_amd64.deb
-rw-r--r-- 1 root root  7652886 Aug  8 19:18 libicu55_55.1-4_amd64.deb
-rw-r--r-- 1 root root  1851120 Aug 12 18:24 libjavascriptcoregtk-3.0-0_2.4.9-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root    33452 Aug 12 18:24 libjavascriptcoregtk-3.0-bin_2.4.9-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root    21176 Aug 12 18:24 libjavascriptcoregtk-3.0-dev_2.4.9-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root    56706 May 23 19:16 libjson-glib-1.0-0_1.0.4-1_amd64.deb
-rw-r--r-- 1 root root     5852 May 23 19:16 libjson-glib-1.0-common_1.0.4-1_all.deb
-rw-r--r-- 1 root root   136966 Nov 17  2014 liblcms2-2_2.6-3ubuntu2_amd64.deb
-rw-r--r-- 1 root root    22578 Sep  3 15:30 libmirclient-dev_0.15.1+15.10.20150903-0ubuntu1_amd64.deb
-rw-r--r-- 1 root root   153826 Sep  3 15:30 libmirclient9_0.15.1+15.10.20150903-0ubuntu1_amd64.deb
-rw-r--r-- 1 root root    15476 Sep  3 15:30 libmircommon-dev_0.15.1+15.10.20150903-0ubuntu1_amd64.deb
-rw-r--r-- 1 root root    62966 Sep  3 15:30 libmircommon5_0.15.1+15.10.20150903-0ubuntu1_amd64.deb
-rw-r--r-- 1 root root    94278 Sep  3 15:30 libmirprotobuf1_0.15.1+15.10.20150903-0ubuntu1_amd64.deb
-rw-r--r-- 1 root root   151888 Nov 18  2014 libpango-1.0-0_1.36.8-3_amd64.deb
-rw-r--r-- 1 root root   287528 Nov 18  2014 libpango1.0-dev_1.36.8-3_amd64.deb
-rw-r--r-- 1 root root    20612 Nov 18  2014 libpangocairo-1.0-0_1.36.8-3_amd64.deb
-rw-r--r-- 1 root root    33446 Nov 18  2014 libpangoft2-1.0-0_1.36.8-3_amd64.deb
-rw-r--r-- 1 root root    15264 Nov 18  2014 libpangoxft-1.0-0_1.36.8-3_amd64.deb
-rw-r--r-- 1 root root    58274 Aug  6 07:28 libprotobuf-lite9v5_2.6.1-1.2_amd64.deb
-rw-r--r-- 1 root root    31798 Mar 17 09:40 librest-0.7-0_0.7.92-3_amd64.deb
-rw-r--r-- 1 root root    91300 Aug  8 13:16 librsvg2-2_2.40.10-1_amd64.deb
-rw-r--r-- 1 root root     5038 Aug  8 13:16 librsvg2-common_2.40.10-1_amd64.deb
-rw-r--r-- 1 root root   391722 Sep 11 06:30 libstdc++6_5.2.1-17ubuntu1_amd64.deb
-rw-r--r-- 1 root root    21978 Jun 13 07:12 libwayland-client0_1.8.1-1_amd64.deb
-rw-r--r-- 1 root root    10242 Jun 13 07:12 libwayland-cursor0_1.8.1-1_amd64.deb
-rw-r--r-- 1 root root   111378 Jun 13 07:12 libwayland-dev_1.8.1-1_amd64.deb
-rw-r--r-- 1 root root    26868 Jun 13 07:12 libwayland-server0_1.8.1-1_amd64.deb
-rw-r--r-- 1 root root 15053220 Aug 12 18:24 libwebkit2gtk-3.0-25_2.4.9-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root   169216 Aug 12 18:24 libwebkit2gtk-3.0-dev_2.4.9-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root   107506 Aug 12 18:24 libwebkitgtk-3.0-common_2.4.9-2ubuntu2_all.deb
-rw-r--r-- 1 root root    62644 Aug 12 18:24 libwebkitgtk-common-dev_2.4.9-2ubuntu2_all.deb
-rw-r--r-- 1 root root   164654 May 13 07:11 libwebp5_0.4.3-1.3_amd64.deb
-rw-r--r-- 1 root root   570876 Aug  4  2014 libx11-6_1.6.2-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root   639830 Aug  4  2014 libx11-dev_1.6.2-2ubuntu2_amd64.deb
-rw-r--r-- 1 root root    45694 Jul 13  2014 libxft-dev_2.3.2-1_amd64.deb
-rw-r--r-- 1 root root    36120 Jul 13  2014 libxft2_2.3.2-1_amd64.deb
-rw-r--r-- 1 root root    97170 Jul 20 04:17 libxkbcommon0_0.5.0-1ubuntu2_amd64.deb
-rw-r--r-- 1 root root    24504 Apr  8 08:34 libxrender-dev_0.9.8-1build1_amd64.deb
-rw-r--r-- 1 root root    18482 Apr  8 08:34 libxrender1_0.9.8-1build1_amd64.deb
-rw-r--r-- 1 root root   176418 Sep 10 10:05 ubuntu-mono_14.04+15.10.20150910-0ubuntu1_all.deb

Их все я выкачал вручную и поставил:

dpkg -i ./*.deb

По просьбе трудищихся могу выложить файлик, где собраны зависимости.

Потом скачиваем, компилим и ставим две версии GTK:

wget http://ftp.gnome.org/pub/gnome/sources/gtk+/3.10/gtk+-3.10.2.tar.xz
tar -xvf gtk+-3.10.2.tar.xz
cd gtk+-3.10.2
./configure
make
make install

wget http://ftp.gnome.org/pub/gnome/sources/gtk+/3.16/gtk+-3.16.6.tar.xz
tar -xvf gtk+-3.16.6.tar.xz
cd gtk+-3.16.6
./configure
make
make install

И вот после этого скорее всего удастся скачать и собрать webtool:

go install github.com/sourcegraph/webloop/...

И даже запустить:

static-reverse-proxy -target=http://example.com -http=:13000

Но! при попытке открытия сайтика вылезет: Gtk-WARNING : cannot open display: Тут на помощь придет Xvfb:

apt-get install xvfb xserver-xorg-core x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic 

проверяем:

Xvfb :99 -ac

И теперь можем запустить нашу webloop:

xvfb-run --server-args="-screen 0, 1280x1024x24" /root/go/bin/static-reverse-proxy -target=http://www.sitename.ru -http=:13000 -unfinished

И радуемся.

Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/запуск_webloop_на_ubuntu_14.04.txt
  • Last modified: 2019/02/11 09:13
  • by 127.0.0.1