perl - পার্ল থেকে লোকেল সেটিং সতর্কীকরণ কিভাবে ঠিক করবেন?




locale (20)

শুধুমাত্র MacOS এবং Mac OS X ব্যবহারকারীদের জন্য

Git ব্যবহার করার সময় আমি একই সতর্কতা পেয়েছিলাম

এই সতর্কতাটি সমাধান করতে Set locale environment variable on startup বিকল্পে Set locale environment variable on startup আনচেক Set locale environment variable on startup এবং আপনার টার্মিনালটি পুনরায় চালু করুন। স্ক্রিন শট নিচে আমার টার্মিনাল সেটিংস প্রতিনিধিত্ব করে।

আমি perl রান যখন, আমি সতর্কতা পেতে:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

আমি কিভাবে এটা ঠিক করব?


.Bash_profile অনুপস্থিত লোকেল যোগ করুন

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

তারপর আপনার .bash_profile উত্স

source ~/.bash_profile

Zsh ohmyzsh দিয়ে আমি এই যোগ। .zshrc :

 # You may need to manually set your language environment
 LANGUAGE=en_US.UTF-8
 LANG=en_US.UTF-8
 LC_CTYPE=en_US.UTF-8
 LC_ALL=en_US.UTF-8

লাইন export LANG=en_US.UTF-8 মুছে ফেলার মাধ্যমে

একটি নতুন ট্যাব পুনরায় খোলা এবং SSHed, আমার জন্য কাজ :)


অনেক খোঁজার পরে ডেবিয়ান এই কৌশলটি করেছিল।

প্রথম:

sudo apt-get purge locales

তারপর:

sudo aptitude install locales

এবং বিখ্যাত:

sudo dpkg-reconfigure locales

এটি লোকেলগুলির সিস্টেমকে ছিনতাই করে, তারপর লোকেদের পুনরায় লোকেশন করে এবং 2.19 থেকে 2.13 পর্যন্ত libc6 ডাউনগ্রেড করে যা সমস্যা। তারপর আবার লোকেশন কনফিগার করে।


আপনার OS en_US.UTF-8 সম্পর্কে জানা নেই।

আপনি একটি নির্দিষ্ট প্ল্যাটফর্ম উল্লেখ না, কিন্তু আমি আপনার সমস্যা পুনরুত্পাদন করতে পারেন:

% uname -a
OSF1 hunter2 V5.1 2650 alpha
% perl -e exit
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

আমার অনুমান আপনি একটি নতুন ডেস্কটপ মেশিন থেকে এই পুরানো হোস্ট সংযোগ করার জন্য ssh ব্যবহার করা হয়। এটি /etc/ssh/sshd_config এর জন্য সাধারণ

AcceptEnv LANG LC_*

যা ক্লায়েন্টদের নতুন সেশনে ঐ পরিবেশ ভেরিয়েবলগুলির মানগুলি প্রচার করতে দেয়।

আপনি যদি পূর্ণ-আপ লোকেলের প্রয়োজন না করে তবে সতর্কতাটি কীভাবে এটি ছড়িয়ে দিতে পারে সে সম্পর্কে একটি ইঙ্গিত দেয়:

% env LANG=C perl -e exit
%

বা ব্যাশ সঙ্গে:

$ LANG=C perl -e exit
$ 

একটি স্থায়ী ফিক্স জন্য, এক নির্বাচন করুন

  1. পুরোনো হোস্টে, আপনার শেলের প্রারম্ভিকরণ ফাইলের মধ্যে LANG পরিবেশের পরিবর্তনশীল সেট করুন।
  2. আপনার পরিবেশটি ক্লায়েন্ট সাইডে সংশোধন করুন, উদাহরণস্বরূপ , ssh hunter2 পরিবর্তে, LANG=C ssh hunter2 কমান্ডটি ব্যবহার LANG=C ssh hunter2
  3. আপনার যদি অ্যাডমিন অধিকার থাকে তবে স্থানীয় /etc/ssh/ssh_config ফাইলে SendEnv LANG LC_* লাইনটি মন্তব্য করে পরিবেশ ভেরিয়েবল পাঠানো থেকে ssh কে বন্ধ করুন। ( এই উত্তরের জন্য ধন্যবাদ। আরো তথ্যের জন্য OpenSSH এর জন্য বাগ 1285 দেখুন।)

আপনার সার্ভার লিনাক্সে সংযোগ করার জন্য আপনি যদি Mac OS X v10.10 (Yosemite) বা উপরে ব্যবহার করেন তবে আপনি এই পদক্ষেপগুলি চেষ্টা করতে পারেন।

  1. আপনার ফাইল / etc / ssh / sshd-config মূল রাখুন

  2. আপনার ~ /। Bash_profile উপর রাখুন

    export LANG="en_US"
    export LC_ALL=$LANG.UTF-8
  3. চালান

    dpkg-reconfigure locales

    এবং "en_US.UTF-8" নির্বাচন করুন


আমার ক্ষেত্রে, debian8.6 দিয়ে, আমাকে সেটিংস পরিবর্তন করতে হয়েছিল:

/etc/ssh/ssh_config #AcceptEnv LANG LC_* জন্য /etc/ssh/ssh_config #AcceptEnv LANG LC_*

এবং sshd_config #SendEnv LANG LC_*

