मैं एक पुराने डेबियन 6 मशीन पर काम कर रहा हूं। यह पर्ल का एक पुराना संस्करण था और यह "टेस्ट :: अधिक संस्करण 0.96 आवश्यक" के साथ कुछ स्वयं परीक्षणों को विफल करने का कारण बन रहा था । मैंने नवीनतम पर्ल 5.22.1 डाउनलोड किया, इसे स्रोतों से बनाया और इसे रखा /opt/perl/
।
मेरे पास एक स्क्रिप्ट है जो पर्ल का उपयोग करती है, और इसकी प्रस्तावना है:
#!/usr/bin/env perl
हालाँकि, जब मैं स्क्रिप्ट निष्पादित करता हूं, तो यह नए पर्ल के बजाय पुराने पर्ल का उपयोग कर रहा है। इस तरह की उम्मीद है क्योंकि /usr/bin/env
पर्ल (या मुझे विश्वास नहीं है कि यह करता है) के बारे में नहीं जानता है।
मैं कैसे बताऊं env
कि पर्ल एक में है /opt/perl/
या नहीं /usr/bin/
? यदि संभव हो, तो मैं इसे मशीन कॉन्फ़िगरेशन (यानी, सभी पर लागू होता है) होना चाहता हूं, और उपयोगकर्ता कॉन्फ़िगरेशन (यानी, मेरे लिए लागू होता है) नहीं।
यहाँ के लिए मैनपेज है env(1)
। इसके लिए बहुत कुछ नहीं है, और मुझे विश्वास नहीं है कि यह एक दुभाषिया के लिए एक कार्यक्रम के नए संस्करण को पंजीकृत करने पर चर्चा करता है। env(7)
(विविध) या env(8)
(प्रशासन) के लिए कोई मैन पेज नहीं हैं ।
ENV(1) User Commands ENV(1)
NAME
env - run a program in a modified environment
SYNOPSIS
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
DESCRIPTION
Set each NAME to VALUE in the environment and run COMMAND.
-i, --ignore-environment
start with an empty environment
-0, --null
end each output line with 0 byte rather than newline
-u, --unset=NAME
remove variable from the environment
--help display this help and exit
--version
output version information and exit
A mere - implies -i. If no COMMAND, print the resulting environment.
AUTHOR
Written by Richard Mlynarik and David MacKenzie.
...