การติดตั้ง / ปรับปรุงโปรแกรมบนเซิร์ฟเวอร์


0

ฉันเข้าถึงเซิร์ฟเวอร์ของฉันซึ่งโฮสต์โดย JustHost ผ่าน SSH เพื่อติดตั้ง Selenium เพื่อทำการขูดเว็บ

ฉันพบปัญหาขณะพยายามติดตั้งอย่างไรก็ตาม

ตัดสินจากรหัสข้อผิดพลาดฉันเชื่อว่าฉันต้องเปลี่ยนการอนุญาตของไดเรกทอรีหนึ่ง ๆ ถึงแม้ว่าสิทธิ์ของฉันจะถูก จำกัด ตั้งแต่ฉันซื้อโฮสติ้งที่ใช้ร่วมกันดังนั้นฉันจึงสงสัยว่า:

  1. ไม่ว่าจะเป็นเรื่องของการอนุญาตหรือไม่
  2. ถ้าเป็นเช่นนั้นฉันควรเปลี่ยนการอนุญาตเป็นอย่างไร
  3. และสุดท้ายมีวิธีใดบ้างที่จะได้รับสิทธิพิเศษที่ จำกัด ?

พยายามติดตั้งซีลีเนียม

เข้าสู่ระบบ

antonfa1@pillar.fyi [~]# pip install selenium You are using pip version 7.1.0, however version 10.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting selenium Using cached https://files.pythonhosted.org/packages/57/bc/17164fd471ccdf0df3a992c710c0c3c47743462ff41ab72a02c6ede96e90/selenium-3.12.0-py2.py3-none-any.whl Installing collected packages: selenium Exception: Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/pip/basecommand.py", line 223, in main status = self.run(options, args) File "/usr/lib/python2.6/site-packages/pip/commands/install.py", line 308, in run strip_file_prefix=options.strip_file_prefix, File "/usr/lib/python2.6/site-packages/pip/req/req_set.py", line 646, in install **kwargs File "/usr/lib/python2.6/site-packages/pip/req/req_install.py", line 816, in install strip_file_prefix=strip_file_prefix File "/usr/lib/python2.6/site-packages/pip/req/req_install.py", line 1013, in move_wheel_files strip_file_prefix=strip_file_prefix, File "/usr/lib/python2.6/site-packages/pip/wheel.py", line 339, in move_wheel_files clobber(source, lib_dir, True) File "/usr/lib/python2.6/site-packages/pip/wheel.py", line 310, in clobber ensure_dir(destdir) File "/usr/lib/python2.6/site-packages/pip/utils/__init__.py", line 70, in ensure_dir os.makedirs(path) File "/usr/lib64/python2.6/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 30] Read-only file system: '/usr/lib/python2.6/site-packages/selenium'

สิทธิ์

