เหตุใดแอปพลิเคชันทั้งหมดจึงไม่ 'พกพา'


45

เมื่อเร็ว ๆ นี้ฉันได้พยายาม 'ติดตั้ง' สิ่งต่าง ๆ บนเครื่อง Windows ของฉันน้อยลง (ฉันเกลียดตัวติดตั้ง - ฉันต้องรู้ว่าโปรแกรมวางอะไรไว้ ... ) เลือกที่จะใช้แอปพลิเคชันแบบพกพาหรือแบบสแตนด์อโลนแทน

ฉันใส่ทั้งหมดในไดรฟ์ 'โปรแกรม' ในไดรฟ์ที่แยกต่างหากจากพาร์ติชัน Windows ของฉันดังนั้นเมื่อใดก็ตามที่ฉันติดตั้งใหม่ฉันมีแอปพลิเคชันทั้งหมดของฉันที่มีความพยายามน้อยที่สุดและในด้านบวก

แอปพลิเคชันเช่น Office และ Creative Suite ยังคงต้องการให้ฉันผ่านกระบวนการติดตั้งที่น่ากลัวมานานซึ่งมีห้องสมุดและเครื่องมือสุ่มนับพันถูกโยนข้ามระบบของฉัน

ทำไมแอพ Windows ยังคงต้องติดตั้ง ทำไมเราไม่สามารถลาก Photoshop ไปที่โฟลเดอร์à la OSX และใช้งานได้ มีใครอีกบ้างที่มุ่งเน้นไปที่แอพพกพาหรือฉันเป็นแค่ OCD เกี่ยวกับเรื่องทั้งหมดหรือไม่?


3
คำตอบของคำถามอธิบายการอยากรู้อยากเห็น "ทำไม" อย่างไรก็ตามเสียงอุทาน "แต่ทำไม" ยังคงอยู่ (เหมือนใน "แต่ทำไมเราทุกคนไม่สามารถเข้ากันได้")
dbkk101

2
ฉันเกลียดตัวติดตั้งด้วย ไม่มีอะไรผิดปกติกับคุณ
Nick

2
ดูเหมือนว่าคำถามผิด หากคุณต้องการใช้แอพพกพาคำถามที่ถูกต้องน่าจะเป็น: "โปรแกรมใดที่พกพาได้" ตัวอย่างเช่นคุณอาจคิดว่าคุณต้องการ MS Word เมื่อสิ่งที่คุณต้องการจริงๆคือโปรแกรมที่สามารถอ่านและเขียนไฟล์ข้อมูล. doc Open Office จะทำเช่นนั้น ... และซึ่งแตกต่างจาก MS Word มีให้ในรูปแบบพกพา ... ฉันมีสำเนาของมัน (และ Abiword) ในแฟลชไดรฟ์ที่ใช้เวลาตลอดเวลาเสียบเข้ากับแล็ปท็อปของฉัน มีแอพพกพาค่อนข้างน้อย portablelinuxapps.orgเสนอ 184 สำหรับ Linux ในขณะที่portableapps.com/appsเสนอ 232 +

ความเห็นที่เหลือของ Bill: ... แอปเมนูสำหรับ Windows [เนื้อหาทั้งคู่รวมถึงโปรแกรมอรรถประโยชน์ที่น่าสนใจ] เลือกรายการที่คุณต้องการและจัดการกับโปรแกรมที่ไม่ใช่พกพาที่คุณสามารถทำได้โดยไม่ต้อง ... แอพส่วนใหญ่ของฉันใช้งานได้บนปุ่ม USB อย่างน้อยที่สุดจะทำให้สปาเก็ตตี้ซุปของไฟล์บน HD ของคุณง่ายขึ้น
studiohack

สำหรับฉันแล้วมันดูเหมือนว่าเครื่องมือที่ดีที่สุดเป็นแบบพกพา ฉันอาจจะลำเอียง
Vlastimil Ovčáčík

คำตอบ:


35

ผู้ติดตั้งเป็นผลมาจากการวิวัฒนาการมาหลายปีและประวัติ (เรียบง่าย) เล็กน้อยช่วยให้เข้าใจว่าทำไมพวกเขาถึงทำสิ่งที่พวกเขาทำ ..