তারপর এসএসএস সেবা পুনরায় আরম্ভ করুন।

শেষ পর্যন্ত, করেনি

locale-gen en_US.UTF-8 এবং dpkg-reconfigure locales


আমার ক্ষেত্রে, এই আউটপুট ছিল:

LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "ro_RO.UTF-8",
LC_ADDRESS = "ro_RO.UTF-8",
....

সমাধান ছিল:

sudo locale-gen ro_RO.UTF-8

আমার জন্য, Ubuntu 16.04 (জেনেियल জেরুস) নিম্নলিখিত কাজ করেছে:

[email protected]:~#locale-gen en_GB.UTF-8
[email protected]:~#localectl set-locale LANG=en_GB.UTF-8,LC_ALL=en_GB.UTF-8

তারপর পুনরায় বুট করুন ...


আমি এখন এই ব্যবহার করছি:

$ cat /etc/environment
...
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

তারপর এসএসএইচ অধিবেশন লগ আউট এবং আবার লগ ইন করুন।

পুরানো উত্তর:

শুধু এই আমাকে সাহায্য করেছে:

$ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

$ sudo su

# export LANGUAGE=en_US.UTF-8
# export LANG=en_US.UTF-8
# export LC_ALL=en_US.UTF-8

# locale-gen en_US.UTF-8
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

# dpkg-reconfigure locales
Generating locales...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
Generation complete.

# exit

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

এখানে Mac OS Lion (10.7) বা সিগুইন (উইন্ডোজ 10) এ কীভাবে এটি সমাধান করতে হয়:

হোস্ট মেশিনে আপনার bashrc বা bash_profile এ নিম্নোক্ত লাইন যোগ করুন:

# Setting for the new UTF-8 terminal support in Lion
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

আপনি zsh ব্যবহার করছেন, zshrc সম্পাদনা করুন:

# Setting for the new UTF-8 terminal support in Lion
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8

এটা উবুন্টুতে সহজ সমাধান। আপনাকে লোকেলগুলি স্ক্র্যাচ থেকে জেনারেট করতে হবে, কমান্ড লাইন থেকে নিম্নলিখিত কমান্ডগুলি চালানো:

sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales

এই লোকেল তৈরি করা উচিত এবং তারপর তাদের পুনরায় কনফিগার করা উচিত।


এটি সাধারণত আপনার লিনাক্স বাক্সে লোকেলগুলি সঠিকভাবে সেটআপ করে না।

ডেবিয়ান বা উবুন্টুতে, এর অর্থ আপনাকে করতে হবে

$ sudo locale-gen
$ sudo dpkg-reconfigure locales

এছাড়াও দেখুন মানুষ লোকাল জেন


গৃহীত উত্তর অনুসরণ করে:

LANG = সি ssh hunter2।

LC_ALL = সি ssh hunter2

ক্লায়েন্ট পাশে আমার জন্য কৌতুক করেনি।



সমস্ত পূর্ববর্তী উত্তর ভুল। বার্তা পরিষ্কার - লোকেশন অনুপস্থিত। সমাধান উপযুক্ত লোকেল যোগ করা হয়। আপনি /etc/locale.gen ফাইল সম্পাদনা করে এটি করেন, অনুপস্থিত হিসাবে রিপোর্ট করা লোকেলের সামনে # চিহ্ন সরাতে এবং তারপরে কমান্ডটি ইস্যু করুন:

$ sudo locale-gen

এটি আসলে /etc/locale.gen এ উল্লিখিত লোকেলগুলি তৈরি করবে এবং সেইজন্য বার্তাটি দেখানো হবে না।


/etc/environment এবং রিবুট করতে LC_ALL="en_GB.utf8" যোগ করুন। এখানেই শেষ.


/etc/environment নিম্নলিখিত যোগ করা ডেবিয়ান এবং উবুন্টুতে আমার জন্য সমস্যা সংশোধন করেছে (অবশ্যই, আপনি যে লোকেলটি ব্যবহার করতে চান তা মিলতে সংশোধন করুন):

LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_TYPE=en_US.UTF-8

~/.bashrc , ~/.bash_profile , /etc/environment এ সঠিক লোকেল যুক্ত করা এবং সমস্যাটি সমাধান করবে, তবে এটি সুপারিশ করা হয় না কারণ এটি /etc/default/locale থেকে সেটিংসকে ওভাররাইড করে, যা বিভ্রান্তিকর সেরা এবং সবচেয়ে খারাপ সময়ে ধারাবাহিকভাবে প্রয়োগ করা হয় না Loces হতে পারে।

পরিবর্তে, একটি সরাসরি /etc/default/locale সম্পাদনা করা উচিত, যা এরকম কিছু দেখতে পারে:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US

পরবর্তী সময় লগ ইন করলে পরিবর্তনটি কার্যকর হবে। আপনি /etc/default/locale মতো সোসেসিং করে একটি বিদ্যমান শেলের মধ্যে নতুন লোকেল পেতে পারেন:

$ . /etc/default/locale

perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory

সমাধান:

এটি চেষ্টা করুন ( uk_UA.UTF-8 আমার বর্তমান লোকেল। আপনার লোকেল লিখুন, উদাহরণস্বরূপ en_US.UTF-8 !)

sudo locale-gen uk_UA.UTF-8

এবং এই.

sudo dpkg-reconfigure locales