Ошибка файл pkgbuild не существует

Темы: 14

#
10 лет, 10 месяцев назад

Темы:

14

Сообщения:

24

Участник с: 04 апреля 2011

Все проблема в том что при установки java из AUR с помощью yaourt получается вот такая ерунда

Проверка исходных файлов с помощью md5sums…
jdk-6u31-linux-i586.bin … СБОЙ
jre6.profile … Готово
jre6.profile.csh … Готово
javaws-launcher … Готово
==> ОШИБКА: Один или более файлов не прошли проверку целостности!
==> ERROR: Makepkg was unable to build jre6.

как решить эту проблему ?

vadik

#
10 лет, 10 месяцев назад

Темы:

55

Сообщения:

5410

Участник с: 17 августа 2009

makepkg -g

gima

#
10 лет, 10 месяцев назад

Темы:

14

Сообщения:

24

Участник с: 04 апреля 2011

==> ОШИБКА: PKGBUILD не существует.

vadik

#
10 лет, 10 месяцев назад

Темы:

55

Сообщения:

5410

Участник с: 17 августа 2009

Вручную скачайте PKGBUILD (если есть доп. файлы — их тоже), и далее собирайте с помощью makepkg.

gima

#
10 лет, 10 месяцев назад

Темы:

14

Сообщения:

24

Участник с: 04 апреля 2011

по статье из вики сделал все но при зборке всеравно
Проверка исходных файлов с помощью md5sums…
jdk-6u31-linux-i586.bin … СБОЙ
если делаю makepkg -g и md5sums заменяю на тот что выдает команда то все проверяет норм но дальше пишет вот что

Запускается build()...
../jdk-6u31-linux-i586.bin: line 1: html: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 2: head: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 3: title: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 4: META: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 5: link: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 6: link: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 7: $'r': команда не найдена
../jdk-6u31-linux-i586.bin: line 8: body: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 9: div: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 10: table: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 11: tr: Нет такого файла или каталога
../jdk-6u31-linux-i586.bin: line 12: syntax error near unexpected token `<'
../jdk-6u31-linux-i586.bin: line 12: `      <td rowspan="2" valign="middle" nowrap><a href="http://www.oracle.com"><img src="/errors/us/assets/oralogo-small.gif" width="154" height="19" 'space="10" vspace="25" border="0" ></a></td>
==> ОШИБКА: Произошел сбой в build().
    Преждевременный выход...

vadik

#
10 лет, 10 месяцев назад

Темы:

55

Сообщения:

5410

Участник с: 17 августа 2009

Дайте название пакета, чтоли.

gima

#
10 лет, 10 месяцев назад

Темы:

14

Сообщения:

24

Участник с: 04 апреля 2011

jre6 6u31-b04

vadik

#
10 лет, 10 месяцев назад

Темы:

55

Сообщения:

5410

Участник с: 17 августа 2009

Читаем комментарии, видим:

Comment by: mlodex on Wed, 28 Mar 2012 16:17:53 +0000
Dumb oracle changed their policy and does not let you download their files directly, without accepting their license, thus you need to download the needed file from http://www.oracle.com/technetwork/java/ … 01634.html by hand, and put it into the build directory yourself.

The file that is automatically downloaded as jdk-6u31-linux-x64.bin is a html file informing that the file is not available w/o accepting the license beforehand.

Сами сможете перевести?

gima

#
10 лет, 10 месяцев назад

Темы:

14

Сообщения:

24

Участник с: 04 апреля 2011

Спс за помощь все собрал и установил )

vadik

#
10 лет, 10 месяцев назад

Темы:

55

Сообщения:

5410

Участник с: 17 августа 2009

Вот и отлично. Теперь опишите кратенько как решили и отредактируйте название темы в стартовом сообщении (добавьте ).

Ответ на:

комментарий
от ChildrenofBodom 11.02.14 02:37:17 MSK

Ответ на:

комментарий
от oster2011 11.02.14 02:40:31 MSK

Ответ на:

комментарий
от Medar 11.02.14 02:42:07 MSK

Ответ на:

комментарий
от gavlig 11.02.14 02:45:46 MSK

Ответ на:

комментарий
от oster2011 11.02.14 02:44:19 MSK