แบบจำลอง windows 3.1 แนะนำให้ใช้ไฟล์การกำหนดค่าสไตล์ config.ini ต่อแอปพลิเคชั่นที่รองรับ libaries ที่แชร์ไปยังโฟลเดอร์ระบบเพื่อป้องกันการทำซ้ำและการสิ้นเปลืองเนื้อที่ดิสก์

Windows 95 แนะนำรีจิสตรีที่อนุญาตให้ร้านค้าส่วนกลางสำหรับการกำหนดค่าแอปพลิเคชันแทนที่ไฟล์การกำหนดค่าจำนวนมาก ที่สำคัญการกำหนดค่า windows ถูกเก็บไว้ในที่เดียวกัน

รีจิสทรีกลายเป็นป่องเนื่องจากการใช้งานที่ไม่ได้ทำความสะอาดหลังจากที่ตัวเอง DLL Hell เกิดขึ้นจากการที่หลาย ๆ เวอร์ชันของ shared library เดียวกันเขียนทับกัน

.NET แนะนำแนวคิดของ app.config (ไฟล์ ini เกือบทำเครื่องหมาย 2 ในครั้งนี้พร้อมกับนักพัฒนาประหยัดโครงสร้างเล็กน้อยเสียเวลาเขียน parsers ด้วยตนเอง) GAC ถูกนำไปใช้กับแอสเซมบลีที่ใช้ร่วมกันรุ่นในความพยายามที่จะป้องกันไม่ให้ DLL Hell

ใน Windows XP และ moreso ใน Vista Microsoft พยายามกำหนด userspace เป็นสถานที่จัดเก็บข้อมูลผู้ใช้และไฟล์การกำหนดค่าในที่ตั้งมาตรฐานเดียวเพื่อให้สามารถใช้งานโปรไฟล์ข้ามเครือข่ายและโยกย้ายได้ง่าย (เพียงคัดลอกโปรไฟล์ของคุณ) ด้วยแอปพลิเคชัน .

ดังนั้นฉันจึงคิดว่าเหตุผลคือ "แอปพลิเคชันใน windows ได้รับการออกแบบให้ใช้งานได้ในที่เดียวการอ้างอิงที่ใช้ร่วมกันในที่อื่นและข้อมูลเฉพาะของผู้ใช้ในที่อื่น" ซึ่งทำงานได้ดีกับแนวคิดของ xcopying ในที่เดียว

.. และนั่นคือก่อนที่คุณจะต้องกำหนดค่าบัญชีผู้ใช้และตั้งค่าและตรวจสอบสิทธิ์ด้านความปลอดภัยและดาวน์โหลดการปรับปรุงและติดตั้งบริการ windows ...

xcopy เป็น "กรณีง่าย ๆ " และแน่นอนว่าไม่ใช่สิ่งที่ดีที่สุดสำหรับทุกสิ่ง


1
คำอธิบายง่าย ๆ !
alex

7
อีกเหตุผลใหญ่สำหรับผู้ติดตั้ง (โดยเฉพาะอย่างยิ่ง Office) คือผู้ใช้ไม่ควรมีผลกระทบต่อผู้ใช้รายอื่นในระบบเดียวกันหากพวกเขาไม่ใช่ผู้ดูแลระบบ ด้วย Office 2007 ที่มีน้ำหนักประมาณ 500MB หากผู้ใช้ต้องการใช้งานพวกเขาจะต้องมีสำเนาในเครื่องของตนเอง นั่นคือ 1.5GB สำหรับผู้ใช้ 3 คนในระบบเดียวกัน! Google Chrome ติดตั้งในไดเรกทอรีผู้ใช้ในพื้นที่ของคุณดังนั้นหากคุณมีผู้ใช้ 10 คนที่มี Chrome นั่นคือ 10 เวอร์ชันที่แตกต่างกันซึ่งจะต้องได้รับการอัปเดตและดูแลรักษา เห็นได้ชัดว่ามีข้อดีข้อเสียต่อการติดตั้งต่อผู้ใช้กับการปรับใช้ส่วนกลาง
โจชัว

