Saya di: OSX 10.11.6, Homebrew version 0.9.9m OpenSSL 0.9.8zg 14 Juli 2015
Saya mencoba bermain dengan dotnetcore dan dengan mengikuti instruksinya ,
Saya telah meningkatkan / menginstal versi terbaru dari openssl:
> 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
Tetapi ketika saya mencoba untuk menautkan openssl saya terus mengalami kesalahan penautan ini:
> 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
Pilihan untuk menyertakan flag compiler tidak masuk akal bagi saya, karena saya tidak mengkompilasi library yang saya andalkan ini.
EDIT dotnetcore telah memperbarui instruksinya:
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/
brew upgrade openssl
terlebih dahulu?brew update
danbrew install openssl
. Ini mencoba memasang versi yang didukung.Jawaban:
Seperti yang disarankan oleh pembaruan untuk jawaban lain, solusi untuk menginstal minuman lama openssl101 tidak akan berfungsi lagi. Untuk solusi saat ini, lihat komentar ini di dotnet / cli # 3964 .
Bagian paling relevan dari masalah yang disalin di sini:
Yang juga penting, sepertinya Microsoft menyadari masalah ini dan memiliki a) rencana yang agak segera untuk dikurangi serta b) solusi jangka panjang (kemungkinan membundel OpenSSL dengan dotnet).
Hal lain yang perlu diperhatikan:
/usr/local/opt/openssl/lib
adalah tempat minuman terhubung secara default:Jika karena alasan apa pun Anda menginstal minuman dan menautkannya di lokasi yang berbeda, maka jalur itu yang harus Anda gunakan sebagai jalur jalan.
Setelah Anda memperbarui rpath libray System.Security.Cryptography.Native.dylib, Anda harus memulai ulang sesi interaktif Anda (yaitu, tutup konsol Anda dan mulai yang lain).
sumber
/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib (No such file or directory)
.dotnet
perkakas. Mungkin saja Anda tidak menginstalnya atau Anda menginstal atau ke lokasi lain. Jika sudah terpasang dan di pihak Anda, Anda dapat menggunakannyawhich dotnet
untuk menemukannya.dotnet
. Akan mencoba lagi dan kembali.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
Inilah yang berhasil untuk saya:
Terima kasih kepada @dorlandode di utas ini https://github.com/Homebrew/brew/pull/597
NB: Saya hanya menggunakan ini sebagai perbaikan sementara sampai saya dapat menghabiskan waktu dengan benar menginstal Opensl lagi dari awal. Seingat saya, saya menghabiskan sebagian besar hari debugging dan mengalami masalah sebelum saya menyadari bahwa cara terbaik adalah menginstal secara manual sertifikat yang saya butuhkan satu per satu. Silakan baca tautan di komentar @ bouke sebelum mencoba ini.
sumber
/usr/local/bin/openssl
?1.0.2j
untuk1.0.2k
karena perbedaan versi. Jadi pengguna berhati-hatilah, Anda mungkin perlu menyesuaikan jalur untuk versi saat iniln -s -f /usr/local/Cellar/openssl/1.0.2k/bin/openssl /usr/local/bin/openssl
memperbaikinyaTidak ada solusi ini yang berfungsi untuk saya di OS X El Capitan 10.11.6. Mungkin karena OS X memiliki versi opensl asli yang diyakini lebih unggul, dan karena itu, tidak suka dirusak.
Jadi, saya mengambil jalan raya dan mulai segar ...
Instal dan symlink secara manual
Jika Anda mendapatkan "Tidak ada file atau direktori seperti itu", buatlah:
cd /usr/local && mkdir src && cd src
Unduh openssl:
Ekstrak dan cd di:
Kompilasi dan instal:
Sekarang symlink OS X openssl ke openssl Anda yang baru dan diperbarui:
Tutup terminal, buka sesi baru, dan verifikasi OS X menggunakan openssl baru Anda:
sumber
ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl
. Setelah memulai kembali sesi Terminal Anda, ketikwhich openssl
untuk memastikan Anda menggunakan versi 1.0.2 yang diperbarui (/usr/local/bin/openssl
) dan bukan versi bawaan (/usr/bin/openssl
).Cukup jalankan
brew info openssl
dan baca informasi di mana dikatakan:sumber
brew info openssl
memberikan informasi bermanfaat yang sama untuk saya. Menjalankan perintah yang disarankan di atas dan kemudian menjalankansource ~/.bash_profile
atau membuka terminal baru menyelesaikannya untuk saya.echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
Jika migrasi mac Anda merusak homebrew:
Saya memigrasikan mac saya, dan itu memutuskan tautan semua pemasangan homebrew saya - termasuk OpenSSL. Ini rusak
gem install
, begitulah pertama kali saya menyadari masalahnya dan mulai mencoba memperbaikinya.Setelah sejuta solusi (saat bermigrasi ke OSX Sierra - 10.12.5), solusinya akhirnya menjadi sangat sederhana:
sumber
rm -rf /usr/local/opt/openssl
Setelah mencoba semua yang dapat saya temukan dan tidak ada yang berhasil, saya baru saja mencoba ini:
Di dalam file ditambahkan baris ini.
sekarang berhasil :)
sumber
which openssl
masih mengarah ke/usr/bin/openssl
export PATH=/usr/local/bin:$PATH
/usr/local/opt/openssl/bin
, tanpa yang/openssl
pada akhirnya, ke depan dari PATH, bukan akhir:PATH=/usr/local/opt/openssl/bin:$PATH
Menggunakan/usr/local/opt/openssl
bukan/usr/local/Cellar/openssl/$version
berarti Anda secara otomatis akan menyimpan versi paling up-to-date di $ PATH Anda tanpa harus untuk mengubahnya setiap kali Anda meningkatkan.Saya memiliki kasus serupa. Saya perlu menginstal openssl melalui brew dan kemudian menggunakan pip untuk menginstal mitmproxy. Saya mendapatkan keluhan yang sama dari
brew link --force
. Berikut adalah solusi yang saya capai: (tanpa tautan paksa oleh minuman)Ini tidak menjawab pertanyaan secara langsung. Saya meninggalkan one-liner jika ada yang menggunakan pip dan membutuhkan lib openssl.
Catatan:
/usr/local/opt/openssl/lib
jalur diperoleh denganbrew info openssl
sumber
cryptography
. Saya kehilanganPKG_CONFIG_PATH
variabelIni berhasil untuk saya:
sumber
Solusi di atas dari edwardthesecond bekerja untuk saya juga di Sierra
Langkah lain yang saya lakukan sebelumnya adalah:
menginstal openssl melalui brew
menambahkan openssl ke jalur seperti yang disarankan oleh homebrew
sumber
Secara default, homebrew memberi saya OpenSSL versi 1.1 dan saya mencari versi 1.0 sebagai gantinya. Ini berhasil untuk saya.
Untuk menginstal versi 1.0:
Kemudian saya mencoba untuk melakukan symlink melalui itu tetapi memberi saya kesalahan berikut:
Akhirnya ditautkan openssl untuk menunjuk ke versi 1.0 menggunakan perintah brew switch:
sumber
Catatan: ini tidak lagi berfungsi karena https://github.com/Homebrew/brew/pull/612
Saya memiliki masalah yang sama hari ini. Saya menghapus (unbrewed ??) openssl 1.0.2 dan menginstal 1.0.1 juga dengan homebrew. Dotnet baru / restore / run kemudian bekerja dengan baik.
Instal openssl 101:
Brew menginstal homebrew / versi / openssl101
Menautkan:
link brew - force homebrew / versi / openssl101
sumber
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
Saya mengalami masalah yang sama ketika mencoba menginstal versi terbaru dari ruby 2.6.5 https://github.com/kelaberetiv/TagUI/issues/86 membantu saya menyelesaikan masalah. Ini jika untuk macOS catalina Versi 10.15.1
Pada dasarnya, saya melakukan
update and upgrade
homebrew dan menginstal openssl dan menginstal ruby.Kemudian buat 2 symlink ini
lalu pasang ruby 2.6.5
sumber
bagi saya inilah yang berhasil ...
Saya mengedit ./bash_profile dan menambahkan perintah di bawah ini
ekspor PATH = "/ usr / local / opt / openssl / bin: $ PATH"
sumber
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
bekerja untuk saya
dan saya pikir itu bisa menyelesaikan semua masalah seperti
Failed to connect to raw.githubusercontent.com port 443: Connection refused
sumber
Solusinya mungkin memperbarui beberapa alat.
Inilah skenario saya dari tahun 2020 dengan Ruby dan Python:
Saya perlu menginstal Python 3 di Mac dan hal-hal meningkat. Pada akhirnya, memperbarui homebrew, node, dan python menyebabkan masalah dengan openssl. Saya tidak memiliki openssl 1.0 lagi, jadi saya tidak bisa "brew switch" ke sana.
Jadi apa yang masih mencoba menggunakan versi 1.0 lama itu?
Ternyata itu adalah Ruby 2.5.5.
Jadi saya baru saja menginstal Ruby 2.5.8 dan menghapus yang lama.
Hal-hal lain yang dapat Anda coba jika ini tidak cukup: Gunakan rbenv dan pyenv. Bersihkan permata dan formula. Perbarui homebrew, node, yarn. Tingkatkan bundler. Pastikan .bash_profile Anda (atau yang setara) telah diatur sesuai dengan instruksi setiap alat. Buka kembali terminal.
sumber