sudo ln -s /usr/lib/libopenal.so /usr/lib/libopenal.so.0
sudo ln -s /usr/lib32/libopenal.so /usr/lib32/libopenal.so.0

Как-то так.

Medar ★★★★★

(11.02.14 02:47:45 MSK)

  • Показать ответы
  • Ссылка

Никакие симлинки не надо ставить, просто включи multilib репозиторий и установи lib32-openal.

mtk

(11.02.14 02:47:52 MSK)

  • Ссылка

Ответ на:

комментарий
от Medar 11.02.14 02:47:45 MSK

Ответ на:

комментарий
от oster2011 11.02.14 02:50:02 MSK

Ответ на:

комментарий
от Medar 11.02.14 02:47:45 MSK

./Bin/Linux-Dynamic-Release/Sam2: error while loading shared libraries: libXxf86misc.so.1: cannot open shared object file: No such file or directory

oster2011 ★★★

(11.02.14 02:51:14 MSK)

  • Ссылка

Ответ на:

комментарий
от Medar 11.02.14 02:51:01 MSK

Ответ на:

комментарий
от oster2011 11.02.14 02:52:02 MSK

Ответ на:

комментарий
от Medar 11.02.14 02:53:33 MSK

ldd: /home/denis/bin/Serious Sam 2/: не обычный файл

oster2011 ★★★

(11.02.14 02:55:16 MSK)

  • Ссылка

Ответ на:

комментарий
от oster2011 11.02.14 02:52:02 MSK

Запости сюда вывод ldd ./Bin/Linux-Dynamic-Release/Sam2, как выше советовали, а то по одной либе долго будем угадывать.

mtk

(11.02.14 02:56:40 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от mtk 11.02.14 02:56:40 MSK

[denis@oster Serious Sam 2]$ ldd ./Bin/Linux-Dynamic-Release/Sam2
        linux-gate.so.1 (0xf778c000)
        libdl.so.2 => /usr/lib32/libdl.so.2 (0xf7753000)
        Bin/Linux-Dynamic-Release/Core.so (0xf756a000)
        Bin/Linux-Dynamic-Release/Engine.so (0xf6dd4000)
        Bin/Linux-Dynamic-Release/ScriptLua.so (0xf6d84000)
        libopenal.so.0 => /usr/lib32/libopenal.so.0 (0xf6d2f000)
        libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf6d13000)
        libXxf86vm.so.1 => /usr/lib32/libXxf86vm.so.1 (0xf6d0d000)
        libXxf86misc.so.1 => not found
        libX11.so.6 => /usr/lib32/libX11.so.6 (0xf6bd6000)
        libXext.so.6 => /usr/lib32/libXext.so.6 (0xf6bc2000)
        libGL.so.1 => /usr/lib32/libGL.so.1 (0xf6b67000)
        libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf6a7e000)
        libm.so.6 => /usr/lib32/libm.so.6 (0xf6a38000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf6a1e000)
        libc.so.6 => /usr/lib32/libc.so.6 (0xf686e000)
        /lib/ld-linux.so.2 (0xf778d000)
        libXxf86misc.so.1 => not found
        libXxf86misc.so.1 => not found
        libXxf86misc.so.1 => not found
        librt.so.1 => /usr/lib32/librt.so.1 (0xf6865000)
        libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf6841000)
        libglapi.so.0 => /usr/lib32/libglapi.so.0 (0xf6829000)
        libXdamage.so.1 => /usr/lib32/libXdamage.so.1 (0xf6825000)
        libXfixes.so.3 => /usr/lib32/libXfixes.so.3 (0xf681f000)
        libX11-xcb.so.1 => /usr/lib32/libX11-xcb.so.1 (0xf681c000)
        libxcb-glx.so.0 => /usr/lib32/libxcb-glx.so.0 (0xf6802000)
        libxcb-dri2.so.0 => /usr/lib32/libxcb-dri2.so.0 (0xf67fc000)
        libdrm.so.2 => /usr/lib32/libdrm.so.2 (0xf67ee000)
        libXau.so.6 => /usr/lib32/libXau.so.6 (0xf67ea000)
        libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf67e3000)

