LINUX.ORG.RU

в rules не работают переменные при создании deb пакета

 ,


0

2

Здравствуйте.

в файле debian/rules такой код:

override_dh_install:
        dh_install

        ls -la test
        TEST_DIR=$(shell ls test | grep t2$)
        echo $(TEST_DIR)
        echo $(value TEST_DIR)
        ls -la test/$(TEST_DIR)

Такой вывод при создании пакета через dpkg-buildpackage -us -uc -b

ls -la test
total 20
drwxr-xr-x 5 root       root       4096 May  8 06:16 .
drwxr-xr-x 7 1255404253 1255400513 4096 May  8 06:17 ..
drwxr-xr-x 2 root       root       4096 May  8 06:18 test1
drwxr-xr-x 2 root       root       4096 May  8 05:54 test2
drwxr-xr-x 2 root       root       4096 May  8 06:16 test3
TEST_DIR=test2
echo

echo

ls -la test/
total 20
drwxr-xr-x 5 root       root       4096 May  8 06:16 .
drwxr-xr-x 7 1255404253 1255400513 4096 May  8 06:17 ..
drwxr-xr-x 2 root       root       4096 May  8 06:18 test1
drwxr-xr-x 2 root       root       4096 May  8 05:54 test2
drwxr-xr-x 2 root       root       4096 May  8 06:16 test3


вывести переменную TEST_DIR через echo не получается и воспользоваться ей тоже - пустое значение получаю

Что делаю не так?

Заранее спасибо

причем, если написать в начале файла rules

#!/usr/bin/make -f
#export DH_VERBOSE = 1

TEST_DIR1=$(shell ls test | grep t2$)

то

override_dh_install:
        dh_install

        ls -la test/$(TEST_DIR1)

то нормально вывелось содержимое каталога test2

TEST_DIR=test2
echo

echo

ls -la test/
total 20
drwxr-xr-x 5 root       root       4096 May  8 06:16 .
drwxr-xr-x 7 1255404253 1255400513 4096 May  8 06:17 ..
drwxr-xr-x 2 root       root       4096 May  8 06:18 test1
drwxr-xr-x 2 root       root       4096 May  8 05:54 test2
drwxr-xr-x 2 root       root       4096 May  8 06:16 test3
ls -la test/test2
total 8
drwxr-xr-x 2 root root 4096 May  8 05:54 .
drwxr-xr-x 5 root root 4096 May  8 06:16 ..

skilful
() автор топика

Makefile запускает каждую отдельную строчку таргета отдельным процессом, так что либо ты определяет переменные в самом makefile, либо всё помешаешь в одну строку – как присваивание переменной, так и её использование.

TeopeTuK ★★★★
()
Ответ на: комментарий от TeopeTuK

Попробовал так

override_dh_install:
        dh_install

ls -la test
TEST_DIR=$(shell ls test | grep t2$) && echo $(TEST_DIR) && ls -la test/$(TEST_DIR)

вывод:

ls -la test
total 20
drwxr-xr-x 5 root       root       4096 May  8 12:49 .
drwxr-xr-x 6 1255404253 1255400513 4096 May  8 12:49 ..
drwxr-xr-x 2 root       root       4096 May  8 12:49 test1
drwxr-xr-x 2 root       root       4096 May  8 12:49 test2
drwxr-xr-x 2 root       root       4096 May  8 12:49 test3
TEST_DIR=test2 && echo  && ls -la test/

Так в одну строку или как-то иначе?

skilful
() автор топика
Последнее исправление: skilful (всего исправлений: 1)