मुझे अपने मैक पर पैथ वेरिएबल कैसे सेट करना चाहिए ताकि होमब्रे-इंस्टाल्ड टूल्स मिलें?


86

होमब्रे को एक नए मैक पर स्थापित करने की कोशिश कर रहा हूं (पिछले मैक पर मैं स्रोत से पैकेज स्थापित करूंगा)।

पहला पैकेज जिसे मैंने स्थापित करने की कोशिश की थी वह था Git:

$ brew install git

स्थापना ठीक है, लेकिन which gitअभी भी दिखाता है /usr/bin/gitकि शेर (मुझे लगता है?) के साथ आया था । और उस में एक /usr/local/bin/gitभी स्थापित नहीं था।

$ echo $PATH
/Users/meltemi/.rvm/gems/ruby-1.9.2-p290@rails31/bin:/Users/meltemi/.rvm/gems/ruby-1.9.2-p290@global/bin:/Users/meltemi/.rvm/rubies/ruby-1.9.2-p290/bin:/Users/michael/.rvm/bin:/usr/local/mysql/bin:/opt/subversion/bin:/Developer/Additions/checker/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

जैसा कि आप /usr/binपहले /usr/local/binमें चूक देख सकते हैं$PATH

तो, मैं उलझन में हूँ! मैंने सोचा कि HomeBrew (और कुछ रचनाकारों के बारे में डींग मारने के लिए) की बात यह थी कि आपको $PATHचर को गड़बड़ाने की ज़रूरत नहीं है !

तो मैंने क्या गलत किया?


क्या आपने पहले अपने रास्ते में गड़बड़ी की और शायद उन्हें गलत क्रम में रखा? यह भी सुनिश्चित नहीं है कि यह एक "डींग मारने वाला बिंदु" फॉर्म होमब्रे है ... यह एक मार्ग की अवधारणा को पसंद नहीं करता है या इसे संशोधित करना एक जटिल बात है जिसमें विशेष अनुमतियों या कुछ के साथ आपके सिस्टम में 10 अलग-अलग बिंदुओं को संलेखन और छिड़कना शामिल है .. ..
prodigitalson

1
पथ, वह हिस्सा जो आरवीएम से संबंधित नहीं है, मानक मुद्दा होना चाहिए। और नहीं, मुझे रास्ता बदलने की शिकायत नहीं है। यह सिर्फ इतना है कि वे इस दावे को दोहराते हैं If you choose /usr/local, everything 'just works!'कि मुझे आश्चर्य है कि मुझे क्या याद आ रहा है ... क्योंकि यह "सिर्फ काम" नहीं करता है।
मुल्तेमी

जवाबों:


78

मुझे यह संबंधित पोस्ट बहुत मददगार लगी। $PATHचर को बदलने के बजाय , यह सिर्फ आपकी /etc/pathsफ़ाइल को संपादित करता है।

Homebrew मुझे अपने PATH में संशोधन करना चाहता है; कोई सुराग नहीं

जैसे ही मैंने निर्देशों का पालन किया और /usr/local/binऊपर रखा /usr/bin, मेरे मुद्दों को हल कर दिया गया।

  1. OS X पर, टर्मिनल खोलें
  2. कमांड टाइप करें: sudo vi /etc/paths
  3. यदि आपसे पूछा जाए तो अपना पासवर्ड दर्ज करें
  4. आपको रास्तों की एक सूची दिखाई देगी। ताकि उन्हें संपादित /usr/local/binपथ से ऊपर दर्ज किया गया है /usr/binपथ
  5. *सेव करके छोड़ो
  6. टर्मिनल को पुनरारंभ करें

यहाँ है कि मेरा ऐसा करने के बाद क्या दिखता है:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

* एक बृहदान्त्र ( :) को बचाने और छोड़ने के लिए , फिर टाइप करें wq(उसी समय लिखने और छोड़ने के लिए), उसके बाद Enter

आप /etc/pathsफ़ाइल को एक आलेखीय पाठ संपादक में भी खोल सकते हैं और इसे इस तरह संपादित कर सकते हैं।

वहां पर अपने जवाब के लिए स्टैक ओवरफ्लो में सेंध लगाने का श्रेय ।


