PCEtLXtzdWJ0ZW1wbGF0ZSBjb21tb24vaGVhZGVyX2NvbW1vbn0tLT4JPCEtLXtpZiAkX0dFVFsnbW9kJ10gPT0gJ3ZpZXd0aHJlYWQnICYmICFlbXB0eSgkX0dbJ3RpZCddKX0tLT4KCTxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy5xaWRhbzEyMy5jb20vYmJzL3RocmVhZC17JF9HWyd0aWQnXX0tMS0xLmh0bWwiIC8+Cgk8IS0te2Vsc2VpZiAkX0dFVFsnbW9kJ10gPT0gJ2ZvcnVtZGlzcGxheScgJiYgIWVtcHR5KCRfR1snZmlkJ10pfS0tPgoJPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3LnFpZGFvMTIzLmNvbS9iYnMvZm9ydW0teyRfR1snZmlkJ119LTEuaHRtbCIgLz4KCTwhLS17ZWxzZWlmICRfR0VUWydtb2QnXSA9PSAnZ3VpZGUnfS0tPgoJPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3LnFpZGFvMTIzLmNvbS9iYnMvZ3VpZGUvIiAvPgoJPCEtLXtlbHNlaWYgJF9HWydiYXNlc2NyaXB0J10gPT0gJ2ZvcnVtJyAmJiAoZW1wdHkoJF9HRVRbJ21vZCddKSB8fCAkX0dFVFsnbW9kJ10gPT0gJ2luZGV4Jyl9LS0+Cgk8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly93d3cucWlkYW8xMjMuY29tL2Jicy8iIC8+Cgk8IS0tey9pZn0tLT4KCXJgbmB0PG1ldGEgbmFtZT0iYXBwbGljYXRpb24tbmFtZSIgY29udGVudD0iJF9HWydzZXR0aW5nJ11bJ2JibmFtZSddIiAvPgoJPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi10b29sdGlwIiBjb250ZW50PSIkX0dbJ3NldHRpbmcnXVsnYmJuYW1lJ10iIC8+Cgk8IS0te2lmICRfR1snc2V0dGluZyddWydwb3J0YWxzdGF0dXMnXX0tLT48bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLXRhc2siIGNvbnRlbnQ9Im5hbWU9JF9HWydzZXR0aW5nJ11bJ25hdnMnXVsxXVsnbmF2bmFtZSddO2FjdGlvbi11cmk9e2VjaG8gIWVtcHR5KCRfR1snc2V0dGluZyddWydkb21haW4nXVsnYXBwJ11bJ3BvcnRhbCddKSA/ICRfR1snc2NoZW1lJ10uJzovLycuJF9HWydzZXR0aW5nJ11bJ2RvbWFpbiddWydhcHAnXVsncG9ydGFsJ10gOiAkX0dbc2l0ZXVybF0uJ3BvcnRhbC5waHAnfTtpY29uLXVyaT17JF9HW3NpdGV1cmxdfXtJTUdESVJ9L3BvcnRhbC5pY28iIC8+PCEtLXsvaWZ9LS0+Cgk8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLXRhc2siIGNvbnRlbnQ9Im5hbWU9JF9HWydzZXR0aW5nJ11bJ25hdnMnXVsyXVsnbmF2bmFtZSddO2FjdGlvbi11cmk9e2VjaG8gIWVtcHR5KCRfR1snc2V0dGluZyddWydkb21haW4nXVsnYXBwJ11bJ2ZvcnVtJ10pID8gJF9HWydzY2hlbWUnXS4nOi8vJy4kX0dbJ3NldHRpbmcnXVsnZG9tYWluJ11bJ2FwcCddWydmb3J1bSddIDogJF9HW3NpdGV1cmxdLidmb3J1bS5waHAnfTtpY29uLXVyaT17JF9HW3NpdGV1cmxdfXtJTUdESVJ9L2Jicy5pY28iIC8+Cgk8IS0te2lmICRfR1snc2V0dGluZyddWydncm91cHN0YXR1cyddfS0tPjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tdGFzayIgY29udGVudD0ibmFtZT0kX0dbJ3NldHRpbmcnXVsnbmF2cyddWzNdWyduYXZuYW1lJ107YWN0aW9uLXVyaT17ZWNobyAhZW1wdHkoJF9HWydzZXR0aW5nJ11bJ2RvbWFpbiddWydhcHAnXVsnZ3JvdXAnXSkgPyAkX0dbJ3NjaGVtZSddLic6Ly8nLiRfR1snc2V0dGluZyddWydkb21haW4nXVsnYXBwJ11bJ2dyb3VwJ10gOiAkX0dbc2l0ZXVybF0uJ2dyb3VwLnBocCd9O2ljb24tdXJpPXskX0dbc2l0ZXVybF19e0lNR0RJUn0vZ3JvdXAuaWNvIiAvPjwhLS17L2lmfS0tPgoJPCEtLXtpZiBoZWxwZXJfYWNjZXNzOjpjaGVja19tb2R1bGUoJ2ZlZWQnKX0tLT48bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLXRhc2siIGNvbnRlbnQ9Im5hbWU9JF9HWydzZXR0aW5nJ11bJ25hdnMnXVs0XVsnbmF2bmFtZSddO2FjdGlvbi11cmk9e2VjaG8gIWVtcHR5KCRfR1snc2V0dGluZyddWydkb21haW4nXVsnYXBwJ11bJ2hvbWUnXSkgPyAkX0dbJ3NjaGVtZSddLic6Ly8nLiRfR1snc2V0dGluZyddWydkb21haW4nXVsnYXBwJ11bJ2hvbWUnXSA6ICRfR1tzaXRldXJsXS4naG9tZS5waHAnfTtpY29uLXVyaT17JF9HW3NpdGV1cmxdfXtJTUdESVJ9L2hvbWUuaWNvIiAvPjwhLS17L2lmfS0tPgoJPCEtLXtpZiAkX0dbJ2Jhc2VzY3JpcHQnXSA9PSAnZm9ydW0nICYmICRfR1snc2V0dGluZyddWydhcmNoaXZlciddfS0tPgoJCTxsaW5rIHJlbD0iYXJjaGl2ZXMiIHRpdGxlPSIkX0dbJ3NldHRpbmcnXVsnYmJuYW1lJ10iIGhyZWY9InskX0dbc2l0ZXVybF19YXJjaGl2ZXIvIiAvPgoJPCEtLXsvaWZ9LS0+Cgk8IS0te2lmICFlbXB0eSgkcnNzaGVhZCl9LS0+JHJzc2hlYWQ8IS0tey9pZn0tLT4KCTwhLS17aWYgd2lkdGhhdXRvKCl9LS0+CgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBpZD0iY3NzX3dpZHRoYXV0byIgdHlwZT0idGV4dC9jc3MiIGhyZWY9J3skX0dbJ3NldHRpbmcnXVsnY3NzcGF0aCddfXtTVFlMRUlEfV93aWR0aGF1dG8uY3NzP3tWRVJIQVNIfScgLz4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+SFRNTE5PREUuY2xhc3NOYW1lICs9ICcgd2lkdGhhdXRvJzwvc2NyaXB0PgoJPCEtLXsvaWZ9LS0+Cgk8IS0te2lmICRfR1snYmFzZXNjcmlwdCddID09ICdmb3J1bScgfHwgJF9HWydiYXNlc2NyaXB0J10gPT0gJ2dyb3VwJ30tLT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ7JF9HW3NldHRpbmddW2pzcGF0aF19Zm9ydW0uanM/e1ZFUkhBU0h9Ij48L3NjcmlwdD4KCTwhLS17ZWxzZWlmICRfR1snYmFzZXNjcmlwdCddID09ICdob21lJ30tLT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ7JF9HW3NldHRpbmddW2pzcGF0aF19aG9tZS5qcz97VkVSSEFTSH0iPjwvc2NyaXB0PgoJPCEtLXtlbHNlaWYgJF9HWydiYXNlc2NyaXB0J10gPT0gJ3BvcnRhbCd9LS0+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRfR1tzZXR0aW5nXVtqc3BhdGhdfXBvcnRhbC5qcz97VkVSSEFTSH0iPjwvc2NyaXB0PgoJPCEtLXsvaWZ9LS0+Cgk8IS0te2lmICRfR1snYmFzZXNjcmlwdCddICE9ICdwb3J0YWwnICYmICRfR0VUWydkaXknXSA9PSAneWVzJyAmJiBjaGVja19kaXlfcGVybSgkdG9waWMpfS0tPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskX0dbc2V0dGluZ11banNwYXRoXX1wb3J0YWwuanM/e1ZFUkhBU0h9Ij48L3NjcmlwdD4KCTwhLS17L2lmfS0tPgoJPCEtLXtpZiAkX0dFVFsnZGl5J10gPT0gJ3llcycgJiYgY2hlY2tfZGl5X3Blcm0oJHRvcGljKX0tLT4KCQk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBpZD0iZGl5X2NvbW1vbiIgaHJlZj0ieyRfR1snc2V0dGluZyddWydjc3NwYXRoJ119e1NUWUxFSUR9X2Nzc19kaXkuY3NzP3tWRVJIQVNIfSIgLz4KCTwhLS17L2lmfS0tPgo8L2hlYWQ+Cgo8Ym9keSBpZD0ibnZfeyRfR1tiYXNlc2NyaXB0XX0iIGNsYXNzPSJwZ197Q1VSTU9EVUxFfXtpZiAkX0dbJ2Jhc2VzY3JpcHQnXSA9PT0gJ3BvcnRhbCcgJiYgQ1VSTU9EVUxFID09PSAnbGlzdCcgJiYgIWVtcHR5KCRjYXQpfSB7JGNhdFsnYm9keWNzcyddfXsvaWZ9IiBvbmtleWRvd249ImlmKGV2ZW50LmtleUNvZGU9PTI3KSByZXR1cm4gZmFsc2U7Ij4KCTxkaXYgaWQ9ImFwcGVuZF9wYXJlbnQiPjwvZGl2PjxkaXYgaWQ9ImFqYXh3YWl0aWQiPjwvZGl2PgoJPCEtLXtpZiAkX0dFVFsnZGl5J10gPT0gJ3llcycgJiYgY2hlY2tfZGl5X3Blcm0oJHRvcGljKX0tLT4KCQk8IS0te3RlbXBsYXRlIGNvbW1vbi9oZWFkZXJfZGl5fS0tPgoJPCEtLXsvaWZ9LS0+Cgk8IS0te2lmIGNoZWNrX2RpeV9wZXJtKCR0b3BpYyl9LS0+CgkJPCEtLXt0ZW1wbGF0ZSBjb21tb24vaGVhZGVyX2RpeW5hdn0tLT4KCTwhLS17L2lmfS0tPgoJPCEtLXtpZiBDVVJNT0RVTEUgPT0gJ3RvcGljJyAmJiAkdG9waWMgJiYgZW1wdHkoJHRvcGljWyd1c2VoZWFkZXInXSkgJiYgY2hlY2tfZGl5X3Blcm0oJHRvcGljKX0tLT4KCQkkZGl5bmF2Cgk8IS0tey9pZn0tLT4KCTwhLS17aWYgZW1wdHkoJHRvcGljKSB8fCAkdG9waWNbJ3VzZWhlYWRlciddfS0tPgoJCTwhLS17aWYgJF9HWydzZXR0aW5nJ11bJ21vYmlsZSddWydhbGxvd21vYmlsZSddICYmICghJF9HWydzZXR0aW5nJ11bJ2NhY2hlaW5kZXhsaWZlJ10gJiYgISRfR1snc2V0dGluZyddWydjYWNoZXRocmVhZG9uJ10gfHwgJF9HWyd1aWQnXSkgJiYgKCRfR0VUWydkaXknXSAhPSAneWVzJyB8fCAhJF9HRVRbJ2luYWpheCddKSAmJiAoJF9HWydtb2JpbGUnXSAhPSAnJyAmJiAkX0dbJ2Nvb2tpZSddWydtb2JpbGUnXSA9PSAnJyAmJiAkX0dFVFsnbW9iaWxlJ10gIT0gJ25vJyl9LS0+CgkJCTxkaXYgY2xhc3M9InhpMSBibSBibV9jIj4KCQkJICAgIHtsYW5nIHlvdXJfbW9iaWxlX2Jyb3dzZXJ9PGEgaHJlZj0ieyRfR1snc2l0ZXVybCddfWZvcnVtLnBocD9tb2JpbGU9eWVzIj57bGFuZyBnb190b19tb2JpbGV9PC9hPiA8c3BhbiBjbGFzcz0ieGcxIj58PC9zcGFuPiA8YSBocmVmPSIkX0dbJ3NldHRpbmcnXVsnbW9iaWxlJ11bJ25vbW9iaWxldXJsJ10iPntsYW5nIHRvX2JlX2NvbnRpbnVlfTwvYT4KCQkJPC9kaXY+CgkJPCEtLXsvaWZ9LS0+CgkJPCEtLXtpZiAhZW1wdHkoJF9HWydzZXR0aW5nJ11bJ3Nob3J0Y3V0J10pICYmICRfR1snbWVtYmVyJ11bY3JlZGl0c10gPj0gJF9HWydzZXR0aW5nJ11bJ3Nob3J0Y3V0J119LS0+CgkJCTxkaXYgaWQ9InNob3J0Y3V0Ij4KCQkJCTxzcGFuPjxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgaWQ9InNob3J0Y3V0Y2xvc2VpZCIgdGl0bGU9IntsYW5nIGNsb3NlfSI+e2xhbmcgY2xvc2V9PC9hPjwvc3Bhbj4KCQkJCXtsYW5nIHNob3J0Y3V0X25vdGljZX0KCQkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgaWQ9InNob3J0Y3V0dGlwIj57bGFuZyBzaG9ydGN1dF9hZGR9PC9hPgoKCQkJPC9kaXY+CgkJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5zZXRUaW1lb3V0KHNldFNob3J0Y3V0LCAyMDAwKTs8L3NjcmlwdD4KCQk8IS0tey9pZn0tLT4KCQk8ZGl2IGlkPSJ0b3B0YiIgY2xhc3M9ImNsIj4KCQkJPCEtLXtob29rL2dsb2JhbF9jcG5hdl90b3B9LS0+CgkJCTxkaXYgY2xhc3M9IndwIj4KCQkJCTxkaXYgY2xhc3M9InoiPgoJCQkJCTwhLS17bG9vcCAkX0dbJ3NldHRpbmcnXVsndG9wbmF2cyddWzBdICRuYXZ9LS0+CgkJCQkJCTwhLS17aWYgaXNfYXJyYXkoJG5hdikgJiYgJG5hdlsnYXZhaWxhYmxlJ10gJiYgKCEkbmF2WydsZXZlbCddIHx8ICgkbmF2WydsZXZlbCddID09IDEgJiYgJF9HWyd1aWQnXSkgfHwgKCRuYXZbJ2xldmVsJ10gPT0gMiAmJiAkX0dbJ2FkbWluaWQnXSA+IDApIHx8ICgkbmF2WydsZXZlbCddID09IDMgJiYgJF9HWydhZG1pbmlkJ10gPT0gMSkpfS0tPiRuYXZbY29kZV08IS0tey9pZn0tLT4KCQkJCQk8IS0tey9sb29wfS0tPgoJCQkJCTwhLS17aG9vay9nbG9iYWxfY3BuYXZfZXh0cmExfS0tPgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJ5Ij4KCQkJCQk8YSBpZD0ic3dpdGNoYmxpbmQiIGhyZWY9ImphdmFzY3JpcHQ6OyIgb25jbGljaz0idG9nZ2xlQmxpbmQodGhpcykiIHRpdGxlPSJ7bGFuZyBzd2l0Y2hfYmxpbmR9IiBjbGFzcz0ic3dpdGNoYmxpbmQiPjwvYT4KCQkJCQk8IS0te2hvb2svZ2xvYmFsX2NwbmF2X2V4dHJhMn0tLT4KCQkJCQk8IS0te2xvb3AgJF9HWydzZXR0aW5nJ11bJ3RvcG5hdnMnXVsxXSAkbmF2fS0tPgoJCQkJCQk8IS0te2lmIGlzX2FycmF5KCRuYXYpICYmICRuYXZbJ2F2YWlsYWJsZSddICYmICghJG5hdlsnbGV2ZWwnXSB8fCAoJG5hdlsnbGV2ZWwnXSA9PSAxICYmICRfR1sndWlkJ10pIHx8ICgkbmF2WydsZXZlbCddID09IDIgJiYgJF9HWydhZG1pbmlkJ10gPiAwKSB8fCAoJG5hdlsnbGV2ZWwnXSA9PSAzICYmICRfR1snYWRtaW5pZCddID09IDEpKX0tLT4kbmF2W2NvZGVdPCEtLXsvaWZ9LS0+CgkJCQkJPCEtLXsvbG9vcH0tLT4KCQkJCQk8IS0te2lmIGVtcHR5KCRfR1snZGlzYWJsZWR3aWR0aGF1dG8nXSkgJiYgJF9HWydzZXR0aW5nJ11bJ3N3aXRjaHdpZHRoYXV0byddfS0tPgoJCQkJCQk8YSBocmVmPSJqYXZhc2NyaXB0OjsiIGlkPSJzd2l0Y2h3aWR0aCIgb25jbGljaz0id2lkdGhhdXRvKHRoaXMpIiB0aXRsZT0ie2lmIHdpZHRoYXV0bygpfXtsYW5nIHN3aXRjaF9uYXJyb3d9e2Vsc2V9e2xhbmcgc3dpdGNoX3dpZGV9ey9pZn0iIGNsYXNzPSJzd2l0Y2h3aWR0aCI+PCEtLXtpZiB3aWR0aGF1dG8oKX0tLT57bGFuZyBzd2l0Y2hfbmFycm93fTwhLS17ZWxzZX0tLT57bGFuZyBzd2l0Y2hfd2lkZX08IS0tey9pZn0tLT48L2E+CgkJCQkJPCEtLXsvaWZ9LS0+CgkJCQkJPCEtLXtpZiAkX0dbJ3VpZCddICYmICFlbXB0eSgkX0dbJ3N0eWxlJ11bJ2V4dHN0eWxlJ10pfS0tPjxhIGlkPSJzc2xjdCIgaHJlZj0iamF2YXNjcmlwdDo7IiBvbm1vdXNlb3Zlcj0iZGVsYXlTaG93KHRoaXMsIGZ1bmN0aW9uKCkge3Nob3dNZW51KHsnY3RybGlkJzonc3NsY3QnLCdwb3MnOiczNCEnfSl9KTsiPntsYW5nIGNoYW5nZXN0eWxlfTwvYT48IS0tey9pZn0tLT4KCQkJCQk8IS0te2lmIGNoZWNrX2RpeV9wZXJtKCR0b3BpYyl9LS0+CgkJCQkJCSRkaXluYXYKCQkJCQk8IS0tey9pZn0tLT4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCgkJPCEtLXtpZiAhSVNfUk9CT1R9LS0+CgkJCTwhLS17aWYgJF9HWyd1aWQnXSAmJiAhJF9HWydzZXR0aW5nJ11bJ2JiY2xvc2VkJ10gJiYgZW1wdHkoJF9HWydtZW1iZXInXVsnZnJlZXplJ10pICYmICRfR1snbWVtYmVyJ11bJ2dyb3VwaWQnXSAhPSA1fS0tPgoJCQk8dWwgaWQ9Im15cHJvbXB0X21lbnUiIGNsYXNzPSJwX3BvcCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KCQkJCTxsaT48YSBocmVmPSJob21lLnBocD9tb2Q9c3BhY2UmZG89cG0iIGlkPSJwbV9udGMiIHN0eWxlPSJiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTsiPjxlbSBjbGFzcz0icHJvbXB0X25ld3N7aWYgZW1wdHkoJF9HW21lbWJlcl1bbmV3cG1dKX1fMHsvaWZ9Ij48L2VtPntsYW5nIHBtX2NlbnRlcn08L2E+PC9saT4KCQkJCTwhLS17aWYgJF9HWydzZXR0aW5nJ11bJ2ZvbGxvd3N0YXR1cyddfS0tPgoJCQkJCTxsaT48YSBocmVmPSJob21lLnBocD9tb2Q9Zm9sbG93JmRvPWZvbGxvd2VyIj48ZW0gY2xhc3M9InByb21wdF9mb2xsb3dlcntpZiBlbXB0eSgkX0dbbWVtYmVyXVtuZXdwcm9tcHRfbnVtXVtmb2xsb3dlcl0pfV8wey9pZn0iPjwvZW0+PCEtLXtsYW5nIG5vdGljZV9pbnRlcmFjdGl2ZV9mb2xsb3dlcn0tLT57aWYgJF9HW21lbWJlcl1bbmV3cHJvbXB0X251bV1bZm9sbG93ZXJdfSgkX0dbbWVtYmVyXVtuZXdwcm9tcHRfbnVtXVtmb2xsb3dlcl0pey9pZn08L2E+PC9saT4KCQkJCQk8IS0te2lmICRfR1ttZW1iZXJdW25ld3Byb21wdF0gJiYgJF9HW21lbWJlcl1bbmV3cHJvbXB0X251bV1bZm9sbG93XX0tLT4KCQkJCQkJPGxpPjxhIGhyZWY9ImhvbWUucGhwP21vZD1mb2xsb3ciPjxlbSBjbGFzcz0icHJvbXB0X2NvbmNlcm4iPjwvZW0+PCEtLXtsYW5nIG5vdGljZV9pbnRlcmFjdGl2ZV9mb2xsb3d9LS0+KCRfR1ttZW1iZXJdW25ld3Byb21wdF9udW1dW2ZvbGxvd10pPC9hPjwvbGk+CgkJCQkJPCEtLXsvaWZ9LS0+CgkJCQk8IS0tey9pZn0tLT4KCQkJCTwhLS17aWYgJF9HW21lbWJlcl1bbmV3cHJvbXB0XX0tLT4KCQkJCQk8IS0te2xvb3AgJF9HWydtZW1iZXInXVsnY2F0ZWdvcnlfbnVtJ10gJGtleSAkdmFsfS0tPgoJCQkJCQk8bGk+PGEgaHJlZj0iaG9tZS5waHA/bW9kPXNwYWNlJmRvPW5vdGljZSZ2aWV3PSRrZXkiPjxlbSBjbGFzcz0ibm90aWNlXyRrZXkiPjwvZW0+PCEtLXtlY2hvIGxhbmcoJ3RlbXBsYXRlJywgJ25vdGljZV8nLiRrZXkpfS0tPig8c3BhbiBjbGFzcz0icnEiPiR2YWw8L3NwYW4+KTwvYT48L2xpPgoJCQkJCTwhLS17L2xvb3B9LS0+CgkJCQk8IS0tey9pZn0tLT4KCQkJCTwhLS17aWYgZW1wdHkoJF9HWydjb29raWUnXVsnaWdub3JlX25vdGljZSddKX0tLT4KCQkJCQk8bGkgY2xhc3M9Imlnbm9yZV9ub3RpY2VsaSI+PGEgaHJlZj0iamF2YXNjcmlwdDo7IiBvbmNsaWNrPSJzZXRjb29raWUoJ2lnbm9yZV9ub3RpY2UnLCAxKTtoaWRlTWVudSgnbXlwcm9tcHRfbWVudScpIiB0aXRsZT0ie2xhbmcgdGVtcG9yYXJpbHlfdG9fcmVtaW5kfSI+PGVtIGNsYXNzPSJpZ25vcmVfbm90aWNlIj48L2VtPjwvYT48L2xpPgoJCQkJPCEtLXsvaWZ9LS0+CgkJCTwvdWw+CgkJCTwhLS17L2lmfS0tPgoJCQk8IS0te2lmICRfR1sndWlkJ10gJiYgIWVtcHR5KCRfR1snc3R5bGUnXVsnZXh0c3R5bGUnXSl9LS0+CgkJCQk8ZGl2IGlkPSJzc2xjdF9tZW51IiBjbGFzcz0iY2wgcF9wb3AiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CgkJCQkJPCEtLXtpZiAhJF9HW3N0eWxlXVtkZWZhdWx0ZXh0c3R5bGVdfS0tPjxzcGFuIGNsYXNzPSJzc2xjdF9idG4iIG9uY2xpY2s9ImV4dHN0eWxlKCcnKSIgdGl0bGU9IntsYW5nIGRlZmF1bHR9Ij48aT48L2k+PC9zcGFuPjwhLS17L2lmfS0tPgoJCQkJCTwhLS17bG9vcCAkX0dbJ3N0eWxlJ11bJ2V4dHN0eWxlJ10gJGV4dHN0eWxlfS0tPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3NsY3RfYnRuIiBvbmNsaWNrPSJleHRzdHlsZSgnJGV4dHN0eWxlWzBdJykiIHRpdGxlPSIkZXh0c3R5bGVbMV0iPjxpIHN0eWxlPSdiYWNrZ3JvdW5kOiRleHRzdHlsZVsyXSc+PC9pPjwvc3Bhbj4KCQkJCQk8IS0tey9sb29wfS0tPgoJCQkJPC9kaXY+CgkJCTwhLS17L2lmfS0tPgoJCQk8IS0te2lmICRfR1sndWlkJ119LS0+CgkJCQk8dWwgaWQ9Im15aXRlbV9tZW51IiBjbGFzcz0icF9wb3AiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CgkJCQkJPCEtLXtpZiAkX0dbJ3NldHRpbmcnXVsnZm9ydW1zdGF0dXMnXX0tLT48bGk+PGEgaHJlZj0iaG9tZS5waHA/bW9kPXNwYWNlJmRvPXRocmVhZCZ2aWV3PW1lIj57bGFuZyBteXBvc3R9PC9hPjwvbGk+PCEtLXsvaWZ9LS0+CgkJCQkJPCEtLXtpZiAkX0dbJ3NldHRpbmcnXVsnZmF2b3JpdGVzdGF0dXMnXX0tLT48bGk+PGEgaHJlZj0iaG9tZS5waHA/bW9kPXNwYWNlJmRvPWZhdm9yaXRlJnZpZXc9bWUiPntsYW5nIGZhdm9yaXRlfTwvYT48L2xpPjwhLS17L2lmfS0tPgoJCQkJCTwhLS17aWYgJF9HWydzZXR0aW5nJ11bJ2ZyaWVuZHN0YXR1cyddfS0tPjxsaT48YSBocmVmPSJob21lLnBocD9tb2Q9c3BhY2UmZG89ZnJpZW5kIj57bGFuZyBmcmllbmRzfTwvYT48L2xpPjwhLS17L2lmfS0tPgoJCQkJCTwhLS17aG9vay9nbG9iYWxfbXlpdGVtX2V4dHJhfS0tPgoJCQkJPC91bD4KCQkJPCEtLXsvaWZ9LS0+CgkJCTwhLS17c3VidGVtcGxhdGUgY29tbW9uL2hlYWRlcl9xbWVudX0tLT4KCQk8IS0tey9pZn0tLT4KCgkJPCEtLXthZC9oZWFkZXJiYW5uZXIvd3AgYV9ofS0tPgoJCTxkaXYgaWQ9ImhkIj4KCQkJPGRpdiBjbGFzcz0id3AiPgoJCQkJPGRpdiBjbGFzcz0iaGRjIGNsIj4KCQkJCQk8IS0te2V2YWwgJG1uaWQgPSBnZXRjdXJyZW50bmF2KCk7fS0tPgoJCQkJCTxoMj48IS0te2lmICFpc3NldCgkX0dbJ3NldHRpbmcnXVsnbmF2bG9nb3MnXVskbW5pZF0pfS0tPjxhIGhyZWY9IntpZiAkX0dbJ3NldHRpbmcnXVsnZG9tYWluJ11bJ2FwcCddWydkZWZhdWx0J119eyRfR1snc2NoZW1lJ119Oi8veyRfR1snc2V0dGluZyddWydkb21haW4nXVsnYXBwJ11bJ2RlZmF1bHQnXX0ve2Vsc2V9Li97L2lmfSIgdGl0bGU9IiRfR1snc2V0dGluZyddWydiYm5hbWUnXSI+eyRfR1snc3R5bGUnXVsnYm9hcmRsb2dvJ119PC9hPjwhLS17ZWxzZX0tLT4kX0dbJ3NldHRpbmcnXVsnbmF2bG9nb3MnXVskbW5pZF08IS0tey9pZn0tLT48L2gyPgoJCQkJCTwhLS17dGVtcGxhdGUgY29tbW9uL2hlYWRlcl91c2Vyc3RhdHVzfS0tPgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBpZD0ibnYiPgoJCQkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgaWQ9InFtZW51IiBvbm1vdXNlb3Zlcj0iZGVsYXlTaG93KHRoaXMsIGZ1bmN0aW9uICgpIHtzaG93TWVudSh7J2N0cmxpZCc6J3FtZW51JywncG9zJzonMzQhJywnY3RybGNsYXNzJzonYScsJ2R1cmF0aW9uJzoyfSk7c2hvd0ZvcnVtbWVudSgkX0dbZmlkXSk7fSkiPntsYW5nIG15X25hdn08L2E+CgkJCQkJPHVsPgoJCQkJCQk8IS0te2xvb3AgJF9HWydzZXR0aW5nJ11bJ25hdnMnXSAkbmF2fS0tPgoJCQkJCQkJPCEtLXtpZiBpc19hcnJheSgkbmF2KSAmJiAkbmF2WydhdmFpbGFibGUnXSAmJiAoISRuYXZbJ2xldmVsJ10gfHwgKCRuYXZbJ2xldmVsJ10gPT0gMSAmJiAkX0dbJ3VpZCddKSB8fCAoJG5hdlsnbGV2ZWwnXSA9PSAyICYmICRfR1snYWRtaW5pZCddID4gMCkgfHwgKCRuYXZbJ2xldmVsJ10gPT0gMyAmJiAkX0dbJ2FkbWluaWQnXSA9PSAxKSl9LS0+PGxpIHtpZiAkbW5pZCA9PSAkbmF2W25hdmlkXSB8fCBzdWJzdHIoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10sIDEpID09IHN0cl9yZXBsYWNlKCcuLycsICcnLCAkbmF2W2ZpbGVuYW1lXSl9Y2xhc3M9ImEiIHsvaWZ9JG5hdltuYXZdPjwvbGk+PCEtLXsvaWZ9LS0+CgkJCQkJCTwhLS17L2xvb3B9LS0+CgkJCQkJPC91bD4KCQkJCQk8IS0te2hvb2svZ2xvYmFsX25hdl9leHRyYX0tLT4KCQkJCTwvZGl2PgoJCQkJPCEtLXtpZiAhZW1wdHkoJF9HWydzZXR0aW5nJ11bJ3BsdWdpbnMnXVsnanNtZW51J10pfS0tPgoJCQkJCTx1bCBjbGFzcz0icF9wb3AgaF9wb3AiIGlkPSJwbHVnaW5fbWVudSIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgoJCQkJCTwhLS17bG9vcCAkX0dbJ3NldHRpbmcnXVsncGx1Z2lucyddWydqc21lbnUnXSAkbW9kdWxlfS0tPgoJCQkJCQkgPCEtLXtpZiBpbl9hcnJheSgkbW9kdWxlWydhZG1pbmlkJ10sIGFycmF5KDAsIC0xKSkgfHwgKCRtb2R1bGVbJ2FkbWluaWQnXSAmJiAkX0dbJ2FkbWluaWQnXSA+IDAgJiYgJG1vZHVsZVsnYWRtaW5pZCddID49ICRfR1snYWRtaW5pZCddKX0tLT4KCQkJCQkJIDxsaT4kbW9kdWxlW3VybF08L2xpPgoJCQkJCQkgPCEtLXsvaWZ9LS0+CgkJCQkJPCEtLXsvbG9vcH0tLT4KCQkJCQk8L3VsPgoJCQkJPCEtLXsvaWZ9LS0+CgkJCQkkX0dbc2V0dGluZ11bbWVudW5hdnNdCgkJCQk8ZGl2IGlkPSJtdSIgY2xhc3M9ImNsIj4KCQkJCTwhLS17aWYgJF9HWydzZXR0aW5nJ11bJ3N1Ym5hdnMnXX0tLT4KCQkJCQk8IS0te2xvb3AgJF9HW3NldHRpbmddW3N1Ym5hdnNdICRuYXZpZCAkc3VibmF2fS0tPgoJCQkJCQk8IS0te2lmICRfR1snc2V0dGluZyddWyduYXZzdWJob3ZlciddIHx8ICRtbmlkID09ICRuYXZpZH0tLT4KCQkJCQkJPHVsIGNsYXNzPSJjbCB7aWYgJG1uaWQgPT0gJG5hdmlkfWN1cnJlbnR7L2lmfSIgaWQ9InNuYXZfJG5hdmlkIntpZiAkbW5pZCAhPSAkbmF2aWR9IHN0eWxlPSJkaXNwbGF5Om5vbmUiey9pZn0+CgkJCQkJCSRzdWJuYXYKCQkJCQkJPC91bD4KCQkJCQkJPCEtLXsvaWZ9LS0+CgkJCQkJPCEtLXsvbG9vcH0tLT4KCQkJCTwhLS17L2lmfS0tPgoJCQkJPC9kaXY+CgkJCQk8IS0te2FkL3N1Ym5hdmJhbm5lci9hX211fS0tPgoJCQkJPCEtLXtzdWJ0ZW1wbGF0ZSBjb21tb24vcHVic2VhcmNoZm9ybX0tLT4KCQkJPC9kaXY+CgkJPC9kaXY+CgoJCTwhLS17aG9vay9nbG9iYWxfaGVhZGVyfS0tPgoJPCEtLXsvaWZ9LS0+CgoJPGRpdiBpZD0id3AiIGNsYXNzPSJ3cCI+Cg==
qidao123.com ToB IT社区-企服评测·应用市场»论坛 › 主机系统 › linux › 阿里云ECS服务器安装java环境相干软件
返回列表 发新帖