oster2011 ★★★

(11.02.14 02:57:34 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от oster2011 11.02.14 02:57:34 MSK

Вот теперь и доустанови пакеты с библиотеками, которых нет. Или делай симлинки, если у тебя новее версии.

Medar ★★★★★

(11.02.14 02:58:58 MSK)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от Medar 11.02.14 02:58:58 MSK

Ответ на:

комментарий
от oster2011 11.02.14 03:01:05 MSK

Ответ на:

комментарий
от Medar 11.02.14 02:58:58 MSK

Ответ на:

комментарий
от mtk 11.02.14 03:03:30 MSK

Я установил libxxf86misc а как именно сделать символические ссылке

oster2011 ★★★

(11.02.14 03:05:43 MSK)

  • Ссылка

Ответ на:

комментарий
от oster2011 11.02.14 03:05:11 MSK

libxxf86misc в аур-е есть. После установки этого пакета все равно ошибки выдает?

Medar ★★★★★

(11.02.14 03:06:39 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от Medar 11.02.14 03:06:39 MSK

Ответ на:

комментарий
от oster2011 11.02.14 03:07:16 MSK

Ответ на:

комментарий
от Medar 11.02.14 03:09:27 MSK

Ответ на:

комментарий
от oster2011 11.02.14 03:10:47 MSK

Ответ на:

комментарий
от oster2011 11.02.14 03:07:16 MSK

В ауре не тот пакет. Тебе нужен lib32-libxxf86misc. Пока его не будет в системе, никакие симлинки не помогут.

mtk

(11.02.14 03:11:58 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от mtk 11.02.14 03:11:58 MSK

Ответ на:

комментарий
от Medar 11.02.14 03:11:35 MSK

[root@oster Serious Sam 2]# pacman -Ql libxxf86misc
libxxf86misc /usr/
libxxf86misc /usr/lib/
libxxf86misc /usr/lib/libXxf86misc.so                                                                                                                                                            
libxxf86misc /usr/lib/libXxf86misc.so.1                                                                                                                                                          
libxxf86misc /usr/lib/libXxf86misc.so.1.1.0                                                                                                                                                      
libxxf86misc /usr/lib/pkgconfig/                                                                                                                                                                 
libxxf86misc /usr/lib/pkgconfig/xxf86misc.pc                                                                                                                                                     
libxxf86misc /usr/share/                                                                                                                                                                         
libxxf86misc /usr/share/licenses/                                                                                                                                                                
libxxf86misc /usr/share/licenses/libxxf86misc/                                                                                                                                                   
libxxf86misc /usr/share/licenses/libxxf86misc/COPYING
libxxf86misc /usr/share/man/
libxxf86misc /usr/share/man/man3/
libxxf86misc /usr/share/man/man3/XF86Misc.3.gz
libxxf86misc /usr/share/man/man3/XF86MiscGetKbdSettings.3.gz
libxxf86misc /usr/share/man/man3/XF86MiscGetMouseSettings.3.gz
libxxf86misc /usr/share/man/man3/XF86MiscGetSaver.3.gz
libxxf86misc /usr/share/man/man3/XF86MiscQueryExtension.3.gz
libxxf86misc /usr/share/man/man3/XF86MiscQueryVersion.3.gz
libxxf86misc /usr/share/man/man3/XF86MiscSetKbdSettings.3.gz
libxxf86misc /usr/share/man/man3/XF86MiscSetMouseSettings.3.gz
libxxf86misc /usr/share/man/man3/XF86MiscSetSaver.3.gz

oster2011 ★★★

(11.02.14 03:14:39 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от mtk 11.02.14 03:13:39 MSK

Ответ на:

комментарий
от mtk 11.02.14 03:13:39 MSK

Если надо, могу тебе PKGBUILD написать

Вот это я понимаю помощь, а не отправки уроки учить.

Medar ★★★★★

(11.02.14 03:15:37 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от Medar 11.02.14 03:15:37 MSK

lor сегодня, сжалься надо мной и меня даже не обосрали)

oster2011 ★★★

(11.02.14 03:16:53 MSK)

  • Ссылка

Ответ на:

комментарий
от oster2011 11.02.14 03:14:39 MSK

Ответ на:

комментарий
от Medar 11.02.14 03:18:00 MSK

Ответ на:

комментарий
от oster2011 11.02.14 03:20:58 MSK

Вот PKGBUILD для lib32-xf86miscproto (тянется по зависимостям)

# Maintainer: mtk

_pkgname=xf86miscproto
pkgname=lib32-xf86miscproto
pkgver=0.9.3
pkgrel=1
pkgdesc="X11 Misc extension wire protocol (32-bit)"
arch=('x86_64')
url="http://xorg.freedesktop.org/"
license=('custom')
makedepends=('xorg-util-macros')
source=(${url}/releases/individual/proto/${_pkgname}-${pkgver}.tar.bz2)
sha256sums=('45b8ec6a4a8ca21066dce117e09dcc88539862e616e60fb391de05b36f63b095')

build() {
  export CC="gcc -m32"
  export CXX="g++ -m32"
  export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
  cd ${_pkgname}-${pkgver}

  ./configure --prefix='/usr' --libdir=/usr/lib32
   make
}

package() {
  cd ${_pkgname}-${pkgver}

  make DESTDIR="${pkgdir}" install

# License
  install -dm 755 "${pkgdir}"/usr/share/licenses/${pkgname}
  install -m 644 {,"${pkgdir}"/usr/share/licenses/${pkgname}/}COPYING
}

# vim: ts=2 sw=2 et:

Вот PKGBUILD для lib32-libxxf86misc

# Maintainer: mtk
pkgname=lib32-libxxf86misc
pkgver=1.0.3
pkgrel=2
pkgdesc="X11 XFree86 misc extension library (32-bit)"
arch=('x86_64')
license=('custom')
url="http://xorg.freedesktop.org/"
depends=('lib32-libxext' 'lib32-xf86miscproto')
makedepends=('xorg-util-macros')
source=("${url}/releases/individual/lib/libXxf86misc-${pkgver}.tar.bz2")
sha256sums=('563f4200862efd3334c33a669e0a0aae5bab31f3998db75b87a99a697cc26b5b')

build() {
  export CC="gcc -m32"
  export CXX="g++ -m32"
  export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"

  cd libXxf86misc-${pkgver}

  ./configure --prefix='/usr' --disable-static --libdir=/usr/lib32
  make
}

package() {
  cd libXxf86misc-${pkgver}

  make DESTDIR="${pkgdir}" install

# License
  install -dm 755 "${pkgdir}"/usr/share/licenses/${pkgname}
  install -m 644 {,"${pkgdir}"/usr/share/licenses/${pkgname}/}COPYING
}

# vim: ts=2 sw=2 et:

Проверил, 32-битные либы собираются.

Дальше сам разберешся?

mtk

(11.02.14 03:29:07 MSK)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от oster2011 11.02.14 03:20:58 MSK

Ответ на:

комментарий
от mtk 11.02.14 03:29:07 MSK

Ответ на:

комментарий
от mtk 11.02.14 03:29:07 MSK

Ответ на:

комментарий
от oster2011 11.02.14 03:31:11 MSK

  • Удали xf86miscproto и libxxf86misc — мои PKGBUILDы не совместимы.
  • Создай директории lib32-xf86miscproto и lib32-libxxf86misc
  • Создай файлы с названием PKGBUILD в этих директориях и вставь туда то, что я запостил
  • Перейди в директорию lib32-xf86miscproto
  • Запусти makepkg, если ругнется на неустановленные зависимости, установи.
  • Сделай sudo pacman -U lib32-xf86miscproto-0.9.3-x86_64.tar.xz
  • Так же установи lib32-libxxf86misc-1.0.3-2-x86_64.tar.xz

mtk

(11.02.14 03:38:48 MSK)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от mtk 11.02.14 03:29:07 MSK

Ответ на:

комментарий
от mtk 11.02.14 03:38:48 MSK

[denis@oster lib32-xf86miscproto]$ makepkg
==> ОШИБКА: PKGBUILD не существует.

oster2011 ★★★

(11.02.14 03:46:37 MSK)

  • Ссылка

Ответ на:

комментарий
от mtk 11.02.14 03:38:48 MSK

[denis@oster lib32-xf86miscproto]$ makepkg
==> Сборка пакета: lib32-xf86miscproto 0.9.3-1 (Вт фев 11 01:45:48 EET 2014)
==> Проверяю необходимые для запуска зависимости...
==> Проверяю необходимые для сборки зависимости...
==> Получение исходных файлов...
  -> Загрузка -0.9.3.tar.bz2...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
==> ОШИБКА: Загрузка -0.9.3.tar.bz2 завершилась неудачей
    Преждевременный выход...

oster2011 ★★★

(11.02.14 03:48:41 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от Medar 11.02.14 03:39:56 MSK

Надо будет поправить на совместимость с 64-битными:

#remove files that are being provided by original package
rm -rf "${pkgdir}"/usr/{include,share,bin,lib} 

Я сам не тестировал либы, просто собрал. Не знаю, как проверить работоспособность, игру качать не рискую, вдруг еще понравится.

mtk

(11.02.14 03:48:57 MSK)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от mtk 11.02.14 03:48:57 MSK

А в какую часть кода вставлять?)

oster2011 ★★★

(11.02.14 03:50:10 MSK)

  • Ссылка

Ответ на:

комментарий
от oster2011 11.02.14 03:48:41 MSK

Ответ на:

комментарий
от mtk 11.02.14 03:48:57 MSK

Ответ на:

комментарий
от mtk 11.02.14 03:51:28 MSK

да тот же резутат

[denis@oster lib32-xf86miscproto]$ makepkg
==> Сборка пакета: lib32-xf86miscproto 0.9.3-1 (Вт фев 11 01:45:48 EET 2014)
==> Проверяю необходимые для запуска зависимости...
==> Проверяю необходимые для сборки зависимости...
==> Получение исходных файлов...
  -> Загрузка -0.9.3.tar.bz2...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
==> ОШИБКА: Загрузка -0.9.3.tar.bz2 завершилась неудачей
    Преждевременный выход...

oster2011 ★★★

(11.02.14 03:53:58 MSK)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от oster2011 11.02.14 03:51:41 MSK

Это надо делать внутри package() секции в PKGBUILDе, а не в консоли. Тебе достаточно просто удалить xf86miscproto и libxxf86misc, чтобы не было конфликта.

mtk

(11.02.14 03:55:04 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от mtk 11.02.14 03:55:04 MSK

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

Файлы PKGBUILD — это то, как создаются и создаются пакеты для Arch Linux и его производных, таких как Manjaro.

Возможно, вы даже немного сталкивались с ними, если когда-либо использовали AUR, Пользовательский репозиторий Arch Linux PKGBUILD.

Но как именно перейти от PKGBUILD к устанавливаемому пакету? Что именно происходит между ними и как вы можете сделать их для своих собственных пакетов? Вы узнаете их в этой статье.

Те, кто знаком с Bash или другими оболочками, будут рады узнать, если вы еще этого не сделали, что PKGBUILD — это в значительной степени просто сценарий оболочки с некоторыми переменными.

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

Чтобы создать пакет из PKGBUILD, используется утилита командной строки makepkg. После получения PKGBUILD вы просто запускаете makepkg внутри каталога, содержащего PKGBUILD, и вуаля, у вас есть устанавливаемый пакет!

ПКГБИЛД

В этом уроке вы ознакомитесь с только что созданным мной пакетом, который печатает «Hello World!» при запуске:

Пример PKGBUILD

Приступаем к настройке

Чтобы следовать этому руководству, вам нужно создать пару файлов.

Во-первых, вам нужно создать файл с именем ПКГБИЛД. Если это еще не было ясно сказано, это послужит «рецептом» для создания вашего пакета.

Другой файл, который вам нужно создать, — это файл с именем привет мир.sh. Я объясню его назначение чуть позже.

Вы также можете создать оба этих файла с помощью одной команды.

touch PKGBUILD hello-world.sh

Проверить, были ли файлы созданы, можно с помощью команды ls:

Основное руководство PKGBUILD

И вы готовы к работе!

Настройка файла PKGBUILD

Вместо того, чтобы заставлять вас копировать и вставлять весь файл, я буду вводить каждую строку вместе с вами, чтобы вы могли лучше понять цель всего, что происходит. Если вы не предпочитаете учиться таким образом, я настоятельно рекомендую Статья Arch Wiki по созданию пакетов для Arch Linux.

В этой статье также рассматриваются не все параметры, которые вы можете установить в PKGBUILD, а некоторые наиболее часто используемые, чтобы вы могли приступить к работе как можно быстрее.

Разобравшись с этим, откройте текстовый редактор, и приступим прямо к делу!

имя_пакета

Перво-наперво, переменная pkgname. Это то, что определяет имя вашего пакета при установке и как Менеджер пакетов Arch Linux pacman отслеживает посылку.

Формат этой переменной (и некоторых других) принимает форму переменная = значение, с именем переменной слева и значением переменной справа, разделенными знаком равенства.

Чтобы установить имя пакета, введите в PKGBUILD следующее:

pkgname="hello-world"
  • Чтобы установить другое имя пакета, замените hello-world с названием пакета.
  • Это не устанавливает команду, используемую для запуска программы. Это обрабатывается немного ниже в package() .

упаковка

Как указано в самом имени переменной, это устанавливает версию вашего пакета (например, 1.0.0). Это полезно, когда пользователь обновляет свою систему, поскольку установка более высокой версии приведет к тому, что пользователю будет предложено выполнить обновление.

Для установки введите следующее в PKGBUILD (после предыдущей строки):

pkgver="1.0.0"

pkgrel

Это связано с переменной pkgver, и обычно не важно о ней знать. Однако, как и переменная pkgver, она будет уведомлять пользователей об обновлениях, если она будет перемещена на большее число.

Он служит для любых изменений, которые требуют, чтобы pkgver оставался прежним, например, для любых изменений самого PKGBUILD. Это было бы полезно, если вы создали PKGBUILD для используемой программы (и хотите, чтобы версия оставалась такой же, как у пакета), и вам нужно исправить ошибку в самом PKGBUILD.

Чтобы установить переменную, введите в PKGBUILD следующее:

pkgver="1"

Эта переменная должна всегда начните с 1, а затем двигайтесь вверх по одному. Когда упаковка сам движется вверх, это может (и должно) быть сброшено на 1, так как сам pkgver будет уведомлять пользователей о доступных обновлениях.

pkgdesc

Это установит описание пакета, которое используется, чтобы помочь лучше идентифицировать пакет.

Чтобы установить его, просто поместите описание в кавычки:

pkgdesc="Hello world in your terminal!"

арка

Эта переменная устанавливает архитектура пакет совместим с. Это нормально, если вы не понимаете, что такое архитектура, поскольку в большинстве случаев она бесполезна.

Тем не менее, makepkg все еще нуждается в настройке, чтобы он знал, что пакет совместим с нашей системой.

Эта переменная поддерживает установку нескольких значений, поэтому makepkg требует другого синтаксиса, как показано ниже.

Чтобы установить его, введите в PKGBUILD следующее:

arch=("x86_64")

Если бы вы задали для этого несколько значений, вы бы разделяли каждое значение пробелом и кавычками, например: arch = («x86_x64» «рука»)

зависит

Здесь перечислены все пакеты, которые необходимы нашему пакету для работы. Как арка, он также может содержать несколько значений и поэтому должен использовать синтаксис скобок.

Поскольку у нашего пакета не будет никаких зависимостей, нам не нужно вводить это поле в PKGBUILD. Однако, если бы у нашего пакета были зависимости, мы бы просто использовали тот же синтаксис, что и арка.

выбор зависит

В нем перечислены пакеты, которые не требуются для работы, но необходимы для дополнительных функций.

Это следует тому же синтаксису, что и зависит.

конфликты

Это сообщает pacman, какие пакеты заставят наш пакет работать или вести себя не так, как нам хотелось бы.

Любой из перечисленных здесь пакетов будет удален до установки нашего.

Это следует тому же синтаксису, что и зависит так же.

лицензия

Это определяет Лицензия на программное обеспечение что ваша программа находится под лицензией. В Википедия есть информация, если вам нужна помощь в выборе лицензии. Установив это на custom будет работать, если вы не знаете, на что это установить.

Это имеет тот же синтаксис, что и арка и зависит:

license=("custom")

источник

Вот как makepkg узнает, какие файлы использовать для сборки нашего пакета. Он может содержать различные типы источников, включая локальные файлы и URL-адреса.

При добавлении локальных файлов введите имя файла относительно PKGBUILD, т. Е. Рассмотрите следующую структуру каталогов:

PKGBUILD
file.txt
src/file.sh

Если вы хотите включить файл.sh в нашем PKGBUILD вы должны ввести src / file.sh как его имя.

При вводе URL-адресов вы просто вводите полный URL-адрес, например https://mirrors.creativecommons.org/presskit/logos/cc.logo.large.png.

Вашему пакету нужен только файл hello-world.sh, и поскольку он находится в том же каталоге, что и PKGBUILD, вы просто вводите его имя в качестве значения для источник.

Эта переменная также использует тот же синтаксис, что и арка и зависит:

source=("hello-world.sh")

sha512sums

Это используется для проверки того, что файлы в источник не были изменены или загружены неправильно. Информацию о получении значений для этого можно найти в Статья Arch Wiki о PKGBUILD.

Если вы предпочитаете просто не устанавливать это (или вам просто не нужно, например, для локальных файлов), вы можете просто ввести SKIP для каждого файла в источник переменная:

sha512sums=("SKIP")

пакет ()

Это последняя и самая важная часть фактического создания нашего пакета. При работе с этим важно знать две переменные:

  • $ {srcdir}: Здесь makepkg помещает файлы в источник Переменная. Это каталог, в котором вы можете взаимодействовать с файлами и вносить любые другие необходимые изменения в файлы.
  • $ {pkgdir}: сюда мы помещаем файлы, которые будут установлены в нашей системе.
    Структура папок для $ {pkgdir} настроена так, как если бы она была в реальной системе (т.е. $ {pkgdir} / usr / bin / hello-world создаст файл / usr / bin / hello-world при установке с помощью pacman.

package () содержит список команд, используемых для создания пакета.

Итак, если (гипотетически) вам нужен файл, который читает Linux, превосходит Windows в /usr/share/motto.txt запустите что-то вроде этого:

package() {
  mkdir -p "${pkgdir}/usr/share"
  echo "Linux is superior to Windows" | tee "${pkgdir}/usr/share/motto.txt"
}

Несколько примечаний к приведенной выше команде:

  • $ {pkgdir} содержит нет каталоги внутри него сначала. Если вы пропустили команда mkdir, tee выдаст ошибку о том, что каталог не существует.
  • При указании каталогов всегда добавьте к ним $ {pkgdir} or $ {srcdir} Переменная. Ввод чего-то вроде /usr/share/motto.txt без этого укажет на буквальный каталог /usr/share/motto.txt в вашей текущей запущенной системе.

Для вашего PKGBUILD вы собираетесь поместить файл hello-world.sh в / usr / bin / hello-world в вашей целевой системе. Вы также заставите файл сказать «Привет вам!» когда побежал.

Для этого введите в свой PKGBUILD следующее:

package() {
  echo 'Hello to you!' > "${srcdir}/hello-world.sh"
  mkdir -p "${pkgdir}/usr/bin"
  cp "${srcdir}/hello-world.sh" "${pkgdir}/usr/bin/hello-world"
  chmod +x "${pkgdir}/usr/bin/hello-world"
}

И вы сделали! Полученный в результате файл должен выглядеть примерно так:

файл pkgbuild завершен

Теперь соберите и установите пакет с makepkg -si команду, а затем запустите hello-world в вашем терминале, чтобы увидеть его вывод.

1 изображение

Подводя итог

И вот так вы сделали свой первый PKGBUILD! Вы на пути к созданию реальных пакетов для себя и, возможно, даже AUR.

Есть вопросы или что-то просто не работает? Не стесняйтесь размещать это в разделе комментариев ниже.

Оригинал статьи

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Ошибка файл itunes library itl невозможно прочитать так как он был создан
  • Ошибка файл boot bcd
  • Ошибка фазы w1 ямаха
  • Ошибка фазорегулятора пежо 308
  • Ошибка фазмофобия unity 2023

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии