Как скомпилировать LESS пейджер?

У меня возникла аналогичная проблема при установке IBM Installation Manager (IBMIM) на CentOS 6.x и обошел проблему, установив несколько пакетов, которые были причиной этой идентичной ошибки:

$ sudo /opt/IBM/InstallationManager/eclipse/IBMIM \
       -record /root/was8nd_v85_install.xml \
       -skipInstall /tmp/was8nd

00:00.46 ERROR [main] org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory safeLogged
  Application error
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
    at org.eclipse.swt.SWT.error(SWT.java:4387)
    at org.eclipse.swt.widgets.Display.createDisplay(Display.java:913)
    at org.eclipse.swt.widgets.Display.create(Display.java:899)
    at org.eclipse.swt.graphics.Device.(Device.java:156)
    ...
IBMIM:
An error has occurred. See the log file
/opt/IBM/InstallationManager/eclipse/configuration/1457978953529.log.

Решение, часть 1 - отсутствующие пакеты

$ sudo yum install \
   gtk2            \
   libXtst         \
   gnome-desktop   \
   xorg-x11-xauth  \
   dejavu-lgc-sans-fonts 

Что-то подобное могло быть сделано и на Ubuntu.

Решение, часть 2 - xauth

Другая проблема, которая может возникнуть, заключается в том, что вы пытаетесь запустить установщик IBMIM (на основе Eclipse) от имени пользователя root через sudo. Когда вы это сделаете, вы получите указанную выше ошибку приложения от установщика:

00:00.46 ERROR [main] org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory safeLogged
  Application error
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

Чтобы обойти эту проблему, вам нужно использовать xauth add , чтобы добавить первого пользователя, которого вы вошли в систему, как root ] Файл $ HOME / .Xauthority .

Как user1:

$ xauth list
ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX

Затем как root:

$ xauth add ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX
xauth:  creating new authority file /root/.Xauthority

$ xauth list
ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX

Ссылки

1
17.09.2018, 09:35
4 ответа

Вот метод, который я только что успешно применил в Ubuntu 18.04:

  • git clone https://github.com/gwsw/less.git
  • cd less
  • autoreconf -i#установите пакет autoconf, если вы еще этого не сделали
  • make -f Makefile.aut dist

Это создает каталог release/less-550, содержащий less-550.tar.gzи less-550.zip. Он также пытается создать подпись gpg для less-550.tar.gz. Это зависло в моей системе, поэтому я убил процесс gpg --detach-sign...из другого окна. Вы также можете просто убить процесс make.

less-550.tar.gz— это стандартный сборный архив с исходным кодом, который вы можете установить как обычно:

  • tar xf less-550.tar.gz
  • cd less-550
  • ./configure --prefix=некоторые -каталогидругие -опции
  • make
  • make install

Наиболее интересные варианты для ./configure, наверное,:

--with-regex=LIB        select regular expression library
                        (LIB is one of
                         auto,none,gnu,pcre,pcre2,posix,
                         regcmp,re_comp,regcomp,regcomp-local) [auto]
--with-editor=PROGRAM   use PROGRAM as the default editor [vi]

Запустите ./configure --help, чтобы просмотреть полный список параметров.

2
27.01.2020, 23:12

Эта последовательность работает, но я не уверен, что она правильная:

git clone https://github.com/gwsw/less
cd less/
autoheader
autoconf
./configure
make -f Makefile.aut funcs.h
make
make -f Makefile.aut less.nro
make -f Makefile.aut lesskey.nro
make -f Makefile.aut lessecho.nro
make install
0
27.01.2020, 23:12

Как объясняется в ответе Томаса Дики , репозиторий git нуждается в подготовке, прежде чем его можно будет использовать для сборки, и один требуемый файл не может быть воссоздан с использованием предоставленных файлов.

Чтобы собрать меньше, загрузите последнюю версию архива и соберите его:

wget http://greenwoodsoftware.com/less/less-530.tar.gz
tar xf less-530.tar.gz
cd less-530
./configure && make

Однако обратите внимание, что версия 530 содержит несколько досадных ошибок, которые исправлены в репозитории git. (Возможно, поэтому пакет Debian не был обновлен.)

Кроме того, вы можете обновить пакет Debian:

sudo apt build-dep less
sudo apt install devscripts
apt source less
cd less-487
uscan
cd..
tar xf less_530.orig.tar.gz
cd less-530
cp -a../less-487/debian.
dch -v 530-0.1 "New upstream release."
dch -r ignored
debuild -uc -uc

Это создаст less_530-0.1_yourarch.deb(, где yourarch, вероятно, будет amd64), который вы можете установить, используя sudo dpkg -i. Как указывает JdeBP, это обеспечит применение исправлений Debian и использование соответствующих configureопций; это также даст вам преимущества использования пакета вместо ручной установки.

Для gbpтаких фанатов, как я, следующий рецепт использует репозиторий git, что делает любые изменения более очевидными:

sudo apt build-dep less
sudo apt install devscripts git-buildpackage
gbp import-dsc --pristine-tar apt://less/sid
cd less
gbp import-orig --pristine-tar --uscan
dch -v 530-0.1 "New upstream release."
dch -r ignored
gbp buildpackage -us -uc --git-ignore-new

(Строго говоря, в обоих случаях следует использовать dch -nи dch -vили, по крайней мере, добавить «Загрузка без -сопровождающего». в список изменений, но это сложнее сделать с помощью копирования -и вставки.)

5
27.01.2020, 23:12

«Makefile.in»является входом для«configure» , который генерирует «Makefile» . Вам не нужно указывать «Makefile» в команде make -. Так что это должно работать лучше:

./configure
make

(хотя вы могли оставить файлы в этом каталоге, которые должны быть удалены перед повторным -запуском configure ).

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

autoconf

Однако в дереве git отсутствует файл «define.h.in» — требуется дополнительная подготовка. :Ни один из файлов в git не соответствует требуемому шаблону. Вы могли бы повторно использовать соответствующий файл из выпуска tar -ball, хотя это ненадежно (, как и любой другой исходный -файл, он )изменяется. Поскольку в документации этот шаг не упоминается, отчет об ошибке разработчику может помочь.

В исправленном вопросе задается вопрос funcs.h, который можно создать с помощью правила вMakefile.aut(«Makefile для меньшего создания» , согласно комментарию вверху файла ).Но по состоянию на 17 сентября 2018 г. по-прежнему не существует правила созданияdefines.h.in(использования grep для ответа на эти вопросы ).

3
27.01.2020, 23:12

Теги

Похожие вопросы