阿里云ECS服务器安装java环境相干软件

[复制链接]
发表于 2024-8-8 02:59:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
当前服务器版本为:Alibaba Cloud Linux 3.2104 LTS 64位
  1. # lsb_release -a
  2. LSB Version:        :core-4.1-amd64:core-4.1-noarch
  3. Distributor ID:        AlibabaCloud
  4. Description:        Alibaba Cloud Linux release 3 (Soaring Falcon)
  5. Release:        3
  6. Codename:        SoaringFalcon
  7. # cat /proc/version
  8. Linux version 5.10.134-16.1.al8.x86_64 (mockbuild@a12i03132.na61) (gcc (GCC) 10.2.1 20200825 (Alibaba 10.2.1-3.5 2.32), GNU ld version 2.35-12.2.al8) #1 SMP Thu Dec 7 14:11:24 UTC 2023
复制代码
前置步骤
先更新所有已安装的软件以及软件源中的软件包列表,否则可能安装比力老的包
yum -y update
一、安装Redis

查看下yum堆栈里有哪些版本的Redis包
  1. # yum search redis --showduplicates
  2. Last metadata expiration check: 0:28:18 ago on Mon 18 Mar 2024 10:04:01 PM CST.
  3. ============================== Name Exactly Matched: redis ==============================
  4. redis-6.2.7-1.0.2.al8.x86_64 : A persistent key-value database
  5. redis-6.0.5-1.9.al8.x86_64 : A persistent key-value database
  6. redis-6.0.5-1.10.al8.x86_64 : A persistent key-value database
  7. redis-6.0.5-1.11.al8.x86_64 : A persistent key-value database
  8. redis-6.0.9-5.0.1.al8.x86_64 : A persistent key-value database