1
แอปพลิเคชั่นบางตัวเช่น Photoshop (อย่างน้อย pre-CS4) สามารถคัดลอกได้ง่ายและเมื่อเริ่มต้น - จะสร้างที่เก็บการกำหนดค่าผู้ใช้และไฟล์ที่ต้องการ นอกจากนี้แอปพลิเคชั่น. NET ส่วนใหญ่เป็นแบบพกพาตามการออกแบบ แต่ผู้ใช้คาดหวังว่าผู้ติดตั้งจะเสร็จสิ้นในครั้งต่อไปหลายคนที่ไม่รู้ด้วยซ้ำว่าระบบไฟล์คืออะไร
Oskar Duveborn

นอกจากนี้ยังสามารถตั้งข้อสังเกตว่าแม้ว่าโปรแกรมจะหมายถึงการแบ่งการตั้งค่า / ห้องสมุด / เฉพาะในสถานที่ที่แตกต่างกันก็ไม่ได้เป็นอย่างดีการแพร่กระจายที่กำหนดเอง ฉันมักจะพบการตั้งค่าสำหรับแอพพลิเคชั่นต่าง ๆ ที่เก็บไว้ในไฟล์ในไดเรกทอรีโปรแกรมของพวกเขาและบ่อยครั้งที่ไลบรารีที่สามารถแชร์ได้จะถูกเชื่อมโยงแบบคงที่ในไดเรกทอรีโปรแกรม เนื่องจากไม่มีประโยชน์ที่แท้จริงในการทำสิ่งหนึ่งอย่างใดอย่างอื่นสำหรับโปรแกรมเมอร์สิ่งจูงใจที่จะยึดถือกฎนั้นอ่อนแอและการพัฒนาแอพพลิเคชั่นทางตะวันตกเกิดขึ้น :-) นอกจากนี้ฉันคิดว่าประเพณีมีความแข็งแกร่ง
Daniel Andersson

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


7

เป็นคำถามที่ดีมากฉันถามคำถามที่เกี่ยวข้องกับ Stack Overflow เมื่อไม่นานมานี้

คำตอบมักจะเป็น "เพราะนั่นเป็นวิธีที่เราเคยทำมาในอดีต" ขออภัยที่ไม่ได้ล้างด้วยฉัน

บางคนบอกว่าสาเหตุหลักมาจากรีจิสทรี หากคุณกำลังพูดถึงโปรแกรมควบคุมอุปกรณ์หรือส่วนประกอบ COM อื่น ๆ เป็นต้นใช่ว่าสิ่งนี้อาจจำเป็น แต่ไม่ใช่สำหรับแอปพลิเคชัน GUI เช่นโปรแกรมประมวลผล Word หรือสเปรดชีต

ค่อนข้างเป็นไปได้ที่จะเขียนแอปพลิเคชันที่ตรวจสอบการเริ่มต้นใช้งานสำหรับการตั้งค่ารีจิสทรีที่ต้องการและแจ้งให้ผู้ใช้สำหรับพวกเขา / ใช้ค่าเริ่มต้น หรืออย่างที่แอพที่สามารถป้องกันได้จำนวนมากในขณะนี้ jst แจ้งให้ผู้ใช้ทราบว่าการรวมระบบปฏิบัติการนั้นมี จำกัด เนื่องจากคุณกำลังทำงานในโหมดพกพา

ผู้ติดตั้งมักจะมี "ความรู้" มากมายเกี่ยวกับวิธีการทำงานของแอปพลิเคชัน จากนั้นเมื่อแอปพลิเคชันเปลี่ยนแปลงคุณมักจะต้องอัพเดตตัวติดตั้งด้วย นี่คือสาเหตุคลาสสิคของข้อบกพร่อง / ปัญหาที่ฉันเคยเห็นในการเขียนโปรแกรมเวลาของฉัน

มันเป็นขนาดที่พอดีทุกแนวทาง


6

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

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

ตามความเป็นจริงเราดูเหมือนจะลืมไปว่าคนเดียวกันที่เคยประณามทรราชของยักษ์เช่น IBM ได้กลายเป็น IBM ของวันนี้และอายุ ... เพียงแค่มองไปที่การดำเนินธุรกิจของ Microsoft, Apple และ Adobe บอกชื่อให้ฉันฟังอย่างตรงไปตรงมาว่าด้วยสิทธิ์การใช้งานที่ จำกัด ของพวกเขานั้นมีความอ่อนโยนมากกว่าการดำเนินธุรกิจของไอบีเอ็มไอบีเอ็มคนเดียวที่เปิดกว้างในการปฏิวัติการประมวลผลส่วนบุคคล ...

