дпкг без оболочки

Попробуйте сделать это:

sudo apt-get -V --dry-run --no-install-recommends remove g++
3
задан 6 July 2012 в 17:53

8 ответов

Я думаю, что ваша проблема в этой строке:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

BASH_SOURCE - «плохая замена» sh.

С другой стороны, я нашел это:

http://www.reactivation.net/writing_udev_rules.html#external-run

udev не запускает эти программы ни на одном активном терминале, и он не выполняет их в контексте оболочки. Убедитесь, что ваша программа помечена как исполняемая, если это сценарий оболочки, убедитесь, что она запускается с подходящего шебанга (например, #! / Bin / sh), и не ожидайте появления какого-либо стандартного вывода на вашем терминале.

Таким образом, в основном проблемы могут быть:

a) Вы не используете шебанг для usb_autorun.sh, и вам нужно добавить #!/bin/bash как к autorun.sh, так и к usb_autorun .sh

b) вместо этого попробуйте эту строку и используйте #! / bin / sh как для autorun.sh, так и для usb_autorun.sh:

DIR=$( readlink -f "$( dirname "$0" )")

Примечание: это решение немного небезопасно (любой может запустить что-нибудь в autorun.sh и запустить его), но на локальном уровне я считаю, что это безвредно. Тем не менее, я бы использовал другое имя вместо «autorun.sh», например «install_deb.sh» - просто чтобы избежать любых вредоносных скриптов.

1
ответ дан 25 July 2018 в 18:11

Я думаю, что ваша проблема в этой строке:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

BASH_SOURCE - «плохая замена» sh.

С другой стороны, я нашел это:

http://www.reactivation.net/writing_udev_rules.html#external-run

udev не запускает эти программы ни на одном активном терминале, и он не выполняет их в контексте оболочки. Убедитесь, что ваша программа помечена как исполняемая, если это сценарий оболочки, убедитесь, что она запускается с подходящего шебанга (например, #! / Bin / sh), и не ожидайте появления какого-либо стандартного вывода на вашем терминале.

Таким образом, в основном проблемы могут быть:

a) Вы не используете шебанг для usb_autorun.sh, и вам нужно добавить #!/bin/bash как к autorun.sh, так и к usb_autorun .sh

b) вместо этого попробуйте эту строку и используйте #! / bin / sh как для autorun.sh, так и для usb_autorun.sh:

DIR=$( readlink -f "$( dirname "$0" )")

Примечание: это решение немного небезопасно (любой может запустить что-нибудь в autorun.sh и запустить его), но на локальном уровне я считаю, что это безвредно. Тем не менее, я бы использовал другое имя вместо «autorun.sh», например «install_deb.sh» - просто чтобы избежать любых вредоносных скриптов.

1
ответ дан 31 July 2018 в 13:46

Я думаю, что ваша проблема в этой строке:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

BASH_SOURCE - «плохая замена» sh.

С другой стороны, я нашел это:

http://www.reactivation.net/writing_udev_rules.html#external-run

udev не запускает эти программы ни на одном активном терминале, и он не выполняет их в контексте оболочки. Убедитесь, что ваша программа помечена как исполняемая, если это сценарий оболочки, убедитесь, что она запускается с подходящего шебанга (например, #! / Bin / sh), и не ожидайте появления какого-либо стандартного вывода на вашем терминале.

Таким образом, в основном проблемы могут быть:

a) Вы не используете шебанг для usb_autorun.sh, и вам нужно добавить #!/bin/bash как к autorun.sh, так и к usb_autorun .sh

b) вместо этого попробуйте эту строку и используйте #! / bin / sh как для autorun.sh, так и для usb_autorun.sh:

DIR=$( readlink -f "$( dirname "$0" )")

Примечание: это решение немного небезопасно (любой может запустить что-нибудь в autorun.sh и запустить его), но на локальном уровне я считаю, что это безвредно. Тем не менее, я бы использовал другое имя вместо «autorun.sh», например «install_deb.sh» - просто чтобы избежать любых вредоносных скриптов.

1
ответ дан 2 August 2018 в 00:25

Я думаю, что ваша проблема в этой строке:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

BASH_SOURCE - «плохая замена» sh.

С другой стороны, я нашел это:

http://www.reactivation.net/writing_udev_rules.html#external-run

udev не запускает эти программы ни на одном активном терминале, и он не выполняет их в контексте оболочки. Убедитесь, что ваша программа помечена как исполняемая, если это сценарий оболочки, убедитесь, что она запускается с подходящего шебанга (например, #! / Bin / sh), и не ожидайте появления какого-либо стандартного вывода на вашем терминале.

Таким образом, в основном проблемы могут быть:

a) Вы не используете шебанг для usb_autorun.sh, и вам нужно добавить #!/bin/bash как к autorun.sh, так и к usb_autorun .sh

b) вместо этого попробуйте эту строку и используйте #! / bin / sh как для autorun.sh, так и для usb_autorun.sh:

DIR=$( readlink -f "$( dirname "$0" )")

Примечание: это решение немного небезопасно (любой может запустить что-нибудь в autorun.sh и запустить его), но на локальном уровне я считаю, что это безвредно. Тем не менее, я бы использовал другое имя вместо «autorun.sh», например «install_deb.sh» - просто чтобы избежать любых вредоносных скриптов.

1
ответ дан 4 August 2018 в 15:54

Я думаю, что ваша проблема в этой строке:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

BASH_SOURCE - «плохая замена» sh.

С другой стороны, я нашел это:

