เป็นไปได้ที่จะใช้รอบต่อนาทีโดยไม่ต้องเข้าถึงราก?
เป็นไปได้ที่จะใช้รอบต่อนาทีโดยไม่ต้องเข้าถึงราก?
คำตอบ:
ขึ้นอยู่กับเนื้อหาของแพ็คเกจที่คุณสามารถแยกเนื้อหาของรอบต่อนาทีและใช้มันจากที่ใดก็ได้ภายในไดเรกทอรีบ้านของคุณ แม้ว่าจะไม่ถูกตั้งค่าสถานะเป็น relocatable หากไบนารีในแพ็คเกจมีเส้นทางแบบฮาร์ดโค้ดหรือหากแอปพลิเคชันต้องการการเข้าถึงรูทอาจเป็นไปไม่ได้
มีคำตอบมากมายที่บอกถึงแพ็คเกจที่เปลี่ยนตำแหน่งได้ ตัวเลือกการย้ายใหม่ใช้สำหรับผู้ดูแลระบบในการเลือกปลายทาง (ทำให้ปลายทางเป็น / opt แทน / usr / local เป็นต้น) และไม่ได้รับอนุญาตจากผู้ใช้
ในขณะที่อาจเป็นไปได้ที่จะแก้ไขปัญหาการอนุญาตโดยใช้วิธีนี้ปัญหา MAJOR คือเมื่อคุณทำการดำเนินการ rpm มันกำลังแก้ไขฐานข้อมูล /var/lib/rpm/__db.* ที่เป็นเจ้าของ root: root ดังนั้นอย่างที่ JPerkSter พูดว่า "คำตอบสั้น ๆ = ไม่" การตั้งค่า sudo เพื่อให้ความต้องการที่เฉพาะเจาะจงน่าจะเป็นทางออกที่ดีที่สุด
พิจารณาทั้งหมดข้างต้นเกี่ยวกับ relocatable สร้างคุณอาจจะลองทำตามคำแนะนำที่ระบุไว้ที่นี่
rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
--relocate /usr=/home/username/local --nodeps -ivh package.rpm
ข้อมูลจำเพาะ RPM มีตัวเลือกที่เรียกว่า 'relocatable' หากรอบต่อนาทีถูกสร้างขึ้นพร้อม relocatability เปิดอยู่นั้นสามารถติดตั้งได้ในไดเรกทอรีที่ผู้ใช้ระบุโดยใช้ตัวเลือก '--prefix' ดังนั้นจึงสามารถติดตั้งรอบต่อนาทีในเครื่องโดยไม่ต้องใช้ superuser ตราบใดที่ตรงตามเงื่อนไขสองข้อ:
แต่โดยทั่วไปคุณไม่จำเป็นต้องมีการเข้าถึง superuser เพื่อติดตั้ง RPM ในขณะที่มีตัวเลือก relocatable อยู่ฉันแทบไม่เคยเห็นแพคเกจที่สร้างขึ้นเพื่อรองรับ
บางแพ็กเกจสามารถย้ายตำแหน่งได้ดังนั้นจึงอาจทำงานได้ดีโดยไม่มีรูทเพียงระบุคำนำหน้าเมื่อติดตั้ง: rpm -i my.rpm --prefix = / my / home / folder
หากแพ็กเกจไม่สามารถย้ายตำแหน่งได้คุณยังสามารถแตกไฟล์จาก RPM และลองเรียกใช้ คุณสามารถแตกไฟล์ RPM โดยใช้ตัวอย่าง:
คัดลอกไฟล์ลงใน ~ / โฟลเดอร์ของคุณเพิ่มไลบรารีการพึ่งพาเพิ่มเติมใด ๆ และหวังว่าจะดีที่สุด ไม่รับประกัน แต่คุณอาจได้รับแพ็คเกจที่ไม่สามารถเปลี่ยนตำแหน่งได้ซึ่งทำงานในลักษณะนี้
คุณสามารถบังคับให้ติดตั้งภายใต้ไดเรกทอรีอื่นโดยใช้ dbpath ที่แตกต่างกัน นอกจากนี้คุณไม่ควรเรียกใช้สคริปต์ใด ๆ โดยตรงโดยไม่ตรวจสอบสคริปต์
สิ่งนี้จะทำให้รอบต่อนาทีภายใต้ไดเรกทอรีปัจจุบันและแยกสคริปต์เพื่อให้คุณสามารถแก้ไขและเรียกใช้พวกเขาหากจำเป็น
rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm
rpm --query --scripts -p package.rpm > scripts.txt
ใช่ แต่คุณอาจไม่ต้องการ ฉันใช้หุ่นกระบอกแบบกำหนดเองและแพ็กเกจ rpm เพื่อดูแลซอฟต์แวร์ในกลุ่มการคำนวณที่ฉันไม่สามารถเข้าถึงรูตได้ ในทางทฤษฎีมันง่ายเหมือน
rpm --inittb --root /foo
rpm --dbpath /foo -i bar.rpm
อย่างไรก็ตามมีพฤติกรรมแปลก ๆ ในการทำงานของ EL4, EL5 และ EL6 ดังนั้นคุณจะต้องมีขั้นตอนและตัวเลือกที่แตกต่างกันสำหรับแต่ละคน ฉันไม่มีข้อมูลนั้นมีประโยชน์อีกต่อไป นิสัยใจคอเหล่านั้นรวมถึงปัญหาฐานข้อมูล RPM บ่อยครั้ง (อาจเป็นเพราะ NFS) ทำให้ฉันเสียใจที่ใช้ rpm
คุณสามารถสร้าง RPM ได้โดยไม่ต้องเข้าถึงรูทเพียงแค่ทำในไดเรกทอรีหลักของคุณ เท่าที่ติดตั้ง RPM ฉันจะบอกว่าคำตอบสั้น ๆ = ไม่
ไม่มี rpm ที่เป็นไปไม่ได้โดยไม่ต้องใช้ root, su หรือ sudo access
rpm
คำสั่งโดยไม่ได้รับการเข้าถึง sudo