复制代码
可以看到堆栈里最新的版本是6.2.7,假如不指定版本默认就是安装最新版本
centos还可以使用这个命令查看yum list available redis
1、安装

yum install -y redis
2、安装完成后,执行以下命令来启动Redis服务:

systemctl start redis
3、设置Redis开机自启动

systemctl enable redis
4、安装和启动完成后,可以通过执行以下命令来验证Redis是否成功安装并运行

redis-cli ping
假如返回PONG,则说明Redis服务正在运行,且redis-cli(Redis命令行界面)已成功安装
  1. # redis-cli ping
  2. PONG
  3. # redis-cli -v
  4. redis-cli 6.2.7
复制代码
yum安装的redis的设置文件在/etc/redis.conf。可以使用find / -name redis.conf来搜索
  1. # find / -name redis.conf
  2. /etc/redis.conf
复制代码
附:卸载redis

1、克制正在运行的Redis服务

systemctl stop redis
2、禁用在系统启动时主动运行

systemctl disable redis
3、使用yum命令卸载Redis软件包

yum remove redis
二、安装nodejs

1、安装

yum install -y nodejs

2、安装完成后,运行以下命令来验证Node.js和npm是否已成功安装

node -v
npm -v
这些命令将分别输出Node.js和npm的版本号
  1. # node -v
  2. v14.21.3
  3. # npm -v
  4. 6.14.18