Vi डिमविट्स (मेरे जैसे) के लिए d का उपयोग लाइन और p को काटने के लिए करते हैं जब कमांड मोड में होता है
Gerard

10
मैं इसके साथ सावधानी बरतता हूँ - बेहतर जवाब यह है कि .profile / .bash_profile में पथ में संशोधन करें और इसे वहां निर्यात करें। / Etc / पथ बदलकर, आप (संभावित) सभी सिस्टम प्रक्रियाओं को प्रभावित करते हैं; PATH को .profile / .bash_profile में बदलने से आपके खाते और कमांड शेल (जो कि विकास के लिए मेरे मामले में है, जो मैं चाहता हूं) के माध्यम से आपके आदेश दोनों को प्राथमिकता देता है। यदि आप वास्तव में सतर्क हैं, तो आप नीचे दिए गए उत्तर में @Aristotle Pagaltzis क्या कर सकते हैं।
ढोल

1
क्या कुछ बिंदु है जब आप विचार करने के लिए रुकते हैं कि कुछ बहुत गलत है कि OSX के लिए डिज़ाइन किए गए पैकेज प्रबंधक से एक साधारण इंस्टॉल आउट-ऑफ-द-बॉक्स विफल हो रहा है? अपना रास्ता बदलना एक संभावित रूप से "फिक्स" और बीटीडब्ल्यू को तोड़ना है, जिस कारण से मैं इस प्रस्तावित फिक्स पर ठोकर खाई है कि काढ़ा मेरे पथ को अपडेट करने में विफल रहता है, लेकिन "पथ" पहले से ही सही क्रम में है। एक और मृत-अंत। पागलपन को रोकें, मूल कारण को ठीक करें।
रिक ओ'शिअ

इसके अलावा, वहाँ path_helperऔर है /etc/paths.d
साइमन राइट

29

यह उत्तर अप्रचलित है। पसंदीदा होमब्रेव PATHऑर्डरिंग के रूप में समझाया जाता था, लेकिन यह अब सच नहीं है। हालाँकि, दृष्टिकोण अधिक सामान्यतः लागू होता है, इसलिए ब्याज के लिए, मैं इसे छोड़ रहा हूं।


आपको नहीं करना चाहिए

Homebrew जानबूझकर रहता है /usr/local/bin के बाद /usr/bin अधिकतम संगतता के लिए रास्ते में। PATHसंपादन द्वारा इन निर्देशिकाओं के क्रम को उलटने का /etc/pathsमतलब होगा कि सिस्टम पर कहीं भी सभी प्रोग्राम, चाहे वे कैसे भी शुरू किए गए हों, उन्हें कमांड का होमब्रे संस्करण मिलेगा। लेकिन कुछ विशेष रूप से Apple के संस्करण की उम्मीद कर सकते हैं, या बस एक नए संस्करण का उपयोग करने में सक्षम नहीं होंगे, आदि।

इस सिद्धांत को कैसे संरक्षित करें और अभी भी होमब्रेव-स्थापित संस्करण प्राप्त करें git? जैसा कि कहा जाता है, सभी समस्याओं को अप्रत्यक्ष की एक परत के साथ हल किया जा सकता है (अप्रत्यक्ष की कई परतों को छोड़कर)। - या इस मामले में, जैसा कि यह पता चला है, दो परतें।

विशेष रूप से, यह मेरी यूनिक्स की आदतों का हिस्सा ~/binरहा है, जिसमें एक निर्देशिका है जिसे मैंने अपनी शुरुआत में रखा था PATH। यह मेरे पहले बिट्स में से एक है .bashrc:

[[ :$PATH: == *:$HOME/bin:* ]] || PATH=$HOME/bin:$PATH

यह जाँचता है कि क्या PATHशामिल है ~/bin, और यदि नहीं, तो इसे प्रस्तुत करता है। उस जगह के साथ, फिर चुनिंदा रूप से सिर्फ होमब्रेव-प्रबंधित gitसिस्टम संस्करण ( प्रत्येक होमब्रेव-बाइनरी के बजाय ) पर वरीयता लेते हैं , और सिर्फ आपके शेल सत्रों के लिए ( सभी कार्यक्रमों के बजाय जीयूआई कार्यक्रमों सहित, कहीं से भी शुरू किया जाता है), इसे सरल करने के रूप में सरल:

ln -s /usr/local/bin/git ~/bin/git

आप सीधे सहानुभूति रख सकते/usr/local/Cellar/git/1.8.2.1/bin/git हैं, लेकिन फिर आपको हर बार जब आपने brew upgrade git(प्रत्यक्ष या अप्रत्यक्ष रूप से) अपना सीमलिंक ठीक करना होगा । Homebrew के निश्चित-स्थान सिमलिंक से सहानुभूति रखने से, आपको इसके बारे में चिंता करने की आवश्यकता नहीं है।

तो आप अपने लिए एक निर्देशिका जोड़ते हैं $HOMEताकि आप इसे जोड़ PATHसकें, ताकि आप एक सिम्लिंक के लिए सहानुभूति कर सकें, और जो आपकी समस्या को ठीक करता है और डॉ। सिस पर एक मुस्कान डालता है। Yo dawg मुझे आपसे सहानुभूति पसंद है इसलिए हमने आपके लिए एक मार्ग रखा है PATHताकि आप सहानुभूति रखते हुए आप सहानुभूति रख सकें।


1
बहुत बढ़िया, यह वही जवाब है जो मैं सोच रहा था!
mydogisbox

यह सही उत्तर की तरह है, लेकिन मैं चलाने के लिए सटीक आदेशों का पता नहीं लगा सकता। सिमिलिंक बनाते समय मुझे "फाइल मौजूद" रहती है।
रयान

आपकी सहायता के लिए पर्याप्त विवरण नहीं, क्षमा करें।
अरस्तू पगलतज़िस

1
@ रेयान सुनिश्चित करें कि आपके पास lnकमांड का अधिकार है । पहला रास्ता लक्ष्य है, और दूसरा
सिम्लिंक है

1
यह सच है कि, एल कैप पर, मैं अप्रचलित उत्तर के साथ विफल रहा और (ZSH का उपयोग करता हूं) के आदेश को संपादित करने में सफल रहा। zshrcexport PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
Urs

17

आपने कुछ भी गलत नहीं किया है, लेकिन यह बहुत स्पष्ट प्रतीत होता है कि यदि आप इस विशिष्ट समस्या को दूर करने /usr/local/binसे पहले अपने रास्ते में थे /usr/bin। सबसे आसान तय है कि ऐसा करना और कुछ करना चाहिए

export PATH=/usr/local/bin:$PATH

~/.bash_profileहोमबॉव स्थापित करता है कि सब कुछ में अपने पहले पाया जाता है। यही तरीका है कि मैंने इसे अपने मैक पर स्थापित किया है, और इसने मेरे लिए लंबे समय तक काम किया है, हालांकि, वाईएमएमवी।

ऐसा प्रतीत होता है कि उनका मानना ​​है कि यह बाद में/usr/local/bin होने के साथ काम करेगा , इसलिए हो सकता है कि मैंने अपना खुद का काम किया हो , मैं देख सकता हूं कि उनके दस्तावेज कहां हैं: /usr/bin$PATH

ध्यान दें कि आपको /usr/local/binबाद में रखना चाहिए /usr/bin क्योंकि कुछ प्रोग्रामों को सिस्टम का संस्करण प्राप्त करने की उम्मीद होगी, उदाहरण के लिए, रूबी, और ब्रेक अगर उन्हें नया होमब्रे संस्करण मिलता है।

विकी और काढ़ा चिकित्सक के बीच विसंगति से # 10738 । ध्यान दें कि यह दस्तावेज़ यह कहता है, "FAQ (उपरोक्त उद्धरण) GUI ऐप्स के लिए PATH सेटिंग को संदर्भित करता है। डॉक्टर ( आपके PATH में /usr/local/binआगे रखने की सलाह /usr/bin) CLI ऐप्स के लिए PATH सेटिंग को संदर्भित करता है।"