http://www.reactivation.net/writing_udev_rules.html#external-run

udev не запускает эти программы ни на одном активном терминале, и он не выполняет их в контексте оболочки. Убедитесь, что ваша программа помечена как исполняемая, если это сценарий оболочки, убедитесь, что она запускается с подходящего шебанга (например, #! / Bin / sh), и не ожидайте появления какого-либо стандартного вывода на вашем терминале.

Таким образом, в основном проблемы могут быть:

a) Вы не используете шебанг для usb_autorun.sh, и вам нужно добавить #!/bin/bash как к autorun.sh, так и к usb_autorun .sh

b) вместо этого попробуйте эту строку и используйте #! / bin / sh как для autorun.sh, так и для usb_autorun.sh:

DIR=$( readlink -f "$( dirname "$0" )")

Примечание: это решение немного небезопасно (любой может запустить что-нибудь в autorun.sh и запустить его), но на локальном уровне я считаю, что это безвредно. Тем не менее, я бы использовал другое имя вместо «autorun.sh», например «install_deb.sh» - просто чтобы избежать любых вредоносных скриптов.

1
ответ дан 6 August 2018 в 00:32

Я думаю, что ваша проблема в этой строке:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

BASH_SOURCE - «плохая замена» sh.

С другой стороны, я нашел это:

http://www.reactivation.net/writing_udev_rules.html#external-run

udev не запускает эти программы ни на одном активном терминале, и он не выполняет их в контексте оболочки. Убедитесь, что ваша программа помечена как исполняемая, если это сценарий оболочки, убедитесь, что она запускается с подходящего шебанга (например, #! / Bin / sh), и не ожидайте появления какого-либо стандартного вывода на вашем терминале.

Таким образом, в основном проблемы могут быть:

a) Вы не используете шебанг для usb_autorun.sh, и вам нужно добавить #!/bin/bash как к autorun.sh, так и к usb_autorun .sh

b) вместо этого попробуйте эту строку и используйте #! / bin / sh как для autorun.sh, так и для usb_autorun.sh:

DIR=$( readlink -f "$( dirname "$0" )")

Примечание: это решение немного небезопасно (любой может запустить что-нибудь в autorun.sh и запустить его), но на локальном уровне я считаю, что это безвредно. Тем не менее, я бы использовал другое имя вместо «autorun.sh», например «install_deb.sh» - просто чтобы избежать любых вредоносных скриптов.

1
ответ дан 7 August 2018 в 17:57

Я думаю, что ваша проблема в этой строке:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

BASH_SOURCE - «плохая замена» sh.

С другой стороны, я нашел это:

http://www.reactivation.net/writing_udev_rules.html#external-run

udev не запускает эти программы ни на одном активном терминале, и он не выполняет их в контексте оболочки. Убедитесь, что ваша программа помечена как исполняемая, если это сценарий оболочки, убедитесь, что она запускается с подходящего шебанга (например, #! / Bin / sh), и не ожидайте появления какого-либо стандартного вывода на вашем терминале.

Таким образом, в основном проблемы могут быть:

a) Вы не используете шебанг для usb_autorun.sh, и вам нужно добавить #!/bin/bash как к autorun.sh, так и к usb_autorun .sh

b) вместо этого попробуйте эту строку и используйте #! / bin / sh как для autorun.sh, так и для usb_autorun.sh:

DIR=$( readlink -f "$( dirname "$0" )")

Примечание: это решение немного небезопасно (любой может запустить что-нибудь в autorun.sh и запустить его), но на локальном уровне я считаю, что это безвредно. Тем не менее, я бы использовал другое имя вместо «autorun.sh», например «install_deb.sh» - просто чтобы избежать любых вредоносных скриптов.

1
ответ дан 10 August 2018 в 06:47

Я думаю, что ваша проблема в этой строке:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

BASH_SOURCE - «плохая замена» sh.

С другой стороны, я нашел это:

http://www.reactivation.net/writing_udev_rules.html#external-run

udev не запускает эти программы ни на одном активном терминале, и он не выполняет их в контексте оболочки. Убедитесь, что ваша программа помечена как исполняемая, если это сценарий оболочки, убедитесь, что она запускается с подходящего шебанга (например, #! / Bin / sh), и не ожидайте появления какого-либо стандартного вывода на вашем терминале.

Таким образом, в основном проблемы могут быть:

a) Вы не используете шебанг для usb_autorun.sh, и вам нужно добавить #!/bin/bash как к autorun.sh, так и к usb_autorun .sh

b) вместо этого попробуйте эту строку и используйте #! / bin / sh как для autorun.sh, так и для usb_autorun.sh:

DIR=$( readlink -f "$( dirname "$0" )")

Примечание: это решение немного небезопасно (любой может запустить что-нибудь в autorun.sh и запустить его), но на локальном уровне я считаю, что это безвредно. Тем не менее, я бы использовал другое имя вместо «autorun.sh», например «install_deb.sh» - просто чтобы избежать любых вредоносных скриптов.

1
ответ дан 15 August 2018 в 18:41
  • 1
    Большое спасибо! Ты был прав! Теперь все работает хорошо! Для вредоносного ПО вы правы, я переименую свой autorun.sh. Спасибо Медижик! Мне также пришлось добавить & quot; экспортировать PATH & quot; раньше инструкция dpkg для этого работала но теперь все нормально! – Korigan 6 July 2012 в 17:51
  • 2
    – Korigan 6 July 2012 в 18:02

Другие вопросы по тегам:

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