复制代码
三、安装nginx

先查抄下是否已经安装了nginx,用下面的命令
a、which nginx命令
b、使用systemctl status nginx查看服务
c、使用ps -ef | grep nginx查看进程
  1. #这是已经安装nginx
  2. # which nginx
  3. /usr/sbin/nginx
  4. # ps -ef | grep nginx
  5. root       48512       1  0 Mar15 ?        00:00:00 nginx: master process /usr/sbin/ngin
  6. nginx      48513   48512  0 Mar15 ?        00:00:00 nginx: worker process
复制代码
1、安装

yum install -y nginx
2、安装完成后,启动Nginx服务

systemctl start nginx
3、让Nginx在系统启动时主动运行

systemctl enable nginx
可以通过访问你的服务器的IP地址来验证Nginx是否正常运行
nginx安装后设置文件在/etc/nginx/nginx.conf
  1. # nginx -version
  2. nginx version: nginx/1.20.1
复制代码
四、安装jdk

先查抄一下是否已经安装了jdk
a、which java
b、yum list installed | grep java
c、java -version
d、rpm -qa | grep java
由于并不须要安装最新版本的jdk,所以要先查下堆栈里有哪些版本的jdk

  1. # yum search java | grep --color jdk
  2. ..........
  3. java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
  4. java-11-openjdk-demo.x86_64 : OpenJDK 11 Demos
  5. java-11-openjdk-demo-fastdebug.x86_64 : OpenJDK 11 Demos optimised with full debugging on
  6. java-11-openjdk-demo-slowdebug.x86_64 : OpenJDK 11 Demos unoptimised with full debugging on
  7. java-11-openjdk-devel.x86_64 : OpenJDK 11 Development Environment
  8. ..........