1
क्या यह /usr/local/binमेरे में दो को नहीं छोड़ेगा $PATH? मुझे ऐसा विश्वास है। मुझे आश्चर्य है कि क्या हमें इसके बजाय डिफ़ॉल्ट पथ के आदेश को संपादित करना चाहिए /etc/pathsया सामग्री में /etc/paths.d? लेकिन यह हर उपयोगकर्ता को प्रभावित करेगा ... शायद बुरी बात नहीं है। वैसे भी, बस यह देखना चाहता था कि अन्य लोगों ने इस पर कैसे संपर्क किया है।
मुल्तेमी

@Meltemi, इस जवाब की भावना सही है: अपने अद्यतन PATH(अपनी पसंद के ढंग से) के लिए /usr/local/binपूवर् म होना /usr/bin। मैं व्यक्तिगत रूप से मेरे अद्यतन PATHमें .bash_profileके रूप में यहाँ का सुझाव दिया।

@ निक- दिलचस्प जानकारी ... और केवल मामलों को भ्रमित करने के लिए कार्य करता है (कम से कम मेरे मामलों में) ... होमब्रे डॉक्स का मतलब यह लगता है कि टर्मिनल कमांड को एप्स को चुनना चाहिए, /usr/local/binभले ही यह मार्ग /usr/binमें ट्रेल्स हो। लेकिन GUI ऐप्स को विशेष कोडिंग की आवश्यकता है? IT को सभी ऐप्स, GUI या नहीं, $ PATH वैरिएबल को एडजस्ट करने की जरूरत होगी। तो, मैं (या Homebrew रचनाकारों) क्या याद आ रही है?
मुल्तेमी

मुझे लगता है कि Homebrew मानता है कि आप Apple की आपूर्ति को पहले इस्तेमाल करना चाहते हैं - git एक बदलाव है, जब तक कि Lion की आपूर्ति Apple द्वारा नहीं कर दी जाती है, इस प्रकार Homebrew को इसकी आवश्यकता होती है - अब आप Apple का उपयोग कर सकते हैं,
Mark

मैं इस पर मार्क से सहमत हूं। MacPorts और फिंक के साथ, यह धारणा थी कि Apple द्वारा दिए गए कुछ भी बॉक्स से पूरी तरह से अलग वातावरण प्रदान किया जाए। Homebrew ने यह कदम उठाया कि Apple का सामान बहुत अच्छा है और इसका उपयोग करने से बचने के लिए (क्यों gcc का एक और संस्करण डाउनलोड करें जब यह संभव होगा?)।
निक क्लाऊर

6

मैं jthomas के जवाब से असहमत हूं। अपने / etc / पथ फ़ाइल को संपादित करने से सभी कार्यक्रमों के लिए लोड पथ बदल जाएंगे। यह खतरनाक हो सकता है अगर एक सिस्टम एप्लिकेशन एक बाइनरी के विशिष्ट संस्करण को खोजने की उम्मीद कर रहा है लेकिन एक अलग संस्करण पाता है क्योंकि आपने अपनी पथ फ़ाइल को संपादित किया है। इसके बजाय, अपने पथ चर को ~ / .bashrc (या ~ / .bash_profile) में बदलें। तब आपका लोड पथ केवल टर्मिनल के अंदर बदल जाएगा:

# पैथ
एक्सपोर्ट PATH = / path / to / homebrew / app / bin: $ PATH में होमब्रेव ऐप जोड़ें

फिर बैश लोड करें या source ~/.bashrc, और आप जाने के लिए अच्छा है। चूंकि होमब्रेव पथ किसी और चीज से पहले आता है, इसलिए आप उस संस्करण को लोड करेंगे जो आपने होमब्रे के साथ डाउनलोड किया था।


OS X में, .bashrcडिफ़ॉल्ट रूप से लोड नहीं किया गया है। क्या आप इसे मैन्युअल रूप से स्रोत करते हैं?
slhck

अरे हां। मैं उबंटू से ओएस एक्स से आया था और इसका उपयोग .bashrcमैंने अपने स्रोत से किया था .bash_profile। यदि आप आरसी फाइल नहीं बनाना चाहते हैं, तो आप कमांड को अपने साथ जोड़ सकते हैं .bash_profile
नाथन

