OpenSSL लिंक करने से मना करने वाले होमब्रे


141

मैं पर हूँ: OSX 10.11.6, Homebrew संस्करण 0.9.9m ओपनएसएसएल 0.9.8zg 14 जुलाई 2015

मैं डॉटनेटकोर के साथ और उनके निर्देशों का पालन ​​करके खेलने की कोशिश कर रहा हूं ,

मैंने खुलने के नवीनतम संस्करण को उन्नत / स्थापित किया है:

> brew install openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2h_1.el_capitan.bottle.tar.gz
Already downloaded: /Users/administrator/Library/Caches/Homebrew/openssl-1.0.2h_1.el_capitan.bottle.tar.gz
==> Pouring openssl-1.0.2h_1.el_capitan.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, which means it was not symlinked into /usr/local.

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include

लेकिन जब मैं ओप्सनल लिंक करने का प्रयास करता हूं तो मैं इस लिंकिंग त्रुटि में चलता रहता हूं:

> brew link --force openssl
Warning: Refusing to link: openssl
Linking keg-only OpenSSL means you may end up linking against the insecure,
deprecated system version while using the headers from the Homebrew version.
Instead, pass the full include/library paths to your compiler e.g.:
  -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

संकलक झंडे को शामिल करने का विकल्प मेरे लिए मायने नहीं रखता है, क्योंकि मैं इन पुस्तकालयों का संकलन नहीं कर रहा हूं जो मैं निर्भर हूं।

EDIT डॉटनेटकोर ने उनके निर्देशों को अपडेट किया है:

brew update    
brew install openssl    
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/    
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

3
.NET Core के लिए आपको OpenSSL का एक समर्थित संस्करण चाहिए, जो एक 1.0.1 या 1.0.2 संस्करण होगा। जब से आप 0.9.8 संस्करण की रिपोर्ट कर रहे हैं, तो शायद आपको brew upgrade opensslपहले की आवश्यकता है ?
बार्टनज जूल

2
मैं पहले ही ऐसा कर चुका हूं। मुझे स्पष्ट करना चाहिए था, लेकिन मैंने उन चरणों को प्रश्न में नहीं जोड़ा। लेकिन मैं पहले से ही किया है brew updateऔर brew install openssl। यह समर्थित संस्करण को स्थापित करने का प्रयास कर रहा है।
daviddeath

2
ऐसा लगता है कि Homebrew ने इसे स्पष्ट रूप से अवरुद्ध कर दिया है: github.com/Homebrew/brew/commit/…
बार्टनोज्स

4
और .. मेरे
जुगाड़

2
"... जब मैं लिंक को खोलने की कोशिश करता हूं तो मैं इस लिंकिंग एरर में चलता रहता हूं: .." - यह भी देखें कि मैक OSX के तहत gcc के साथ एक्जीक्यूटेबल का रनटाइम पाथ (-rpath) कैसे सेट करें? । यदि आप ब्रू इसे नहीं जोड़ रहे हैं, तो यह आपको हमेशा सही लाइब्रेरी को लोड करने में मदद कर सकता है।
jww

जवाबों:


63

जैसा कि अन्य उत्तर के अद्यतन से पता चलता है, पुराने खुलने वाले पीएसएल ११० को स्थापित करने का समाधान अब काम नहीं करेगा। अभी-अभी वर्कअराउंड के लिए, इस टिप्पणी को डॉटनेट / cli # 3964 पर देखें

यहाँ कॉपी की गई समस्या का सबसे प्रासंगिक हिस्सा:

मैंने दूसरे विकल्प पर ध्यान दिया, जो पुस्तकालय पर रथ को स्थापित करने के लिए सुझाया गया था। मुझे लगता है कि निम्नलिखित एक बेहतर समाधान है जो केवल इस विशिष्ट पुस्तकालय को प्रभावित करेगा।

sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib

और / या यदि आपके पास NETCore 1.0.1 स्थापित है, तो 1.0.1 के लिए भी यही आदेश है:

sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/System.Security.Cryptography.Native.dylib

वास्तव में, ऑपरेटिंग सिस्टम को हमेशा एसएसबी के होमब्रेव संस्करण का उपयोग करने के लिए कहने के बजाय और संभवतः कुछ को तोड़ने के लिए, हम डॉटनेट को सही लाइब्रेरी खोजने का तरीका बता रहे हैं।

यह भी महत्वपूर्ण है, ऐसा लगता है कि Microsoft इस मुद्दे से अवगत है और दोनों के पास (साथ ही साथ बी को कम करने के लिए कुछ तत्काल योजना है) एक दीर्घकालिक समाधान (डॉटनेट के साथ प्रोबाई बंडलिंग ओपनएसएसएल)।