antonfa1@pillar.fyi [/usr/lib/python2.6/site-packageslike# ls -l selenium / bin / ls: ไม่สามารถเข้าถึงซีลีเนียม: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

เห็นได้ชัดว่าไดเรกทอรี (และแพ็คเกจ?) หายไป

เมื่อฉันไปอัปเดต pip ฉันได้รับข้อผิดพลาดเดียวกันแน่นอน

ความผิดพลาด

OSError: [Errno 30] Read-only file system: '/usr/bin/pip'

สิทธิ์

antonfa1@pillar.fyi [/usr]# ls -l /usr/bin/pip -rwxr-xr-x 1 root root 281 Jul 1 2015 /usr/bin/pip*

ดังนั้นฉันจึงลองติดตั้ง Selenium ผ่านทางpip install --user seleniumและนี่คือสิ่งที่คอนโซลบันทึกไว้:

Collecting selenium
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Using cached https://files.pythonhosted.org/packages/57/bc/17164fd471ccdf0df3a992c710c0c3c47743462ff41ab72a02c6ede96e90/selenium-3.12.0-py2.py3-none-any.whl
Installing collected packages: selenium
Successfully installed selenium

จะInsecurePlatformWarningยุ่งกับการดำเนินการในภายหลังหรือไม่


คำตอบสั้น ๆ : "ไม่จริง" แต่ฉันจะอัปเดตคำตอบของฉันในการตอบสนอง
baelx

@baelx kk id ขอบคุณจริง ๆ ! ฉันยังคงเป็น n00b เมื่อมันมาถึงสิ่งนี้ขอโทษ
BugWhisperer

1
แก้ไข! ฉันตอบกลับอย่างดีที่สุดเท่าที่จะทำได้อย่างไรก็ตามเนื่องจากปัญหาปัจจุบันของคุณไม่เกี่ยวข้องกับคำถามเริ่มต้นของคุณ แต่เพิ่มเติมเกี่ยวกับการรักษาความปลอดภัยของงูใหญ่โดยรวมคุณอาจต้องการค้นหาเพิ่มเติมและถามคำถามแยกต่างหาก การไม่มีการเข้าถึงรูทจะทำให้สิ่งต่าง ๆ ซับซ้อนเมื่อต้องมั่นใจในความปลอดภัยของเซิร์ฟเวอร์ของคุณ ขอให้โชคดี!
baelx

คำตอบ:


1

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

คุณสามารถลองรันpipด้วยการ--userตั้งค่าสถานะซึ่งจะติดตั้งแพคเกจในโฮมไดเร็กตอรี่ของคุณมากกว่าใน/usr/lib/python2.6ซึ่งเป็นค่าเริ่มต้น นั่นคือ:

pip install --user selenium

อีกวิธีหนึ่งคุณสามารถดาวน์โหลดการกระจายแหล่งที่มาจากPypi (ถ้าคุณพอใจกับเวอร์ชั่น Selenium ล่าสุด) แกะไดเรกทอรีcdออกมาและเรียกใช้:

python setup.py install

คำสั่งหลังนี้ไม่ต้องการการเข้าถึงรูทเพื่อทำการติดตั้งให้เสร็จ


แก้ไข:ตอนนี้เมื่อคุณติดตั้งซีลีเนียมพร้อมตัวเลือกแรกและได้รับข้อผิดพลาดฉันจะทำลายมันลงเล็กน้อย

ข้อผิดพลาดนี้ไม่เกี่ยวข้องโดยตรงกับวิธีการติดตั้งเฉพาะที่คุณเลือก โดยพื้นฐานแล้วเป็นข้อความทั่วไปเกี่ยวกับงูหลามรุ่นของคุณ python 2 เวอร์ชั่นที่เก่ากว่าขาดการสนับสนุน SNIในโมดูล ssl และมีความปลอดภัยน้อยกว่า เป็นการดีที่คุณควรปรึกษาแนะนำเกี่ยวกับเรื่องนี้ urllib3และพยายามที่จะแก้ไขข้อผิดพลาดที่คุณอาจจะสามารถทำได้โดยไม่ต้องเข้าถึง

หากคุณต้องการข้ามสิ่งเหล่านี้คุณสามารถลองเปลี่ยนไปใช้ python 3 ได้ถ้ามันเหมาะกับคุณ ตรวจสอบว่ามีการใช้งาน python 3 บนเครื่องpython --versionนั้นหรือไม่ คุณจะต้องทำตามขั้นตอนการติดตั้งซ้ำโดยใช้คำสั่งpython3และ กล่าวคือpip3python3 setup.py install


ฉันลองวิธีแรกและแม้ว่าSuccessfully installed seleniumนี่คือสิ่งที่คอนโซลออกจากระบบ: (มันยาวเกินไปฉันจะแก้ไขคำถามของฉัน!)
BugWhisperer

ขออภัยแผนพื้นที่อนุญาตให้หลาม 2 :( เปลือกจะไม่ให้ฉันอัพเกรด pip: / ฉันไม่แน่ใจว่าหากเซิร์ฟเวอร์มีเว็บเบราว์เซอร์ที่ติดตั้งบนมันแม้ว่าฉันยังคงต้องได้รับ webdriver บนเซิร์ฟเวอร์ อย่างใดฝันร้ายเช่นนี้ฉันอาจลองวิธีที่สองของคุณหรือไม่
23418 BugWhisperer

1
@ user2230470 หากคุณอ้างถึงการดาวน์โหลดซีลีเนียมจากแหล่งที่มาและการติดตั้งผ่านpythonคำสั่งด้วยไฟล์ setup.py ก็จะแสดงให้คุณเห็นข้อผิดพลาดเดียวกัน ดังที่ได้กล่าวไว้ข้างต้นมันไม่สำคัญว่าคุณจะเลือกวิธีการติดตั้งแบบใด: นี่เป็นปัญหาของงูหลามโดยรวม : /
baelx
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.