5

जैसा कि मैं इसे समझता हूं, उस टकराव brewमें कुछ भी नहीं डालता है /usr/local/bin(जैसा नाम वैसा ही है) एक Apple निष्पादन योग्य वितरित करता है। इसलिए, /usr/local/binपहले रास्ते में होना /binऔर /usr/binकोई मुद्दा नहीं होना चाहिए, क्योंकि कोई नाम टकराव नहीं होना चाहिए। * हालांकि, नीचे दिए गए तरीके से और (MacPorts) जैसे अन्य पैकेज एग्रीगेटर के साथ lsऔर tar, और मुद्दों का उपयोग करके देखें।finkport

Brew दो चीजों में से एक है जो मुझे पता है कि नाम टकरावों को प्रबंधित करने में मदद करता है:

  1. Brewतहखाने में अनलकी केज छोड़ देता है। सामान स्थापित करने के लिए, काढ़ा उन उपकरणों को छोड़ देता है जहां वे हैं, और उन उपकरणों में प्रतीकात्मक लिंक बनाते हैं /usr/local/bin। जिन उपकरणों के brewसाथ नाम का टकराव नहीं होता है, वे प्रतीकात्मक लिंक नहीं बनाते हैं।
  2. कई नहीं करता है, तो मानक उपकरण है, जिसमें भी कर रहे हैं के सभी /binऔर /usr/bin, brewमें लिंक उपसर्ग /usr/local/binएक "जी" के साथ है, तो उदाहरण के लिए, एक प्रदर्शन करने के लिए lsएक काढ़ा संस्करण, उपयोग के साथ gls बस एक ls -lमें करते हैं /usr/local/binऔर लिंक की गई फ़ाइलों की तलाश करते हैं - वे वही हैं जिन्हें brewवहां रखा गया है। नोट: brewइंस्टॉल किए गए टूल जिन्हें उनके वास्तविक नामों से एक्सेस किया जाना चाहिए, वे इसमें पाए जाते हैं /usr/local/Cellar/coreutils/8.21/libexec/gnubin

मैं /usr/local/binअपने रास्ते में दो कारणों से नहीं लगाता - वे कारण मेरे उत्तर के नीचे हैं।

अपने सिस्टम में नाम टकरावों का आकलन करने के लिए, brew doctorइस अनुभाग का उपयोग करें और देखें - यहाँ brew doctorब्याज की आउटपुट है:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

    ctags
    emacs
    emacsclient
    etags
    ex
    git
    git-cvsserver
    git-receive-pack
    git-shell
    git-upload-archive
    git-upload-pack
    rview
    rvim
    view
    vim
    vimdiff
    vimtutor
    xxd

Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
    echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

कारण जो मैंने brewपहले नहीं रखा है, वास्तव में, बिल्कुल नहीं, ऐसा इसलिए है क्योंकि brewस्थापित lsऔर tarकमांड फ़ाइल सिस्टम ACL को ठीक से नहीं संभालते हैं, वास्तव में, पिछली बार जब मैंने जाँच की थी (जो कि पिछले सप्ताह), वे थे ' t सब पर संभाला । यह एक बड़ी समस्या है, और इसे पूरी तरह से बचने के लिए, के साथ जुड़े manपेज विन्यास मुद्दा यह है कि स्थापित करने के साथ-साथ टैग कर देता है $PATHठीक है, मुझे यकीन है कि मैं डाल कर OSXसंबंधित उपकरणों, विशेष रूप से उन में पाया /binऔर /usr/bin, पहले।

एक और कारण जो मैं /usr/local/binअपने रास्ते पर बिल्कुल भी नहीं डालता क्योंकि brewवह दूसरों के साथ अच्छा नहीं खेलता है, finkऔर port(MacPorts) के पास वर्तमान में अधिक समर्थित पैकेज हैं जो मुझे अभी चाहिए । उदाहरण के लिए, मैं प्राप्त कर सकते हैं gnome-terminalके साथ finkहै, लेकिन यह एक बड़ा एक सूत्र का निर्माण करने के प्रयास के साथ ही हो सकता है और क्या करना होगा brew। तो, मैं रखने /swऔर /optमेरी खोज में $PATH(के लिए finkऔर port, क्रमशः) और संदर्भ चीजें मैं से की जरूरत /usr/local/binभी शामिल है, gnatया तो वर्तनी, या मैं का उपयोग bash aliasके लिए, या मैं एक स्रोत setupएक पूरी तरह से अलग वातावरण के लिए फ़ाइल जब मैं लिख Adaकोड।