एक और बात ध्यान दें: /usr/local/opt/openssl/libवह जगह है जहाँ काढ़ा डिफ़ॉल्ट रूप से जुड़ा हुआ है:

13:22 $ ls -l /usr/local/opt/openssl
lrwxr-xr-x  1 ben  admin  26 May 15 14:22 /usr/local/opt/openssl -> ../Cellar/openssl/1.0.2h_1

यदि किसी भी कारण से आप काढ़ा स्थापित करते हैं और इसे एक अलग स्थान पर लिंक करते हैं, तो वह रास्ता वह है जिसे आपको एक रथ के रूप में उपयोग करना चाहिए।

एक बार जब आप System.Security.Cryptography.Native.dylib लाइब्रै के rpath को अपडेट कर लेते हैं, तो आपको अपना इंटरेक्टिव सत्र फिर से शुरू करना होगा (यानी, अपना कंसोल बंद करें और दूसरा शुरू करें)।


मुझे उस पंक्ति को कहां जोड़ना है? मैं सीआई में काम करने के लिए इसे प्राप्त करने की कोशिश कर रहा हूं। मुझे ए /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib (No such file or directory)
मुरथल

@ मरमहल dotnetटूलींग की स्थापना पथ है । यह संभव है कि आपने इसे स्थापित नहीं किया है या आपने या किसी अन्य स्थान पर स्थापित किया है। अगर इसकी स्थापना और आपके हिस्से पर, आप which dotnetइसे खोजने के लिए उपयोग कर सकते हैं ।
बेन कॉलिन्स

ओह, बस एहसास हुआ कि मैं इस लाइन को स्थापित करने से पहले जोड़ रहा हूं dotnet। फिर से प्रयास करेंगे और वापस आ जाएंगे।
मुरथल

3
मेरे लिए काम किया, मेरे मामले में एसडीके एक अलग निर्देशिका में स्थापित किया गया था, इसलिए मुझे पथ बदलना पड़ा।
मुरथल

4
डॉटनैट 1.1.0 के साथ मैं करना था:sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.0/System.Security.Cryptography.Native.OpenSsl.dylib
Bouke

60

इसी से मेरा काम बना है:

brew update
brew install openssl
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/Cellar/openssl/1.0.2j/bin/openssl /usr/local/bin/openssl

इस धागे पर @dorlandode का धन्यवाद https://github.com/Homebrew/brew/pull/597

नायब: मैंने इसे केवल एक अस्थायी फिक्स के रूप में इस्तेमाल किया था जब तक कि मैं खरोंच से ओपन्सल को फिर से स्थापित करने में समय व्यतीत नहीं कर सकता। जैसा कि मुझे याद है कि मैंने एक दिन डिबगिंग का सबसे अच्छा हिस्सा बिताया है और इससे पहले कि मुझे सबसे अच्छा तरीका एहसास हुआ कि मैं एक के बाद एक आवश्यक सीट्स को मैन्युअल रूप से स्थापित करना चाहता था। इसे आज़माने से पहले कृपया @ bouke की टिप्पणी में लिंक पढ़ें।


9
अंतिम लिंक के लिए पूर्ण पथ है /usr/local/bin/openssl?
मोहम्मद हाफिज

यह उत्तर क्यों स्वीकार नहीं किया गया, आपने मेरे जीवन को बचाया। :: अंगूठे ऊपर ::
wukong

2
एक अच्छा कारण है काढ़ा यह करने से इनकार कर रहा है। यह भी देखें: github.com/Homebrew/brew/pull/597
बुके

7
यह समाधान मेरे लिए काम किया है, लेकिन मैं परिवर्तन करना पड़ा 1.0.2jकरने के लिए 1.0.2kक्योंकि संस्करण मतभेद की। इसलिए उपयोगकर्ता सावधान रहें, आपको वर्तमान संस्करण के लिए पथों को समायोजित करने की आवश्यकता हो सकती है
Jeff

मैंने @ जेफ की टिप्पणी को बहुत देर से देखा। यदि आपने भी किया है, तो मेरा मानना ​​है कि ln -s -f /usr/local/Cellar/openssl/1.0.2k/bin/openssl /usr/local/bin/opensslइसे ठीक करता है
शनैपरसन

49

इनमें से किसी भी समाधान ने मेरे लिए OS X El Capitan 10.11.6 पर काम किया। शायद इसलिए कि ओएस एक्स में ओपनसिएल का एक देशी संस्करण है जो मानता है कि यह बेहतर है, और इस तरह, छेड़छाड़ पसंद नहीं है।