ฉันใช้แอพแบบพกพาที่มีอยู่ในตัวเองเป็นเวลาหลายปีและโดยไม่มีข้อยกเว้นพวกเขาได้พิสูจน์แล้วว่ามีประสิทธิภาพมากที่สุดเร็วที่สุดและมีขนาดเล็กที่สุดในแง่ของการใช้ทรัพยากรและทรัพยากรและสุดท้าย แต่ไม่ท้ายสุดเท่านั้น คู่ แต่ส่วนใหญ่พวกเขามีอิสระเช่นกัน

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


5

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


เผง ระบบปฏิบัติการจะหา EXE หรือ DLL ให้โหลดโดยไม่มีตำแหน่งที่แน่นอนได้อย่างไร "ตั้งค่า oExcelApp = CreateObject (" EXCEL.APPLICATION ")" จำเป็นต้องทำงานอย่างใดอย่างหนึ่ง
Zan Lynx

4

ส่วนใหญ่เป็นเพราะรีจิสทรีของ windows - แม้ว่าโปรแกรมของคุณอยู่ในไดเรกทอรีที่แน่นอนการตั้งค่าจะถูกเก็บไว้ในรีจิสทรี

อาจเป็นเพราะโปรแกรมวางไฟล์ไว้ในไดเรกทอรีอื่นบนคอมพิวเตอร์ของคุณนอกเหนือจากไดเรกทอรีการติดตั้ง (เช่น system32)


3

ข้อดีอย่างหนึ่งของผู้ติดตั้งใน Xcopy / ประเภทการติดตั้งแบบพกพาคือการซ่อมแซมด้วยตนเอง

แอปที่ใช้ระบบ Windows Installer อย่างถูกต้องจะมีข้อมูลทุกประเภทเกี่ยวกับมันบันทึกไว้ในฐานข้อมูล Windows Installer บนเครื่องของคุณรวมถึงแคชส่วนสำคัญของไฟล์ติดตั้ง

หากแอปหยุดพักด้วยเหตุผลบางอย่าง (มีสิ่งอื่นที่ลบ / แทนที่ไฟล์รีจิสทรีได้รับความเสียหายปัญหาดิสก์ผู้ใช้ลบทางลัด ฯลฯ ) ถ้าเป็น "ทางลัดที่โฆษณา" ตัวติดตั้งจะตรวจสอบไฟล์คีย์และคีย์ทุกครั้งที่เริ่มทำงาน แทนที่หากไม่มีอยู่หรือคุณสามารถเข้าไปที่ Add / Remove Programs แล้วคลิก Repair ในแอพ


ทำไมสิ่งเดียวที่ฉันคิดได้ในขณะที่อ่านไอคอนเดสก์ท็อป Adobe Reader นี้ คนนั้นช่างซ่อมตัวเองอย่างบ้าคลั่งมันทำลายจิตใจตัวเอง ^^
Oskar Duveborn

2

