Rpath
ಕಂಪ್ಯೂಟಿಂಗ್ನಲ್ಲಿ, rpath ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಕಡತ ಅಥವಾ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ಹಾರ್ಡ್-ಕೋಡೆಡ್ ರನ್-ಟೈಮ್ ಹುಡುಕಾಟ ಮಾರ್ಗವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಡೈನಾಮಿಕ್ ಲಿಂಕಿಂಗ್ ಲೋಡರ್ಗಳು ಅಗತ್ಯವಿರುವ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಹುಡುಕಲು ಆರ್ಪಥ್ ಅನ್ನು ಬಳಸುತ್ತವೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಇದು ಹಂಚಿಕೊಂಡ ಗ್ರಂಥಾಲಯಗಳ ಮಾರ್ಗವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ (ಅಥವಾ ಇನ್ನೊಂದು ಹಂಚಿಕೊಂಡ ಗ್ರಂಥಾಲಯ) ಹೆಡರ್ಗೆ ಎನ್ಕೋಡ್ ಮಾಡುತ್ತದೆ. ಈ ಆರ್ಪಿಎಟಿಎಚ್ ಹೆಡರ್ ಮೌಲ್ಯವು (ಇದನ್ನು ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ ಮತ್ತು ಲಿಂಕ್ ಮಾಡಬಹುದಾದ ಫಾರ್ಮ್ಯಾಟ್ ಹೆಡರ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್ಗಳಲ್ಲಿ ಹೆಸರಿಸಲಾಗಿದೆ) ಸಿಸ್ಟಮ್ ಡೀಫಾಲ್ಟ್ ಡೈನಾಮಿಕ್ ಲಿಂಕಿಂಗ್ ಸರ್ಚ್ ಪಾತ್ಗಳನ್ನು ಅತಿಕ್ರಮಿಸಬಹುದು ಅಥವಾ ಪೂರಕಗೊಳಿಸಬಹುದು. ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಅಥವಾ ಹಂಚಿಕೊಳ್ಳಬಹುದಾದ ಗ್ರಂಥಾಲಯದ ಆರ್ಪಥ್ ಇಎಲ್ಎಫ್ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಅಥವಾ ಹಂಚಿಕೊಳ್ಳಬಹುದಾದ ಗ್ರಂಥಾಲಯಗಳ. ಡೈನಾಮಿಕ್ ವಿಭಾಗದಲ್ಲಿ ಡಿಟಿ _ ಆರ್ಪಿಎಟಿಎಚ್ ಪ್ರಕಾರದೊಂದಿಗೆ ಡಿಟಿ _ ಆರ್ಪಿಎಟಿಎಚ್ ಗುಣಲಕ್ಷಣ ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತದೆ. ಅದನ್ನು ಲಿಂಕ್ನ ಸಮಯದಲ್ಲಿ ಲಿಂಕರ್ ಅಲ್ಲಿ ಸಂಗ್ರಹಿಸಬಹುದು. ಚರ್ಪಥ್ ಮತ್ತು ಪ್ಯಾಚೆಲ್ಫ್ನಂತಹ ಸಾಧನಗಳು ನಂತರ ನಮೂದನ್ನು ರಚಿಸಬಹುದು ಅಥವಾ ಮಾರ್ಪಡಿಸಬಹುದು. ಡೈನಾಮಿಕ್ ಲಿಂಕರ್ನಿಂದ ಡಿಟಿ _ ಆರ್ಪಿಎಟಿಎಚ್ ನಮೂದಿನ ಬಳಕೆ ಇಎಲ್ಎಫ್ನ ವಿವಿಧ ಡೈನಾಮಿಕ್ ಲಿಂಕರ್ಗಳು ಡಿಟಿ _ ಆರ್ಪಿಎಟಿಎಚ್ ಗುಣಲಕ್ಷಣದ ಬಳಕೆಯನ್ನು ವಿವಿಧ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತವೆ. ಗ್ನು ld.so ಗ್ನು ಸಿ ಲೈಬ್ರರಿಯ ಡೈನಾಮಿಕ್ ಲಿಂಕರ್ ಈ ಕೆಳಗಿನ ಸ್ಥಳಗಳಲ್ಲಿ ಹಂಚಿಕೆಯ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಹುಡುಕುತ್ತದೆಃ ಬೈನರಿಯ ಡಿಟಿ _ ಆರ್ಪಿಎಟಿಎಚ್ ಡೈನಾಮಿಕ್ ವಿಭಾಗದ ಗುಣಲಕ್ಷಣದಲ್ಲಿ (ಕೊಲೊನ್-ಬೇರ್ಪಟ್ಟ) ಮಾರ್ಗಗಳು ಇದ್ದರೆ ಮತ್ತು ಡಿಟಿ _ ರುನ್ಪಥ್ ಗುಣಲಕ್ಷಣವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ LD _ LIBRARY _ PATH ನಲ್ಲಿರುವ (ಕೊಲೊನ್-ಬೇರ್ಪಡಿಸಿದ) ಮಾರ್ಗಗಳು, ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಮಾರ್ಗವು ಸೆಟುಯಿಡ್/ಸೆಟ್ಗಿಡ್ ಬೈನರಿ ಆಗಿರದಿದ್ದರೆ, ಆ ಸಂದರ್ಭದಲ್ಲಿ ಅದನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. ಡೈನಾಮಿಕ್ ಲಿಂಕರ್ಗೆ-- ಲೈಬ್ರರಿ-ಪಾತ್ (ಉದಾ. ಲೈಬ್ರರಿ-ಪಾತ್) ಆಯ್ಕೆಯೊಂದಿಗೆ ಕರೆ ಮಾಡುವ ಮೂಲಕ LD _ LIBRARY _ PATH ಅನ್ನು ಅತಿಕ್ರಮಿಸಬಹುದು. / lib/ld-linux.so.2-- ಲೈಬ್ರರಿ-ಪಾತ್ $ಹೋಮ್/ಮೈಲಿಬ್ಸ್ ಮೈಪ್ರೋಗ್ರಾಮ್). ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ ಬೈನರಿಯ DT _ RUNPATH ಡೈನಾಮಿಕ್ ವಿಭಾಗದ ಗುಣಲಕ್ಷಣದಲ್ಲಿರುವ (ಕೊಲೊನ್-ಬೇರ್ಪಟ್ಟ) ಮಾರ್ಗಗಳು. ಎಲ್. ಡಿ. ಕಾನ್ಫಿಗ್ ಕ್ಯಾಶ್ ಕಡತದ ಆಧಾರದ ಮೇಲೆ ಹುಡುಕಿ (ಸಾಮಾನ್ಯವಾಗಿ/ಇತ್ಯಾದಿ/ಎಲ್. ಡಿ. ಸೋ. ಕ್ಯಾಶ್ ನಲ್ಲಿದೆ) ಇದು ಈ ಹಿಂದೆ ವರ್ಧಿತ ಗ್ರಂಥಾಲಯ ಮಾರ್ಗದಲ್ಲಿ ಕಂಡುಬರುವ ಅಭ್ಯರ್ಥಿಯ ಗ್ರಂಥಾಲಯಗಳ ಸಂಗ್ರಹಿತ ಪಟ್ಟಿಯನ್ನು ಒಳಗೊಂಡಿದೆ (/ಇತ್ಯಾದಿ/ಎಲ್. ಡಿ. ಸೋ. ಕಾನ್ಫ್ ನಿಂದ ಹೊಂದಿಸಲಾಗಿದೆ). ಆದಾಗ್ಯೂ, ಬೈನರಿ ಅನ್ನು-z ನೋಡೆಫಾಲ್ಟ್ಲಿಬ್ ಲಿಂಕರ್ ಆಯ್ಕೆಯೊಂದಿಗೆ ಜೋಡಿಸಿದ್ದರೆ, ಡೀಫಾಲ್ಟ್ ಲೈಬ್ರರಿ ಮಾರ್ಗಗಳಲ್ಲಿನ ಲೈಬ್ರರಿಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ. ವಿಶ್ವಾಸಾರ್ಹ ಡೀಫಾಲ್ಟ್ ಪಥದಲ್ಲಿ/lib, ಮತ್ತು ನಂತರ/usr/lib. ಬೈನರಿ ಅನ್ನು-z ನೋಡೆಫಾಲ್ಟ್ಲಿಬ್ ಲಿಂಕರ್ ಆಯ್ಕೆಯೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಿದ್ದರೆ, ಈ ಹಂತವನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ. ಈ ಎಲ್ಲಾ ಸ್ಥಳಗಳಲ್ಲಿ ಶೇರ್ಡ್ ಲೈಬ್ರರಿಯನ್ನು ಕಂಡುಹಿಡಿಯಲು ವಿಫಲವಾದರೆ "ಶೇರ್ಡ್ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲಃ ಅಂತಹ ಫೈಲ್ ಅಥವಾ ಡೈರೆಕ್ಟರಿ ಇಲ್ಲ" ಎಂಬ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. ಟಿಪ್ಪಣಿಗಳುಃ ರೀಡೆಲ್ಫ್-d <ಬೈನರಿ _ ನೇಮ್> | ಗ್ರೆಪ್ 'ಆರ್. * PATH 'ಬೈನರಿ ಕಡತದ RPATH ಅಥವಾ RUNPATH ಅನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಜಿ. ಸಿ. ಸಿ. ಯಲ್ಲಿ, ಉದಾಹರಣೆಗೆ, ಆರ್. ಪಿ. ಎ. ಟಿ. ಎಚ್. ಅನ್ನು-ಡಬ್ಲ್ಯೂ. ಎಲ್,-ಆರ್ಪಥ್,/ಕಸ್ಟಮ್/ಆರ್ಪಥ್/ನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಡೈನಾಮಿಕ್ ಲಿಂಕರ್ನ ಇನ್ಹಿಬಿಟ್-ಆರ್ಪಥ್ ಲಿಸ್ಟ್ ಆಯ್ಕೆಯು ಲಿಸ್ಟ್ನಲ್ಲಿರುವ ಆಬ್ಜೆಕ್ಟ್ ಹೆಸರುಗಳ ಡಿಟಿ _ ಆರ್ಪಥ್ ಮತ್ತು ಡಿಟಿ _ ರುನ್ಪಥ್ ಗುಣಲಕ್ಷಣಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ಸೂಚಿಸುತ್ತದೆ. LIST ನಲ್ಲಿ ಮುಖ್ಯ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು, ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ನೀಡಿ. ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ LD _ PRELOAD ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಗ್ರಂಥಾಲಯಗಳು ಮತ್ತು ನಂತರ/et/ld. so. preಲೋಡಿನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾದವುಗಳನ್ನು ಹುಡುಕಾಟ ಪ್ರಾರಂಭವಾಗುವ ಮೊದಲು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ವಿನಂತಿಸಿದ ಗ್ರಂಥಾಲಯದ ಕೆಲವು (ಅಥವಾ ಎಲ್ಲಾ) ಸಾಮಾನ್ಯ ಕಾರ್ಯಗಳನ್ನು ಬದಲಿಸಲು ಪೂರ್ವ ಲೋಡ್ ಅನ್ನು ಬಳಸಬಹುದು, ಅಥವಾ ಇಲ್ಲದಿದ್ದರೆ ಕಂಡುಬರದ ಗ್ರಂಥಾಲಯವನ್ನು ಒದಗಿಸಲು ಇದನ್ನು ಸರಳವಾಗಿ ಬಳಸಬಹುದು. ಸ್ಥಿರ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತದೆ ಮತ್ತು ಲಿಂಕ್ ಸಮಯದಲ್ಲಿ ಇಎಲ್ಎಫ್ ಕಡತಕ್ಕೆ ಲಿಂಕ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ರನ್ ಟೈಮ್ನಲ್ಲಿ ಹುಡುಕಲಾಗುವುದಿಲ್ಲ. ಗ್ನೂ ಲಿಂಕರ್ (ಗ್ನೂ ಎಲ್ಡಿ) "ಹೊಸ-ಟ್ಯಾಗ್ಗಳು" ಎಂದು ಕರೆಯುವ ಒಂದು ವೈಶಿಷ್ಟ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, ಇದನ್ನು LD _ LIBRARY _ PATH ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗಿಂತ ಕಡಿಮೆ ಆದ್ಯತೆಯನ್ನು ಹೊಂದಿರುವ rpath ಅನ್ನು ಸೇರಿಸಲು ಬಳಸಬಹುದು. ಹೊಸ-ಡಿ ಟ್ಯಾಗ್ಗಳ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಲಿಂಕರ್ನಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ (-- ಸಕ್ರಿಯಗೊಳಿಸಿ-ಹೊಸ-ಡಿ ಟ್ಯಾಗ್ಗಳು), ಜಿ. ಎನ್. ಯು. ಎಲ್. ಡಿ, ಡಿ. ಟಿ. ಆರ್. ಪಿ. ಎಥ್ ಗುಣಲಕ್ಷಣವನ್ನು ಹೊಂದಿಸುವುದರ ಜೊತೆಗೆ, ಡಿ. ಟಿ. ಆರ್. ಯು. ಎನ್. ಪಿ. ಎಥ್ ಗುಣಲಕ್ಷಣವನ್ನು ಅದೇ ಸ್ಟ್ರಿಂಗ್ಗೆ ಹೊಂದಿಸುತ್ತದೆ. ಚಾಲನೆಯಲ್ಲಿರುವ ಸಮಯದಲ್ಲಿ, ಡೈನಾಮಿಕ್ ಲಿಂಕರ್ ಒಂದು DT _ RUNPATH ಗುಣಲಕ್ಷಣವನ್ನು ಕಂಡುಕೊಂಡರೆ, ಅದು DT _ RPATH ಗುಣಲಕ್ಷಣದ ಮೌಲ್ಯವನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ, ಇದರ ಪರಿಣಾಮವಾಗಿ LD _ LIBRARY _ PATH ಅನ್ನು ಮೊದಲು ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ ಮತ್ತು DT _ RUNPATH ಗುಣಲಕ್ಷಣದಲ್ಲಿನ ಮಾರ್ಗಗಳನ್ನು ನಂತರ ಮಾತ್ರ ಹುಡುಕಲಾಗುತ್ತದೆ. ಡಿ. ಟಿ. ಆರ್. ಪಿ. ಎ. ಟಿ. ಎಚ್. ಗಿಂತ ಭಿನ್ನವಾಗಿ, ಎಲ್. ಡಿ. ಡೈನಾಮಿಕ್ ಲಿಂಕರ್ ಡಿ. ಟಿ. ಆರ್. ಯು. ಎನ್. ಪಿ. ಎ. ಟಿ. ಎಚ್. ಸ್ಥಳಗಳನ್ನು ಪರಿವರ್ತಕ ಅವಲಂಬನೆಗಳಿಗಾಗಿ ಹುಡುಕುವುದಿಲ್ಲ. ಲಿಂಕರ್ಗೆ-rpath ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಬದಲು, ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ LD _ RUN _ PATH ಅನ್ನು ಅದೇ ಪರಿಣಾಮಕ್ಕೆ ಹೊಂದಿಸಬಹುದು. ಸೋಲಾರಿಸ್ನ ಡೈನಾಮಿಕ್ ಲಿಂಕರ್, ನಿರ್ದಿಷ್ಟವಾಗಿ/lib/ld.so ಸನ್ಓಎಸ್ 5.8 ಮತ್ತು ಅಂತಹುದೇ ವ್ಯವಸ್ಥೆಗಳು ಡಿಟಿ _ ಆರ್ಪಿಎಟಿಎಚ್ ಗುಣಲಕ್ಷಣವನ್ನು ನೋಡುವ ಮೊದಲು ಎಲ್ಡಿ _ ಲೈಬ್ರರಿ _ ಪಿಎಟಿಎಚ್ ವೇರಿಯೇಬಲ್ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕೋಶಗಳಲ್ಲಿನ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಹುಡುಕುತ್ತದೆ. ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿ ಲೋಡಿಂಗ್ ಅನ್ನು ಪರಿಚಯಿಸಿದ ಮೊದಲನೆಯದು ಸನ್ ಮೈಕ್ರೋಸಿಸ್ಟಮ್ಸ್. ಸನ್ ನಂತರ ಆರ್ಪಥ್ ಆಯ್ಕೆಯನ್ನು ಎಲ್. ಡಿ. ಗೆ ಸೇರಿಸಿದರು ಮತ್ತು ಅದನ್ನು ಹೆಚ್ಚುವರಿ ಭದ್ರತಾ ವೈಶಿಷ್ಟ್ಯವಾಗಿ ಅಗತ್ಯ ಗ್ರಂಥಾಲಯಗಳಲ್ಲಿ ಬಳಸಿದರು. ಸನ್-ಶೈಲಿಯ ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿಗಳನ್ನು ಬೆಂಬಲಿಸಲು ಗ್ನೂ ಎಲ್. ಡಿ ಅದೇ ರೀತಿ ಮಾಡಿದೆ. ಉದಾಹರಣೆ $cc-ಶೇರ್ಡ್-Wl,-ಸೊನೇಮ್, termcap.so. 4,-rpath,/lib/termcap.so. 4-o termcap.so. 4 $objdump-x termcap.so. 4 Need libc.so.6 SONAME termcap.so. 4 RPATH/lib/termcap.so. 4 ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ಗ್ನೂ ಅಥವಾ ಸನ್ ld (ld.so) ಕಡತವು termcap.so/lib/ನಲ್ಲಿಲ್ಲದಿದ್ದರೆ ಮತ್ತು ಅದನ್ನು termcap.so. 4 ಎಂದು ಹೆಸರಿಸದ ಹೊರತು ಅಗತ್ಯವಿರುವ ಪ್ರೋಗ್ರಾಂಗಾಗಿ ಟರ್ಮ್ಕ್ಯಾಪ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ನಿರಾಕರಿಸುತ್ತದೆ. ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. / lib/termcap.so. 4 ಅನ್ನು ನಿವಾರಿಸಲು ತೆಗೆದುಹಾಕಿದರೆ, ಶೆಲ್ ಸಾಯುತ್ತದೆ (ಒಬ್ಬರು ಪರ್ಯಾಯ termcap.so ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ ಮತ್ತು ಪಾರುಗಾಣಿಕಾ ಡಿಸ್ಕ್ ಅಗತ್ಯವಿರುತ್ತದೆ, ಆದರೆ ಹೊಸ termcap.so. 4 RPATH/lib ಅನ್ನು ಹೊಂದಿದ್ದರೆ, ld.so ಅದನ್ನು ಲೋಡ್ ಮಾಡಲು ಬಳಸಲು ನಿರಾಕರಿಸುತ್ತದೆ/lib/termcap.so. 4). ಆದರೆ ಮತ್ತೊಂದು ಸಮಸ್ಯೆ ಇದೆಃ ಕೆಲವು ಲಿಬ್ಗಳನ್ನು/ಲಿಬ್ನಲ್ಲಿ ನಕಲಿಸುವುದು ಸುರಕ್ಷಿತವಲ್ಲ ಏಕೆಂದರೆ ಅವು "ಬಳಕೆಯಲ್ಲಿವೆ", ಇದು ಲಿಬ್ ಪರೀಕ್ಷಕನಾಗುವುದನ್ನು ಮತ್ತಷ್ಟು ನಿರ್ಬಂಧಿಸುತ್ತದೆ. ಇದಲ್ಲದೆ, ವರ್ಸಸ್ ಎಂದರೆ ಮೂಲಭೂತ termcap.so ಅಗತ್ಯವಿರುವ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ನಿರಾಕರಿಸಲಾಗಿದೆ ಏಕೆಂದರೆ ಮೇಲಿನ ಲೈಬ್ರರಿಯು ಮೂಲಭೂತ ಬೆಂಬಲಕ್ಕೆ ABI ಪ್ರವೇಶವನ್ನು ಅಳಿಸಿದೆ. $cc-ಶೇರ್ಡ್-Wl,-ಸೋನೆಮ್, lib termcap.so.2-o lib termcap.so.2 $ಒಬ್ಜ್ಡಂಪ್-x termcap.so.2 ನೀಡೆಡ್ libc.so.6 ಸೋನೆಮ್ termcap.so.2 ಓಲ್ಡ್ ಲಿನಕ್ಸ್/ಸನ್ ಅನ್ನು ಮೇಲೆ ಬಳಸಲಾಗಿದೆ, ಇದು ಬಳಕೆದಾರರಿಗೆ ಯಾವುದೇ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಅವರು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಯಾವುದೇ termcap.so ಅನ್ನು ಬಳಸಲು ನಿರ್ದೇಶಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಅಥವಾ ld.so.conf ನಂತಹ ಹುಡುಕಾಟ ನಿಯಮಗಳನ್ನು ಬಳಸಿಕೊಂಡು/usr/ಲೋಕಲ್/lib (n) ನಲ್ಲಿ ಏನು ಕಂಡುಬರುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಗ್ನೂ ಎಲ್ ಡಿ ಯಾವಾಗಲೂ/lib ಅಥವಾ/usr/lib ಅನ್ನು ಬಳಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಮೊದಲು/lib/ಟರ್ಮ್ಕ್ಯಾಪ್. ಅನ್ನು/usr/ಸ್ಥಾನೀಯ಼/lib ಗೆ ಸ್ಥಳಾಂತರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ld.so.conf ನಲ್ಲಿ ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ, ಇದು ಚಲಿಸುವ lib ಗಳನ್ನು ಮತ್ತು ld.so.conf ಅನ್ನು ಬಳಸಲು ಅಥವಾ ಬಳಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಲಭ್ಯವಿರುವ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬಳಸಲು "" ಅನ್ನು ಬಳಸುವುದು ಮತ್ತು ಪ್ರೋಗ್ರಾಂಗಳ ಚೆಕ್ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿರುವುದು (ಎಲ್ಲಾ ಲಿಬ್ಗಳು ಅದನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ) ಆದ್ಯತೆಯ ಅಭ್ಯಾಸವಾಗಿದೆ, ಆದರೆ ನಿಧಾನಗತಿಯ ಕಂಪ್ಯೂಟಿಂಗ್ ವೇಗ ಮತ್ತು ಸರಿಯಾಗಿ ಕೋಡ್ ಮಾಡಲು ಸಮಯದ ಕೊರತೆಯಿಂದಾಗಿ ಹಳೆಯ ಬಿಡುಗಡೆಗಳಲ್ಲಿ ಇದನ್ನು ಹೆಚ್ಚಾಗಿ ಬಿಟ್ಟುಬಿಡಲಾಗಿತ್ತು. ಇದನ್ನು ಹೇಳುವುದಾದರೆ, ಈ ರೀತಿಯ ವಿಷಯವನ್ನು ಅವಲಂಬಿಸಲು ನಿರ್ಧರಿಸುವ ಮೊದಲು ನಿರ್ದಿಷ್ಟ ವೇದಿಕೆಯಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ಪರೀಕ್ಷಿಸಿ. ಇಂದಿನ ಬಿಡುಗಡೆ ನಿರ್ವಾಹಕರು ಹಿಂದಿನ ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ಅಥವಾ ದಾಖಲಾತಿಗಳನ್ನು ಗೌರವಿಸುವ ಭರವಸೆ ಹೊಂದಿಲ್ಲ. ಕೆಲವು ಯುನಿಕ್ಸ್ ಪ್ರಭೇದಗಳು ಸಂಪೂರ್ಣವಾಗಿ ವಿಭಿನ್ನ ರೀತಿಯಲ್ಲಿ ಜೋಡಣೆ ಮತ್ತು ಲೋಡ್ ಮಾಡುತ್ತವೆ. ನಿರ್ದಿಷ್ಟ ವಿತರಣೆಯೊಂದಿಗೆ ರವಾನೆಯಾಗುವ ಎಲ್. ಡಿ. ಗೆ ಆರ್ಪಥ್ ನಿರ್ದಿಷ್ಟವಾಗಿದೆ. ಕೊನೆಯದಾಗಿ, ಹೇಳಿದಂತೆ, ಆರ್ಪಥ್ ಒಂದು ಭದ್ರತಾ ಲಕ್ಷಣವಾಗಿದೆ, ಆದಾಗ್ಯೂ "ಕಡ್ಡಾಯ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ" (ಎಂ. ಎ. ಸಿ) ಮತ್ತು ಇತರ ತಂತ್ರಗಳು ಲಿಬ್ ಓದುವಿಕೆ ಮತ್ತು ಬರವಣಿಗೆಯನ್ನು ನಿಯಂತ್ರಿಸಲು ಆರ್ಪಥ್ಗಿಂತ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಬಹುದು ಅಥವಾ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಬಹುದು. ಇಂದಿನ ಕಂಪೈಲರ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಆರ್ಪಥ್ ಅನ್ನು ನಿಯಂತ್ರಿಸುವುದು ದೀರ್ಘ ಮತ್ತು ಸುರುಳಿಯಾಕಾರದ ಮೇಕ್ (1) ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಅನ್ನು ನೀಡಿದರೆ ಬಹುತೇಕ ಅಸಾಧ್ಯವಾಗಿದೆ. ಇದಕ್ಕಿಂತಲೂ ಕೆಟ್ಟದಾಗಿ, ಕೆಲವು ಬಿಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಅದನ್ನು ಒಂದು ಆಯ್ಕೆಯಾಗಿ ಪ್ರಸ್ತುತಪಡಿಸಿದರೂ-- ಡಿಸೇಬಲ್-ಆರ್ಪಥ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತವೆ. ಕಂಪೈಲ್ ಮಾಡಲು ಪ್ರತಿ ಬೆಸ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ಬಿಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಅನ್ನು ಸರಿಪಡಿಸಲು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ನಿರಾಶಾದಾಯಕವಾಗಿರುತ್ತದೆ ಮತ್ತು ಬಹುಶಃ ಅಸಾಧ್ಯವಾಗಿದೆ. ಒಂದು ಸರಳವಾದ sh (1) "ಹೊದಿಕೆ" ಯು ನಿಜವಾದ ld ಅನ್ನು ld.bin ಎಂದು ಕರೆಯಬಹುದು. ಎಲ್ಡಿಯನ್ನು ಆಹ್ವಾನಿಸುವ ಮೊದಲು ಹೊದಿಕೆಯು ಇನ್/ಔಟ್ ಆಯ್ಕೆಯನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಬಹುದು. ಆದಾಗ್ಯೂ, ಕೆಲವು ಬಿಲ್ಡ್ಗಳು rpath-ಲಿಂಕ್ ಬದಲಿಗೆ rpath ಅನ್ನು ತಪ್ಪಾಗಿ ಬಳಸುತ್ತವೆ ಅಥವಾ ಬಿಲ್ಡ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಉಳಿಯುವ ಮಧ್ಯಂತರ ಉತ್ಪನ್ನಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತವೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ-ಹೀಗಾಗಿ ಅಂತಿಮ ಉತ್ಪನ್ನದಲ್ಲಿ rpath ಅನ್ನು ಹಿಂದುಳಿದ ಬೇಡಿಕೆ ಮಾಡುತ್ತದೆ, ಇದು "rpath ಎಂದರೇನು" ಎಂಬ ಹೊಸ ಸಮಸ್ಯೆಯಾಗಿದೆ. ಭದ್ರತಾ ಪರಿಗಣನೆಗಳು ಆರ್ಪಥ್ ಮತ್ತು ರನ್ಪಥ್ನ ಬಳಕೆಯು ಭದ್ರತಾ ಅಪಾಯಗಳನ್ನು ಉಂಟುಮಾಡಬಹುದು, ಅಲ್ಲಿ ಅನ್ವಯಿಸಲಾದ ಮೌಲ್ಯವು ಆಕ್ರಮಣಕಾರರ ನಿಯಂತ್ರಣದಲ್ಲಿರುವ ಕೋಶಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಮೌಲ್ಯವು ಆಕ್ರಮಣಕಾರರನ್ನು ಬರೆಯಬಹುದಾದ ಸ್ಥಳವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಉಲ್ಲೇಖಿಸುವ ಸಂದರ್ಭಗಳನ್ನು ಇದು ಒಳಗೊಂಡಿರಬಹುದು, ಆದರೆ ಅದರ ಉಪಸ್ಥಿತಿಯ ಮೂಲಕ ಸಾಪೇಕ್ಷ ಮಾರ್ಗವನ್ನು ಬಳಸುವ ನಿದರ್ಶನಗಳನ್ನೂ ಸಹ ಇದು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಅಥವಾ., $ORIGIN ಇತ್ಯಾದಿಗಳ ಮೂಲಕ ಅಥವಾ ಒಂದು ಕೋಶದ ಹೇಳಿಕೆಯನ್ನು ಜನನಿಬಿಡವಾಗಿ ಬಿಡಲಾಗುತ್ತದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ, ಇದು ಅಸುರಕ್ಷಿತ ಮಾರ್ಗವನ್ನು ಬಳಸುವ ಸೆಟ್ಯುಐಡಿ ಬೈನರಿಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಆಕ್ರಮಣಕಾರರ ನಿಯಂತ್ರಣದಲ್ಲಿರುವ ಒಂದು ಅಥವಾ ಇತರ ಕೋಶಗಳಿಂದ ದುರುದ್ದೇಶಪೂರಿತ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಬೈನರಿಯನ್ನು ಮೋಸಗೊಳಿಸಲು ಇದನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು. ಬಾಹ್ಯ ಕೊಂಡಿಗಳು chrpath-ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಸಾಧನದ DT _ RPATH ಗುಣಲಕ್ಷಣವನ್ನು ಬದಲಾಯಿಸುವ ಮತ್ತು ಅದನ್ನು DT _ RUNPATH ಗುಣಲಕ್ಷಣವಾಗಿ ಪರಿವರ್ತಿಸುವ ಸಾಧನ ಫ್ರೀಬಿಎಸ್ಡಿ ಡೆವೆಲ್/chrpath ಪೋರ್ಟ್-ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ELF ಬೈನರಿಗಳಲ್ಲಿ DT _ RPATH ಅನ್ನು ಮಾರ್ಪಡಿಸುವ ಸಾಧನ ಪ್ಯಾಚ್ಇಎಲ್ಎಫ್-ಡೈನಾಮಿಕ್ ಲಿಂಕರ್ ಮತ್ತು ELF ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಸಾಧನಗಳ DT _ RUNPATH ಗುಣಲಕ್ಷಣವನ್ನು ಮಾರ್ಪಡಿಸುವ ಒಂದು ಸಣ್ಣ ಉಪಯುಕ್ತತೆ. - ಡಿಟಿ _ ಆರ್ಪಿಎಟಿಎಚ್ ಕಂಪ್ಯೂಟರ್ ಲೈಬ್ರರಿಗಳ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ತಂತ್ರಜ್ಞಾನದ ಮೇಲಿನ ದಾಳಿಗಳು ಸೇರಿದಂತೆ ರನ್-ಟೈಮ್ ಲಿಂಕರ್ನ ಮೇಲೆ ದಾಳಿ ಮಾಡುವ ಕಾಗದ