बात यह है, यह वास्तव में उस पर निर्भर करता है जो आप चाहते हैं और उस समय की आवश्यकता है।

यहाँ एसीएल समस्या का एक उदाहरण है जिसका मैंने ऊपर उल्लेख किया है।

मानक OSXउपकरणों के साथ:

$ /bin/ls -le /var/root | head -7
total 24
drwx------+  3 root  wheel  102 May 28  2013 Desktop
 0: group:everyone deny delete
 1: user:_spotlight inherited allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit
drwx------+  6 root  wheel  204 Sep 19 14:22 Documents
 0: group:everyone deny delete
 1: user:_spotlight inherited allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit

और brewस्थापित उपकरणों के साथ:

$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.

तथा

$ /usr/local/bin/gls --help | grep -i acl

आपको इसी तरह के परिणाम मिलेंगे tarऔर मुझे घर में कई अन्य brewउपकरण नहीं मालूम होंगे , लेकिन जो किसी ACLसमस्या के कारण सड़क से 6 महीने नीचे कुछ तोड़ सकते हैं !


उपयोगी जानकारी के लिए धन्यवाद। एक नोट के रूप में, हालांकि, मेरे सिस्टम पर अभी, मेरे पास दोनों / usr / bin और / usr / local / bin (जैसे, git, जिसे आप सहानुभूति है, जैसा कि आप ध्यान दें) में एक ही नाम के साथ निष्पादन योग्य हैं। इसलिए, वे डिफ़ॉल्ट रूप से विरोध करते हैं। मैं अपने शेल कार्य के लिए सिस्टम टूल्स को ओवरराइड करना भी चाहता हूं।
२६:१४

4

यहाँ अच्छे उत्तरों की एक पूरी श्रृंखला है। ये मेरा:

echo >> ~/.bashrc alias my="PATH=/usr/local/bin:$PATH"
. ~/.bashrc
my git --version # Brew's fancy git
git --version # Apple's old crusty git

आपको प्रत्येक प्रोग्राम के लिए एक अलग उपनाम बनाने के लिए बचाता है, और एक बोनस के रूप में यह डिफ़ॉल्ट प्रतिष्ठानों को छोड़ देता है जो आपके लिए आवश्यक है।

यदि आप ZSH का उपयोग कर रहे हैं तो बस वही काम करता है; बस बाहर स्विच bashrcके लिए zshrc। आप टाइप करने के myलिए _या यहां तक @कि बचत करने के लिए स्विच कर सकते हैं ।


2

पैथ के साथ खिलवाड़ करने के बजाय (जो मेरे इतिहास में महीनों बाद मुझे जलाने के लिए वापस आता है) मैंने अपने zsh कस्टम एलियास डायरेक्टरी (~ / .zshrc / custom / git_alias.zsh) में git के लिए एक उपनाम जोड़ा।

alias git='/usr/local/bin/git'


0

मैं उन चरों के लिए परिवर्तन को सीमित करना पसंद करता हूं $PATHजो उन उपयोगकर्ताओं को पसंद करते हैं जो वास्तव में परिवर्तन चाहते हैं। इस प्रकार, मैं बस निम्नलिखित जोड़ देता हूं ~/.bashrc:

export PATH="$(brew --prefix)/bin:$PATH"

0

आप एक टर्मिनल में निम्न आदेश जारी कर सकते हैं, यह आपके होम के पीएटीएच में बीहट होम डायरेक्टरी + / बिन को जोड़ देगा जो आपके SHELL "आरसी" इनिट फ़ाइल (bash, zsh, csh)

echo "export PATH="'$PATH:$(brew --prefix)/bin' >> ~/.$(basename $SHELL)rc

का आनंद लें !

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.