LINUX.ORG.RU

Сборка deb пакета путем bash.

 ,


0

2

Всем привет, пишу скрипт на bash для сборки deb пакетов и столкнулся с проблемой, в файле control есть параметр Depends было нужно что-бы пользователь вводил с клавиатуры пакеты пока не введет пустую строку вот код данной функции,

    z2=1
while [ -n "$z2" ] ; do
  echo "Введите cписок пакетов через запятую, которые требуются для установки этого пакета."
  read z1   
    if [ -z $z1 ] ; then
    z2=  
    
 fi
  done
но я не могу реализовать считывание всех данных из переменной z1 и запись их в файл control в строку с параметром Depends.

Помогите пожалуйста решить данную проблемку.



Последнее исправление: orionit (всего исправлений: 2)

пишу скрипт на bash

на bash

Не надо, пожалуйста

anonymous
()

Всем привет, пишу скрипт на bash для сборки deb пакетов
Помогите пожалуйста решить данную проблемку.

«А ну прекрати!» будет достаточно?

z2

это такой break?

t184256 ★★★★★
()

Конкатенация и запись в конец строки с параметром Depends? У тебя слабо описано, что нужно получить на выходе (не все знакомы с Debian и нафантазировать, что там в файле control и параметре Depends дано не всем, хотя по bash в курсе могут быть).

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

Строка Depends должна содержать следующее, Список пакетов через запятую, которые требуются для установки этого пакета. После имени пакета можно в круглых скобках указать ограничение на версию, используя операторы: <<, =, >>, <=, >=. Если оператор не указан — используется >=

Пример:

Depends: dpkg, libz (>= 1.2.3), jpeg (= 6b), png (< 2.0)

orionit
() автор топика
Ответ на: комментарий от TomBOY
num=`grep -n Depends control | awk -F ":" '{print $1}'`
sed -i ""$num"s/$/ $argv/" control 
TomBOY ★★
()

А зачем? Нет, правда; чем debhelper не устроил?

ИМХО, гораздо проще указать «${shlibs:Depends}, ${misc:Depends}, ${python:Depends}», etc. и получить зависимости автоматом, нет?

anonymous
()

Или тогда уже хотя бы «dpkg-gencontrol/dh_gencontrol + substvars» если так уж охота велосипедить...

anonymous
()

Я реализовал задачу не много по другому, вот код.

while [ -z "$a1"  ]; do
       echo "Введите через запятую  пакеты которые требуются программе для работы."
      read a1
         echo -e "Depends: $a1" > control
        if [[ -n "$a1"  ]]
             then
         break
           fi
        done

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

Всем спасибо за советы и помощь.

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