इसलिए, मैंने ऊंची सड़क ली और नए सिरे से शुरुआत की ...


मैन्युअल रूप से स्थापित और सिमिलिंक

cd /usr/local/src  
  • यदि आपको "ऐसी कोई फ़ाइल या निर्देशिका नहीं मिल रही है", तो इसे बनाएं:

    cd /usr/local && mkdir src && cd src

डाउनलोड खुलता है:

curl --remote-name https://www.openssl.org/source/openssl-1.0.2h.tar.gz

निकालने और सीडी में:

tar -xzvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h

संकलित करें और स्थापित करें:

./configure darwin64-x86_64-cc --prefix=/usr/local/openssl-1.0.2h shared
make depend
make
make install

अब अपने नए और अपडेट किए गए ओपनसेल में OS X का सिम्लिंक खुलता है:

ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl

टर्मिनल बंद करें, एक नया सत्र खोलें, और OS X सत्यापित करें कि आपका नया खुलता है:

openssl version -a

यदि आप OS X पर .NET कोर को स्थापित करने की कोशिश कर रहे हैं तो आपको इसे डॉकर में लपेट देना चाहिए।
अक्टूबर को mcgwier

6
यह सब करने के बाद: OpenSSL 0.9.8zh 14 जनवरी 2016 को बनाया गया: 15 मई 2016 मंच: darwin64-x86_64-llvm
AsimRazaKhan

5
निम्नलिखित तरीके से एक सिमिलिंक बनाना मेरे लिए काम किया ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl:। अपने टर्मिनल सत्र को पुनरारंभ करने के बाद, which opensslयह सुनिश्चित करने के लिए टाइप करें कि आप /usr/local/bin/opensslअंतर्निहित 1.0 ( ) के बजाय अपडेट किए गए 1.0.2 संस्करण ( ) का उपयोग कर रहे हैं /usr/bin/openssl
ओलिवियर

1
मैंने इन निर्देशों का पालन किया है, लेकिन जब मैं टाइप करता हूं जिसमें ओपनएसएल, मुझे मिलता है (/ ऑप्ट / स्थानीय / बिन / ओपनसेल)। मैं इसे कैसे प्राप्त करूं / usr / स्थानीय / बिन / खुलता है?
क्रिस

2
मैंने इन निर्देशों का पालन किया (चरण-दर-चरण के लिए बहुत बहुत धन्यवाद), और इसने अभी भी 0.9.8 कहा। वैकल्पिक लिंकिंग विधि के लिए ओलिवियर को धन्यवाद।
ओनिकोरोशी

44

बस brew info opensslउस जानकारी को निष्पादित करें और पढ़ें जहां वह कहती है:

यदि आपको इस सॉफ्टवेयर को पहले अपने पैठ चलाने की आवश्यकता है: echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile


3
brew info opensslमेरे लिए वही उपयोगी जानकारी दी। ऊपर सुझाए गए आदेश को चलाना और फिर source ~/.bash_profileएक नया टर्मिनल चलाना या खोलना मेरे लिए हल हो गया।
PanPipes

2
आखिरकार। यह भी मेरे लिए काम किया। ऊपर दिए गए अन्य उत्तर नहीं थे!
user124384

2
याecho 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
B.a

16

यदि आपके मैक को स्थानांतरित करने से होमब्रे टूट जाता है:

मैंने अपने मैक को माइग्रेट किया, और इसने मेरे सभी होमब्रेव इंस्टाल को खोल दिया - ओपनएसएसएल सहित। यह टूट गया gem install, जो कि मैंने पहली बार समस्या को देखा और इसे सुधारने की कोशिश करने लगा।

एक लाख समाधानों के बाद (जब OSX सिएरा - 10.12.5 में माइग्रेट हो रहा है), समाधान तेजी से सामान्य रूप से समाप्त हो रहा है:

brew reinstall ruby
brew reinstall openssl

और एक साल बाद, यह मेरे मैक को स्थानांतरित करने के लिए हुआ, और आपके फिक्स ने मेरे लिए भी काम किया। बहुत बहुत धन्यवाद; मैं अपने नए मैक को पोंछने और नए सिरे से स्थापित करने और सब कुछ फिर से मैन्युअल रूप से सेट करने पर विचार करने के बिंदु पर पहुंच रहा था।
डेविड

@ खुशी है कि मैं आपको कगार पर जाने से रोक सकता हूँ! मैंने लगभग वैसा ही किया।
टोबबॉट

