การติดตั้งแพคเกจเฉพาะที่ให้กับผู้ใช้ - แนวทางปฏิบัติที่ดีที่สุด


18

ฉันต้องการติดตั้ง Git ภายในเครื่องให้กับผู้ใช้บนเซิร์ฟเวอร์ RHEL (ฉันไม่มีสิทธิ์เข้าถึงรูท) อะไรคือวิธีการที่สะอาดที่สุด / เป็นระเบียบที่สุดของคุณในการติดตั้งซอฟต์แวร์ลงในบัญชีผู้ใช้ท้องถิ่น

  • ติดตั้งทุกอย่างในไดเรกทอรีผู้ใช้ที่บ้าน?
  • เลย์เอาต์ของไดเรกทอรีจะเป็นอย่างไร
  • คุณจะติดตั้งจากแหล่งที่มาหรือ RPM หรือไม่?
  • ถ้าจาก RPM คุณจะใช้ YUM หรือ RPM หรือไม่?

คำตอบ:


17

มีวิธีการติดตั้ง rpms ในไดเรกทอรีผู้ใช้ที่ใช้rpmแต่ฉันไม่เชื่อว่ามันตรงไปข้างหน้า yumผมไม่เชื่อว่าจะมีวิธีการที่มี

การปฏิบัติมาตรฐานของฉันได้รวบรวมจากแหล่งข้อมูลไปยังlocalไดเรกทอรีในบ้านของฉัน

$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include

ดาวน์โหลดฉันเป็นแหล่งฉันจะไปเมื่อฉันมีรากเช่นใน/usr/local~/local/git

เมื่อรวบรวมฉันจะตั้งคำนำหน้าไปยังlocalไดเรกทอรี

$ configure --prefix=/home/user_name/local
$ make
$ make install

จากนั้นผมก็เพิ่ม~/local/binถึง $ .bash_profileเส้นทางของฉันใน

แน่นอนว่าความเจ็บปวดในการติดตั้งจากแหล่งที่มาคือคุณไม่ได้รับการแก้ไขปัญหาการพึ่งพาอัตโนมัติ หากคุณพบว่าคุณต้องติดตั้งอ้างอิงให้รวบรวมและติดตั้งดังกล่าวข้างต้น จากนั้นเมื่อคุณคอมไพล์gitคุณจำเป็นต้องอัพเดตแฟล็กการคอมไพล์เพื่อให้พวกเขาดูในตำแหน่งที่ถูกต้องสำหรับไลบรารีของการพึ่งพาและรวมไฟล์:

./configure --prefix=/home/user_name/local LDFLAG='-L/home/user_name/local/lib' CFLAGS='-I/home/user_name/local/include' CPPFLAGS='-I/home/user_name/local/include' CXXFLAGS='-I/home/user_name/local/include'

มันทำงานได้อย่างสมบูรณ์ขอบคุณสำหรับคำแนะนำ!
wiredin

13

ไฟล์ .rpm เป็นจริงรูปแบบของการเก็บซึ่งเป็นจำนวนมากเช่นรูปแบบที่เรียบง่ายของcpio ยูทิลิตี้อาจจะมีการติดตั้งในระบบและไม่จำเป็นต้องมีสิทธิ์ในการใช้; มันเขียนถึงมาตรฐานออกดังนั้นการแปลง:tarrpm2cpio

rpm2cpio whatever.rpm > whatever.cpio

มีman cpioคุณสามารถดูตัวเองได้ แต่สิ่งที่คุณต้องการทำตอนนี้คือฟีดไฟล์เก็บถาวรไปยัง cpio ในโหมด "คัดลอกใน":

cat whatever.cpio | cpio -i

มีโอกาสมากที่ข้อมูลจะถูกจัดเป็นแผนผังไดเรกทอรีเพื่อให้ไฟล์เข้าสู่ตำแหน่งที่เหมาะสม (ถังขยะ ฯลฯ ) หากไฟล์เหล่านั้นไม่มีอยู่ใน pwd ของคุณคุณจะได้รับข้อผิดพลาด แต่จะแสดงรายการไฟล์ในไฟล์เก็บถาวร (คุณสามารถรับสิ่งเดียวกันได้ด้วยปุ่ม-t/ --listสวิตช์) -dหากคุณต้องการที่จะสร้างไดเรกทอรีโดยอัตโนมัติการใช้งาน ดังนั้นวิธีที่รวดเร็วในการแกะ rpm:

rpm2cpio whatever.rpm | cpio -i -d

คุณสามารถใช้สิ่งนี้เพื่อติดตั้งใน $ HOME ปัญหาเพียงอย่างเดียวคือหากโปรแกรมคาดว่าจะพบสิ่งต่าง/etcๆ เป็นต้นเนื่องจากมีหลายสิ่งที่สถานที่ติดตั้งของพวกเขาติดตั้งอยู่ในฮาร์ดไดรฟ์เพื่อวัตถุประสงค์อะไรก็ตามเมื่อพวกเขารวบรวม

การสร้างจากแหล่งที่มาอาจเป็นตัวเลือกที่ดีกว่า (เนื่องจากคุณสามารถระบุตำแหน่งที่ถูกต้อง) แต่ถ้าคุณสามารถทำให้สิ่งนี้ทำงานได้ไม่ว่าในกรณีใดมันก็จะง่ายและรวดเร็ว

นอกจากนี้เบราว์เซอร์ไฟล์ผู้บัญชาการเที่ยงคืน ( mc) และอาจเป็นเบราว์เซอร์ไฟล์อื่น ๆ นอกเหนือจากนี้จะช่วยให้คุณสามารถนำทางลำดับชั้น rpm หรือ cpio (หรือ tar บีบอัดหรือ zip) และคัดลอกไฟล์แต่ละไฟล์ราวกับว่ามีการแยกไฟล์ ระบบไฟล์ชั่วคราวเพื่อเรียกดูด้วยเนื้อหาที่เก็บถาวรในมัน)


0

นี่คือทางเลือก (ไม่ได้ใช้ yum) และการอนุญาตจะแปลกประหลาด แต่คุณสามารถchownไปยังผู้ใช้เป้าหมายในภายหลัง: - มันเป็น hit หรือ miss :-(

#-## Download all dependency for the RPM -- 
#sudo yum install yum-utils
#sudo yumdownloader --resolve --destdir ~/download bash

#-## Install all downloaded to an alternate root 
#sudo rpm --initdb --root <user_home_dir>
#sudo rpm --root <user_home_dir> -Uvh --nodeps ~/download/*

จากนั้นเพิ่มตำแหน่งที่เหมาะสมให้กับเส้นทางของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.