复制代码
主要列出了3个版本1.8、11、17,但是会有很长很长的记录
要注意这两个包的区别

java-11-openjdk-devel.x86_64 假如须要编译则安装这个(有java和javac命令)
java-11-openjdk.x86_64 只包含运行所须要的环境(没有javac命令)
1、安装

yum install -y java-11-openjdk-devel.x86_64
  1. yum install -y java-11-openjdk-devel.x86_64
  2. Last metadata expiration check: 1:52:13 ago on Wed 20 Mar 2024 01:55:06 PM CST.
  3. Dependencies resolved.
  4. =========================================================================================
  5. Package                   Arch   Version                          Repository       Size
  6. =========================================================================================
  7. Installing:
  8. java-11-openjdk-devel     x86_64 1:11.0.21.0.9-2.0.3.al8          alinux3-updates 3.4 M
  9. Installing dependencies:
  10. ModemManager-glib         x86_64 1.20.2-1.al8                     alinux3-updates 336 k
  11. adobe-source-code-pro-fonts
  12.                            noarch 2.030.1.050-12.al8.1             alinux3-updates 820 k
  13. adwaita-cursor-theme      noarch 40.1.1-3.al8                     alinux3-updates 656 k
  14. adwaita-icon-theme        noarch 40.1.1-3.al8                     alinux3-updates  11 M
  15. alsa-lib                  x86_64 1.2.8-3.al8                      alinux3-updates 496 k
  16. .....
  17. .....
  18. Transaction Summary
  19. =========================================================================================
  20. Install  150 Packages
  21. Total download size: 137 M
  22. Installed size: 511 M
  23. Downloading Packages:
  24. (1/150): jbigkit-libs-2.1-14.2.al8.x86_64.rpm            788 kB/s |  55 kB     00:00   
  25. (2/150): glib-networking-2.56.1-1.1.2.al8.x86_64.rpm     1.7 MB/s | 156 kB     00:00   
  26. (3/150): libXfixes-5.0.3-7.2.al8.x86_64.rpm              1.5 MB/s |  25 kB     00:00   
  27. (4/150): libXi-1.7.10-1.1.al8.x86_64.rpm                 2.9 MB/s |  49 kB     00:00   
  28. (5/150): lcms2-2.9-2.2.al8.x86_64.rpm                    2.9 MB/s | 165 kB     00:00   
  29. (6/150): libXinerama-1.1.4-1.2.al8.x86_64.rpm            979 kB/s |  16 kB     00:00
  30. .....
  31. Verifying        : webrtc-audio-processing-0.3.1-8.al8.x86_64                  147/150
  32.   Verifying        : xdg-desktop-portal-1.8.1-1.al8.x86_64                       148/150
  33.   Verifying        : xdg-desktop-portal-gtk-1.12.0-3.al8.x86_64                  149/150
  34.   Verifying        : xorg-x11-font-utils-1:7.5-41.0.2.al8.x86_64                 150/150
  35. post-transaction-actions: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
  36. Installed:
  37.   ModemManager-glib-1.20.2-1.al8.x86_64                                                  
  38.   abattis-cantarell-fonts-0.301-4.al8.noarch                                             
  39.   adobe-source-code-pro-fonts-2.030.1.050-12.al8.1.noarch   
  40.   .....
  41.   xml-common-0.6.3-50.1.al8.noarch                                                      
  42.   xorg-x11-font-utils-1:7.5-41.0.2.al8.x86_64                                            
  43.   xorg-x11-fonts-Type1-7.5-19.1.al8.noarch                                               
  44. Complete!