1
उपरोक्त करने से पहले आपको इस फ़ोल्डर को हटाना भी पड़ सकता है। rm -rf /usr/local/opt/openssl
गाल ब्राचा

9

सब कुछ आज़माने के बाद मुझे कुछ भी नहीं मिला और मैंने काम किया, मैंने बस यही कोशिश की:

touch ~/.bash_profile; open ~/.bash_profile

फ़ाइल के अंदर इस लाइन को जोड़ा।

export PATH="$PATH:/usr/local/Cellar/openssl/1.0.2j/bin/openssl"

अब यह काम कर रहा है :)

Jorns-iMac:~ jorn$ openssl version -a
OpenSSL 1.0.2j  26 Sep 2016
built on: reproducible build, date unspecified
//blah blah
OPENSSLDIR: "/usr/local/etc/openssl"

Jorns-iMac:~ jorn$ which openssl
/usr/local/opt/openssl/bin/openssl

1
यह वास्तव में सरल समाधान है और मुझे पूरी उम्मीद थी कि यह मेरे लिए काम करेगा लेकिन यहाँ कोई भाग्य नहीं है। मेरे PATH को अपडेट करने और मेरे शेल सत्र को फिर से शुरू करने के बाद which opensslभी/usr/bin/openssl
विल हिचकॉक

यह काम पाने के लिए मुझे अपने .bash_profile को भी संपादित करना था। लेकिन केवल एक चीज जो काम करती थी वह इसे / usr / बिन के बजाय / usr / स्थानीय / बिन में देखने के लिए कह रही थी। मैंने इसे जोड़करexport PATH=/usr/local/bin:$PATH
Alison

3
काम करने के लिए इस के लिए, आप जोड़ने की जरूरत है /usr/local/opt/openssl/bin, बिना/openssl अंत पर, करने के लिए सामने : पथ, अंत नहीं की PATH=/usr/local/opt/openssl/bin:$PATH का उपयोग /usr/local/opt/opensslकरने के बजाय /usr/local/Cellar/openssl/$versionसाधन आप स्वचालित रूप से बिना अपने $ पथ में सबसे अप-टू-डेट संस्करण रखेंगे अपग्रेड करने पर हर बार इसे बदलना।
मार्क रीड

घंटों की शिथिलता के बाद इसने मेरे लिए @ MarkReed के अतिरिक्त नोटों के साथ चाल चली
Naomi See

मैं इसका उपयोग करने और मेरे लिए काम करने में सक्षम था। धन्यवाद। मेरे पास खुलने का 1.0.2q संस्करण है।
कार्तिक एनजी

8

मेरा भी ऐसा ही मामला है। मैं brews के माध्यम से coversl स्थापित करने की जरूरत है और फिर mitmproxy स्थापित करने के लिए पाइप का उपयोग करें। मुझे भी यही शिकायत मिलती है brew link --force। निम्नलिखित समाधान मैं पहुँच गया है: (काढ़ा द्वारा बल लिंक के बिना)

LDFLAGS=-L/usr/local/opt/openssl/lib 
CPPFLAGS=-I/usr/local/opt/openssl/include
PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig 
pip install mitmproxy

यह सीधे सवाल को संबोधित नहीं करता है। मैं वन-लाइनर को छोड़ देता हूं, अगर कोई भी पाइप का उपयोग करता है और ओपनसेल एफएल की आवश्यकता होती है।

नोट: /usr/local/opt/openssl/libपथ द्वारा प्राप्त कर रहे हैंbrew info openssl


Pysqlcipher
drtf

स्थापित करने के लिए उपयोगी है cryptography। मुझे PKG_CONFIG_PATHचर की याद आ रही थी
सागर

7

यह मेरे लिए काम किया:

 brew install openssl
 cd /usr/local/include 
 ln -s ../opt/openssl/include/openssl .

यह मेरे लिए काम किया, मैक ओएस हाई सिएरा पर phpbrew के साथ PHP 7.2.1 संकलित करने की कोशिश कर रहा है - धन्यवाद!
ब्रूनो डी ओलिवेरा

6

Edwardthesecond से ऊपर के समाधान ने मेरे लिए भी सिएरा पर काम किया

 brew install openssl
 cd /usr/local/include 
 ln -s ../opt/openssl/include/openssl 
 ./configure && make

अन्य कदम मैंने पहले किए थे:

  • काढ़ा के माध्यम से Opensl स्थापित करना

    brew install openssl
    
  • होमबॉव द्वारा सुझाए गए रास्ते के लिए खुलता है जोड़ने

    brew info openssl
    echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
    

