O'rnatish tugaydi, brew openvpn borligini aytadi, lekin shell command not found deb javob beradi. Binar mavjud, u shunchaki shellga hech qachon aytilmagan katalogda turibdi. Homebrew demon uslubidagi binarlarni prefiksning sbin katalogiga bog'laydi, standart macOS PATH esa odatda bin katalogini o'z ichiga oladi, sbin katalogini emas. Hech narsa buzilmagan va hech qanday qayta o'rnatish buni o'zgartirmaydi.

Har qanday shell faylini tahrirlashdan oldin to'rt tekshiruv bu mexanizmni tasdiqlaydi.

Formula aslida nima o'rnatadi

openvpn formulasi buyruq qatori demonini quradi, shuning uchun uning bajariladigan fayli bin emas, sbin ostiga tushadi. So'ngra Homebrew o'sha binarni prefiksning sbin katalogiga bog'laydi, shuning uchun "$(brew --prefix)/sbin/openvpn" --version ishlaydi, oddiy chaqiruv esa ishlamaydi. Versiyalangan Cellar katalogi ham nusxa saqlaydi va bu yo'lni ishga tushirish fayliga yozish mashinaning yangilanishdan keyin ham eski buildga bog'lanib qolish usulidir.

Prefiksning ramziy havolasi barqaror yo'l. Cellar yo'li ichida versiya raqami bor amalga oshirish tafsiloti.

Fayl tizimidan emas, Homebrew'dan so'rang

Paket menejeridan boshlang, chunki formula qaysi o'rnatishga tegishli ekanini u biladi: command -v brew, brew --prefix, brew list --versions openvpn, brew --prefix openvpn. Agar oxirgisi yo'lni chiqarsa, formula mavjud va savol faqat yechim haqida. Agar u hech narsa chiqarmasa, shell hech qachon o'rnatilmagan paketni noto'g'ri joydan qidirmoqda, va bu boshqa yechimga ega boshqa muammo.

Bitta mashinada ikkita Homebrew o'rnatmasi bo'lishi bu eng muhim bo'ladigan joy: javob berayotgan brew o'rnatgan brew bo'lishi shart emas.

Nega shell sbin'ni ko'ra olmaydi

Kirish shell PATH'ni tizim standartlari va ishga tushirish fayllaringiz qo'shgan hamma narsadan quradi. Homebrew bin odatda qo'shiladi, Homebrew sbin odatda qo'shilmaydi, shuning uchun demonlardan boshqa barcha buyruq ishlaydi. command -v openvpn hech narsa qaytarmasa, prefiksli yo'l versiya qaytaradi, bu ikki buyruqdagi butun diagnostika. Katalogda haqiqatan havola borligini ls -l "$(brew --prefix)/sbin/openvpn" bilan tasdiqlang.

Yo'qolgan havola yo'qolgan PATH yozuvidan boshqa nosozlik, va ulardan faqat bittasi shell faylini tahrirlash bilan tuzatiladi.

Yo'lni bir marta, bir joyda tuzating

Joriy shellda tezkor sinov uchun eval "$(brew shellenv)" o'rnatish o'zgaruvchilarini o'rnatadi va ikkala katalogni oldinga qo'yadi. Doimiy tartib uchun shellenv satrini siz ishlatadigan kirish rejimi uchun shellingiz o'qiydigan yagona ishga tushirish fayliga qo'ying, eksportlarni bash va zsh fayllariga sochish o'rniga.

So'ngra yangi terminal oching va versiya so'rovini takrorlang, chunki keshlangan shell eski PATH haqida xabar berishda davom etadi.

Aniqlashni xizmatdan alohida tuting

Binarni topish VPN xizmatini yuritish bilan bir xil emas. openvpn'ni avtomatik ishga tushirish paket aniqlash hech qachon tegmagan profil, hisob ma'lumotlari, imtiyozlar va hayot tsikli talablarini qo'shadi. Tunnelblick o'z dvigatelini ham olib keladi, shuning uchun hozir chop etgan versiyaning ilova ishlatadigan versiyaga hech qanday aloqasi bo'lmasligi mumkin.

Versiya chiqishini qaysi bajariladigan fayl ishlab chiqqanini yozib qo'ying. O'sha bitta satr keyingi safar ikki versiya kelishmasa, bir soatni tejaydi.

O'xshash maqolalar