复制代码
2、验证是否安装成功

java -version
javac -version
这些命令将分别输出java和javac的版本号
  1. # java -version
  2. openjdk version "11.0.21" 2023-10-17 LTS
  3. OpenJDK Runtime Environment (Red_Hat-11.0.21.0.9-1) (build 11.0.21+9-LTS)
  4. OpenJDK 64-Bit Server VM (Red_Hat-11.0.21.0.9-1) (build 11.0.21+9-LTS, mixed mode, sharing)
复制代码
3、设置JAVA_HOME

不是必须的,根据须要和环境情况设置。
要设置环境变量就必须先知道 jdk的安装目录
可以使用which java命令找到它,
然后通过ls -l查看其链接或指向的目录来确定JDK的安装路径
  1. # which java
  2. /usr/bin/java
  3. # ls -l /usr/bin/java
  4. lrwxrwxrwx 1 root root 22 Mar 16 11:36 /usr/bin/java -> /etc/alternatives/java
  5. # ls -l /etc/alternatives/java
  6. lrwxrwxrwx 1 root root 66 Mar 16 11:36 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-2.0.3.al8.x86_64/bin/java
复制代码
jdk现实安装目录是/usr/lib/jvm/(JDK通常会被安装到/usr/java/或/usr/lib/jvm/目录下)
a、使用root权限编辑/etc/profile文件:

  1. # vi /etc/profile