मेरे लिए अच्छा काम किया, बस 'भाग छोड़ दिया' ।/configure && make '
डेविड' mArm 'Ansermot

1

नोट: यह अब https://github.com/Homebrew/brew/pull/612 के कारण काम नहीं करता है

मुझे आज भी यही समस्या थी। मैंने अनइंस्टॉल किया (अनब्रेव्ड ??) ओपनस्ले 1.0.2 और इंस्टाल किया हुआ 1.0.1 भी होमब्रे के साथ। डॉटनेट नया / पुनर्स्थापना / रन तो ठीक काम किया।


Opensl 101 स्थापित करें: शराब की भठ्ठी स्थापित करें homebrew / संस्करणों / खुलता है
Linking:
शराब की भठ्ठी लिंक --force homebrew / संस्करणों / coverssl101


2
यह यह किया! लगता है कि 1.0.2 लिंक नहीं करना चाहता था। अगला सवाल यह है कि .netcore कुछ ऐसा सुझाव देता है जो समुदाय में अनुशंसित नहीं है।
daviddeath

1.0.2 ने कुछ दिन पहले मेरे लिए एक और मैक पर काम किया था, इसलिए हो सकता है कि हाल ही में कोई ब्रूज़ या ओपनसेल परिवर्तन हुआ हो। वैसे भी, डॉट नेट कोर के लिए, हम अच्छे हैं :)
user3488820

1
@Bartonjs द्वारा पोस्ट किए गए गिटब लिंक से पता चलता है कि कुछ दिन पहले ही काढ़ा अपडेट किया गया था। कमिट को देखते हुए, परिवर्तन `है अगर HOMEBREW_PREFIX.to_s ==" / usr / स्थानीय "&& keg.name ==" खोलता है "तो मैं अनुमान लगा रहा हूं कि 1.0.1 संस्करण एक अलग HOMEBREW_PREFIX का उपयोग करता है।
daviddeath

11
मेरे लिए काम नहीं किया, फिर भी त्रुटि देता हैRefusing to link: openssl101 Linking keg-only openssl101 means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl101. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl101/include -L/usr/local/opt/openssl101/lib
Dark_ruby

6
यह उत्तर अब सही नहीं दिया गया है, जो कि homebrew devs द्वारा github.com/Homebrew/brew/pull/612
जोशिका

1

रूबी 2.6.5 https://github.com/kelaberetiv/TagUI/issues/86 के नए संस्करण को स्थापित करने की कोशिश करते समय मुझे एक ही समस्या थी, समस्या को हल करने में मेरी मदद करता है। अगर यह macOS उत्प्रेरक संस्करण 10.15.1 के लिए है

मूल रूप से, मैंने update and upgradeहोमब्रे किया और ओपनसीएल स्थापित किया और रूबी स्थापित किया।

brew update && brew upgrade
brew install openssl

फिर इन 2 सिम्बल को बनाएँ

ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

फिर माणिक 2.6.5 स्थापित किया


1

डिफ़ॉल्ट रूप से, होमब्रे ने मुझे ओपनएसएसएल संस्करण 1.1 दिया और मैं इसके बजाय संस्करण 1.0 की तलाश कर रहा था। इसने मेरे लिए काम किया।

संस्करण 1.0 स्थापित करने के लिए:

brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

फिर मैंने इसके माध्यम से अपने तरीके से सहानुभूति रखने की कोशिश की लेकिन इसने मुझे निम्न त्रुटि दी:

ln -s /usr/local/Cellar/openssl/1.0.2t/include/openssl /usr/bin/openssl
ln: /usr/bin/openssl: Operation not permitted

अंत में जुड़ा हुआ है खुलने का समय का उपयोग कर 1.0 संस्करण का उपयोग करें

brew switch openssl 1.0.2t
Cleaning /usr/local/Cellar/openssl/1.0.2t
Opt link created for /usr/local/Cellar/openssl/1.0.2t

0

मेरे लिए यह काम किया है ...

मैंने ./bash_profile को संपादित किया और कमांड के नीचे जोड़ा गया

निर्यात पथ = "/ usr / स्थानीय / ऑप्ट / खुलता है / बिन: $ पथ"


0
export https_proxy=http://127.0.0.1:1087 http_proxy=http://127.0.0.1:1087 all_proxy=socks5://127.0.0.1:1080

मेरे लिये कार्य करता है

और मुझे लगता है कि यह सभी समस्याओं को हल कर सकता है Failed to connect to raw.githubusercontent.com port 443: Connection refused

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