ฉันคิดว่าเป็นส่วนหนึ่งของแอพพลิเคชั่น windows cruft จำนวนมากที่ต้องการ ตัวอย่างเช่นคีย์รีจิสทรี, ข้อมูลผู้ใช้ (/ ผู้ใช้ // AppData) บางที OSX ก็จัดการได้ดีกว่านี้ / แตกต่างกัน

จากนั้นอีกครั้งมันเป็นไปไม่ได้ที่จะสร้างแอพที่คุณสามารถดึงออกมาจากไฟล์เก็บถาวร - ฉันมีความสุขเสมอในกรณีนี้


2

.Net Framework เป็นแพลตฟอร์มเพื่อเปิดใช้งานฟังก์ชั่นประเภทนี้และผู้ติดตั้งส่วนใหญ่จะใช้เพียงเพราะนี่คือสิ่งที่ผู้ใช้ปกติจะใช้ เช่นเดียวกับที่ผู้ใช้ Mac ใช้ในการคัดลอกไฟล์ไปยังโฟลเดอร์ Applications

โปรแกรมติดตั้งส่วนใหญ่จะขยายไฟล์ไปยังโฟลเดอร์ Program Files และสร้างทางลัด มันเป็นกรณีของสิ่งที่ผู้ใช้รู้และบ่อยครั้งที่มันจะง่ายต่อการทำให้กระบวนการเหมือนกันแม้ว่าแอปพลิเคชันจะพกพาได้


2

บางโปรแกรมต้องการให้ตำแหน่งการติดตั้งอยู่ในรีจิสตรีส่วนโปรแกรมอื่นอาจมีตำแหน่งของฮาร์ดโค้ดลงในโปรแกรม (ในกรณีนี้คือ perl.exe)

โดยทั่วไปเหตุผลหลักคือโปรแกรมเมอร์ที่เอาวิธีง่าย ๆ และฮาร์ดโค้ดบางอย่างลงในโปรแกรมไม่ว่าจะเป็นรีจิสตรีคีย์หรือเส้นทางฮาร์ดโค้ดจริง


2

แอปพลิเคชัน Windows จำนวนมากต้องใช้สภาพแวดล้อมของระบบหรือบริการเช่น SQL Server, IIS, WMI, โดเมนความปลอดภัย, Active Directory และอื่น ๆ อีกมากมาย ผู้ใช้ทั่วไปอาจไม่ทราบวิธีกำหนดค่าเหล่านี้หรืออาจไม่สามารถเข้าถึงได้

แอปพลิเคชันเช่น Microsoft Office ไม่ใช่ไฟล์เดียว พวกเขามีหลายไฟล์ไฟล์ปฏิบัติการสาธารณูปโภคบริการแม่แบบปลั๊กอินไดรเวอร์และอื่น ๆ เมื่อคุณติดตั้งแอปพลิเคชันคุณจะไม่สามารถเขียนทับทุกสิ่งที่แอปใหม่ใช้มันจะต้องสอดคล้องกับสิ่งที่มีอยู่แล้ว โปรแกรมติดตั้ง Windows ไม่เพียงแค่คัดลอกไฟล์เท่านั้นพวกเขาสามารถสอบถามสภาพแวดล้อมของระบบเรียกใช้สคริปต์และบริการติดตั้งและตั้งค่าเครื่องราวกับว่าพวกเขาเป็นผู้ดูแลระบบ

dbkk101 ถามว่าทำไมแอป Windows "ไม่สามารถไปกันได้" พวกเขาสามารถนั่นคือสิ่งที่ติดตั้งสำหรับ


2

ที่ได้รับมาพร้อมกับบางโปรแกรมการติดตั้งนั้นโง่ แต่มันมีมากกว่า "การลากไฟล์ไปยังไดเร็กตอรี่ของโปรแกรม".

อย่างน้อยที่สุดตัวติดตั้งที่เหมาะสมที่คลายการบีบอัดไฟล์การติดตั้งและตั้งค่าทางลัดที่เหมาะสมและทำให้ง่ายต่อการลบโปรแกรมเมื่อไม่ต้องการอีกต่อไป ฉันบีบอัดและคัดลอกน่าจะเป็นสิ่งที่ใช้เวลานานที่สุด

จากนั้นมีไฟล์ที่แชร์ - นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งในโลก Linux แต่ไม่มากใน Windows IMO

ที่สำคัญที่สุดต้องมีการกำหนดค่าโปรแกรมบางอย่างสำหรับเครื่องและบางอย่าง (ฉันเข้าใจอย่างน้อย) พยายามเพิ่มประสิทธิภาพโดยใช้เครื่องหรืออย่างน้อยนั่นคือสิ่งที่ไดอะล็อกของอะโดบีนำมาให้ฉันเชื่อ

นอกจากนี้ฉันไม่เคยเห็นเหตุผลในการติดตั้งบนพาร์ติชันแยกต่างหาก คุณมักจะสูญเสียค่ารีจิสตรีและการตั้งค่าคอนฟิเกอเรชันทั้งหมด นอกจากนี้ฉันชอบที่การสูญเสียจริง ๆ เพราะจะช่วยลดการขยายตัวของ Windows

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