复制代码
b、在文件的末端添加以下行来导出JAVA_HOME环境变量:

  1. export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-2.0.3.al8.x86_64  
  2. export PATH=$PATH:$JAVA_HOME/bin
复制代码
$PATHJAVA_HOME/bin是指把$JAVA_HOME放到$PATH环境变量的后面
c、为了使更改立即生效,你可以运行以下命令:

  1. # source /etc/profile
复制代码
附:卸载jdk

yum remove java-11-openjdk
这条命令会卸载 java-11-openjdk 软件包及其未被其他软件包依靠的组件。
  1. # yum remove java-11-openjdk
  2. Dependencies resolved.
  3. =========================================================================================
  4. Package                     Arch   Version                       Repository        Size
  5. =========================================================================================
  6. Removing:
  7. java-11-openjdk             x86_64 1:11.0.21.0.9-2.0.3.al8       @alinux3-updates 1.3 M
  8. Removing dependent packages:
  9. java-11-openjdk-devel       x86_64 1:11.0.21.0.9-2.0.3.al8       @alinux3-updates 5.3 M
  10. Removing unused dependencies:
  11. ModemManager-glib           x86_64 1.20.2-1.al8                  @alinux3-updates 1.5 M
  12. abattis-cantarell-fonts     noarch 0.301-4.al8                   @alinux3-updates 705 k
  13. adobe-source-code-pro-fonts noarch 2.030.1.050-12.al8.1          @alinux3-updates 1.8 M
  14. adwaita-cursor-theme        noarch 40.1.1-3.al8                  @alinux3-updates  12 M
  15. adwaita-icon-theme          noarch 40.1.1-3.al8                  @alinux3-updates  11 M
  16. ......
  17. ......
  18. Transaction Summary
  19. =========================================================================================
  20. Remove  150 Packages
  21. Freed space: 511 M
  22. Is this ok [y/N]: y
复制代码
输入y后
  1. Is this ok [y/N]: y
  2. Running transaction check
  3. Transaction check succeeded.
  4. Running transaction test
  5. Transaction test succeeded.
  6. Running transaction
  7.   Preparing        :                                                                 1/1
  8.   Running scriptlet: flatpak-1.10.7-1.al8.x86_64                                     1/1
  9.   Erasing          : flatpak-1.10.7-1.al8.x86_64                                   1/150
  10.   Running scriptlet: flatpak-1.10.7-1.al8.x86_64                                   1/150
  11.   Erasing          : librsvg2-2.50.7-1.0.2.al8.x86_64                              2/150
  12.   Erasing          : libappstream-glib-0.7.18-4.0.1.al8.x86_64                     3/150
  13.   Erasing          : java-11-openjdk-devel-1:11.0.21.0.9-2.0.3.al8.x86_64          4/150
  14.   Running scriptlet: java-11-openjdk-devel-1:11.0.21.0.9-2.0.3.al8.x86_64          4/150
  15.   ......
  16.   Verifying        : xorg-x11-font-utils-1:7.5-41.0.2.al8.x86_64                 149/150
  17.   Verifying        : xorg-x11-fonts-Type1-7.5-19.1.al8.noarch                    150/150
  18. Removed:
  19.   ModemManager-glib-1.20.2-1.al8.x86_64                                                  
  20.   abattis-cantarell-fonts-0.301-4.al8.noarch                                             
  21.   adobe-source-code-pro-fonts-2.030.1.050-12.al8.1.noarch
  22.   ......
  23.   Complete!
复制代码
然后验证一下
  1. # java -version
  2. -bash: /usr/bin/java: No such file or directory
  3. # cd /usr/lib/jvm
  4. -bash: cd: /usr/lib/jvm: No such file or directory
复制代码
可以看到连jdk安装目录都一并删除了
或者可以使用yum list installed | grep java命令来查找已安装的Java相干软件包
  1. # yum list installed |grep java
  2. java-11-openjdk.x86_64                             1:11.0.21.0.9-2.0.3.al8             @alinux3-updates
  3. java-11-openjdk-headless.x86_64                    1:11.0.21.0.9-2.0.3.al8             @alinux3-updates
  4. javapackages-filesystem.noarch                     5.3.1-7.3.al8                       @alinux3-updates
  5. tzdata-java.noarch           
复制代码
执行yum remove java-11-openjdk.x86_64,在卸载过程中,yum可能会扣问你是否确定要删除该软件包及其依靠项。请仔细阅读提示,并确认是否要继续卸载。
五、自界说安装

假如堆栈里没有我们想要的软件或者版本,这个时间就得换种方式了
1、安装jdk

i、先下载自己想要的openjdk

可以从清华大学这个镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/Adoptium/11/jdk/x64/
假设下载的是jdk-8u211-linux-x64.tar.gz,把它放到/usr/local目录下
ii、解压

  1. tar -zxvf jdk-8u211-linux-x64.tar.gz
复制代码
iii、设置环境变量

为了让系统可以大概找到JDK,你须要设置环境变量。编辑/etc/profile文件,在末端添加以下内容:
  1. export JAVA_HOME=/path/to/your/jdk  
  2. export PATH=$JAVA_HOME/bin:$PATH
复制代码
请将/path/to/your/jdk替换为你解压JDK的现实路径。
iv、重新加载profile文件

为了让新的环境变量生效,你须要重新加载/etc/profile文件。使用以下命令
  1. source /etc/profile
复制代码
查抄是否安装成功:输入java -version命令,假如返回JDK的版本信息,说明安装成功。
2、在线安装高版本nodejs

如今nodejs在yum堆栈里的最新版本是V14.21.3(有点低 _),而目前最新的版本已经是node-v20.11.1 LTS。假假想安装V16.x
i、添加NodeSource堆栈

可以运行以下命令来添加NodeSource堆栈
  1. curl -sL https://rpm.nodesource.com/setup_16.x | bash -
复制代码
这个命令的意思是下载一个脚本,然后静默执行这个脚本,这个脚本会把nodejs的堆栈设置为16版本
ii、安装刚刚设置的nodejs版本

安装的过程和之前yum安装无异
  1. yum install -y nodejs
复制代码
3、离线安装任意版本nodejs

i、下载指定版本(node-v12.22.12-linux-x64.tar.gz)

可以从这个镜像站下载:https://registry.npmmirror.com/binary.html?path=node/
ii、把文件移动到/usr/local目录

iii、解压

  1. tar -xzvf node-v12.22.12-linux-x64.tar.gz
复制代码
(假如是解压tar.xz,那么使用tar -xJvf node-xxx-x64.tar.xz)
iv、设置环境变量

通过编辑/etc/profile文件,添加Node.js的路径到环境变量中(在文件最后)。使用vi或你喜欢的文本编辑器打开该文件,并添加类似以下内容:
  1. export PATH=/usr/local/node-v12.22.12-linux-x64/bin:$PATH
复制代码
v、让profile文件生效

通过运行source /etc/profile
命令,使刚刚添加的环境变量立即生效。
vi、测试验证

  1. node -v
  2. v12.22.12
  3. npm -v
  4. 6.14.16
复制代码
附:第4步也可以使用软链接的方式

解压完成后,可能须要创建一个指向Node.js可执行文件的软链接,以便在全局范围内使用它。
这可以通过
ln -s /usr/local/node-vXX.XX.XX-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node-vXX.XX.XX-linux-x64/bin/npm /usr/local/bin/npm
(此中vXX.XX.XX应替换为你的Node.js版本号)这两个命令完成。[听说最后的node和npm可以省去]
ls -l 软链接 可以查看软链接的指向
回复

使用道具 举报

返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录

QQ|手机版|qidao123.com IT社区;IT企服评测▪应用市场 ( 浙ICP备20004199|浙ICP备20004199号 )|网站地图

GMT+8, 2026-10-17 03:45 , Processed in 0.035467 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表