Де встановити невеликі програми без інсталяторів у Windows?


35

На платформі Windows більшість великих додатків постачаються з власною установкою, яка встановлює папки під C:\Program Files, можливо, в інших місцях, і, можливо, додає деякі ключі реєстру тощо.

Але все ще існує досить багато інструментів, які складаються з просто, .exeа може також READMEі з а .dllчи двох.

Як мені встановити такі інструменти? Безпосередньо в C:\Program Files? Все в одній підпапці під C:\Program Files? Десь під C:\Users\Me? Десь зовсім інше?

Або, можливо, різні підходи для інструментів, які мають лише .exeті, які також мають інші файли, або, можливо, лише ті, що мають .dlls, повинні розглядатися по-різному ...

Чи існує якийсь стандартний прийнятий спосіб це зробити? "Краща практика"? Якщо відповідь залежить від версії Windows, я використовую Windows 7.

Зокрема, те, що може вразити людей, оскільки очевидна відповідь має вираз:

Я намагався вручну створити нові папки під C:\Program Files. Насправді я думав, що робив це раніше, але Windows встановлює діалогове вікно призначення папки призначення заборонено . Це змусило мене думати двічі, а не просто сліпо клацати Продовжити .

Доступ до папки призначення відхилений

З припущенням, що більші розуми, ніж у мене, виникали проти цього багато разів протягом багатьох років, я хотів би запитати у громади, чи прийшла якась «найкраща практика».


3
З якої точки зору ви задаєте це питання? Зокрема, це програма, яку ви пишете, чи ви намагаєтесь встановити чужі додатки?
Гаррі Джонстон

2
@HarryJohnston: Це для установки інших програм. Днями я завантажив декілька програм, призначених для перегляду чи редагування дуже великих файлів, і пара не мала інсталяторів. Але те ж саме стосується і більшості інструментів командного рядка в Windows, яких я маю декілька.
hippietrail

@UltraDEVV: Я хочу знати, чи розглядали цю проблему інші та вирішили "найкращу практику". Я хочу знати, які рішення існують там, перш ніж вирішити, чи слід встановлювати в C:\Program Filesіншому місці чи деінде, і я надаю інформацію про потенційний бар'єр, C:\Program Filesякий буде очевидним рішенням.
hippietrail

Тож читайте моє! superuser.com/a/815831/354352
UltraDEVV

@UltraDEVV: Я вже читав ваше і я вже проголосував за це. Приємно бачити, як це спляче питання повертається до життя після трирічного відпочинку!
hippietrail

Відповіді:


25

Використовуйте C:\Tools

або C:\Users\<user>\Tools
 

Я використовую безліч малих програм без інсталятора, і рекомендую наступне:

  • Збережіть їх усіх C:\Tools
  • Якщо програма складається з одного файлу, поставте її безпосередньо під C:\Tools
  • Якщо програма складається з декількох файлів, поставте її під C:\Tools\ProgramName
  • Інструменти SysInternals мають особливу категорію, C:\Tools\_SysInternalsоскільки їх багато

Я просто переміщуюся C:\Toolsз машини на машину під час міграції, працює як шарм.

Практичний зразок (скорочений список):

C: \ Інструменти \ autoexec-eleleva.bat
C: \ Інструменти \ cleanup.bat
C: \ Інструменти \ BabelMap.exe
C: \ Інструменти \ netmon.exe
C: \ Інструменти \ notifu.exe
C: \ Інструменти \ putty.exe
C: \ Інструменти \ UDPixel.exe
C: \ Інструменти \ battery.vbs

C: \ Інструменти \ 3dclip-1.5.1 \
C: \ Інструменти \ alternatestreamview \
C: \ Інструменти \ blender-2.71-windows64 \
C: \ Інструменти \ Блокнот ++ \
C: \ Інструменти \ QueryExpress \
C: \ Інструменти \ wincp555 \
C: \ Інструменти \ Xinorbis \

C: \ Інструменти \ _Sysinternals \ accesschk \
C: \ Інструменти \ _Sysinternals \ Autoruns \
C: \ Інструменти \ _синтерналісти \ залежить22_x64 \
C: \ Інструменти \ _синтерналісти \ залежить22_х86 \
C: \ Інструменти \ _Sysinternals \ LogonSessions \

Я сподіваюся, що це дає ідею.

EDIT: розширена інформація

Я припускаю, що під встановленням у вашому запитанні Як мені встановити такі інструменти? ви фактично маєте на увазі налаштування вручну, щось на зразок копіювання файлів.

Правило великого пальця: використовуйте створені вручну папки для файлів, що підтримуються вручну. Дозвольте системним папкам використовувати (установки) процеси, якими ви безпосередньо не керуєте. Ви одразу отримаєте перевагу визнання, який вміст "ваш" (і ви можете вільно його скопіювати), а яким додатком керує інсталятор.

Тому, встановлюючи вручну (копіюючи), тримайтеся подалі від

  • C:\Program Files - знайдені тут програми не можна просто перенести, їх потрібно перевстановити (дає чудовий натяк на міграцію)
  • C:\Program Files (x86) - як зазначено вище, але в 64-бітних системах тут переходять 32-бітні програми (можуть дати підказку, щоб визначити, чи є конкретний додаток 32-бітним або 64-бітним)
  • C:\ProgramData- Тут знайдені сховища програм показують, що ці програми зберігають частину своїх даних по-своєму. Але ви запитали про те, як розмістити ваші програми в розділі Дані? Не гарна ідея.
  • C:\Users\Steven\AppData- знову ж таки, розміщення програм під даними - це не дуже гарна ідея. Якщо ви запитали про дані, то про цей шлях можна написати кілька цікавих речей. Але для програм просто «ні». :)

Можливий шлях

  • C:\Users\Steven- може стати вашим альтернативним корінцем, якщо це спільний комп'ютер і ви хочете його тримати в порядку, тому ви вирішите не створювати жодних глобальних каталогів. Ви можете розглянути C:\Users\Steven\Toolsсвої програми або навіть C:\Users\Steven\Desktop\Toolsякщо ви хочете скористатися зручним доступом до папки на робочому столі, доступним за ярликом з багатьох місць Windows. Але краще може бути колишнім, і ви все одно можете розмістити ярлик до цієї папки на робочому столі або коли це потрібно.

Редагувати: додатковий корисний підказку:

Якщо ви хочете, щоб деякі ваші невеликі програми були розпізнані в меню " Пуск" Windows 10 (для поступового пошуку їх імен або миттєвого підвищеного запуску з використанням Ctrl+ Shift+ Enter), додайте їх ярлики та запустити їх один раз . (Тоді ви можете їх видалити.)


Це звучить добре, але чи це підтримується документацією з найкращих практик чи чимось подібним? Якщо так, то це дійсно покращить відповідь.

@DoritoStyle - можливо, вам доведеться перевірити поточну документацію про найкращі практики у вашій корпорації. Якщо ви знаєте про ще якусь загальну документацію щодо найкращих практик, будь ласка, дайте мені знати, і я перевірю це.
miroxlav

1
Я використовую "C: \ Utility", але в іншому випадку використовую цей самий підхід!
Джон Шнайдер

Чи буде щось інше, а не "Інструменти" спрацьовує так само добре: якби я використовував щось на кшталт C:\Otherабо C:\Users\<user>\Other, чи вважали б це так само "законним", як "Інструменти"?
Генрік

@Henrik - оскільки не існує стандарту, використовуйте все, що відповідає вашим почуттям і досить зрозуміло. Наприклад, я спробував C: \ Progs (ім'я викликає невеликі програми без інсталятора), але наприкінці дня це стало неінтуїтивним, тому я повернув ім'я назад до Інструменти.
miroxlav

11

Наскільки я знаю, немає універсального підходу.

Розміщення ваших програм C:\Program Files- це досить стандартний спосіб. І ви отримаєте захист доступу : постійні (і не підвищені) користувачі не можуть писати на них C:\Program Files. Тому ви не можете випадково видалити, перезаписати такі файли; і вони краще захищені від вірусів.

Ось чому ви отримуєте попередження - запит на висоту - при спробі створити папку в C:\Program Files.

Отже, C:\Program Filesце найбільш безпечне місце для виконуваних файлів.

Однак це не підходить для (портативних) додатків, які зберігають їх конфігурацію поблизу, .exeоскільки вони не зможуть зберегти зміни конфігурації.


C:\ProgramDataпризначено для зберігання даних додатків, якими поділяються користувачі. За замовчуванням всі користувачі можуть створювати файли та папки тут, але лише користувач, який їх створив, може змінювати файли.

Цю папку можна легко використовувати для спільних додатків / інструментів. У той же час я ніколи не бачив програми в цій папці.


Якщо ви розміщуєте програми у своєму профілі користувача C:\Users\<username>, інші користувачі системи не матимуть доступу до нього. У вас є всі дозволи на ваш профіль, тому ви не отримуватимете попередження про безпеку. Ось чому Chrome встановлюється в профіль користувача: він може легко оновлюватись, не вимагаючи висоти.

У режимі на користувача, інсталяція пакетів, .msiфайлів, встановлених у Windows C:Users\<username>\AppData\Microsoft\Installer\<ProductId>. Тож цілком стандартно тримати додатки, що не надаються спільним доступом, у профілі користувача.

У utilsпрофілі мого користувача є папка з додатками, які корисні лише мені. Ця папка додається до PATHзмінної середовища мого користувача для легкого доступу.

Для спільних програм я використовую C:\toolsподібний каталог, можливо, на іншому диску. Він додається до глобальної PATHзмінної.


7

Я згоден з уже даними відповідями до певного моменту. Але для дійсно невеликих програм (утиліт) я схильний поміщати їх у папку бін (у моєму випадку E: \ bin). Зазвичай ці програми є одним файлом EXE або власними сценаріями python. Я додаю цю папку до змінної PATH, щоб я міг використовувати ці програми з командного рядка (який я, як правило, використовую досить багато).


Я також розглядав можливість створення загальних C:\Program Files\binдля цих типів інструментів та утиліт. Дякуємо за відгук.
hippietrail

5

Наскільки я знаю, немає кращих практик. Ви, власне, індивідуально вирішувати, як з цим впоратися.

Я прагну дотримуватися того самого стандарту, що і будь-яка програма з інсталятором. Якщо це виконуваний файл або бібліотека, я б розмістив будь-який в, \Program Files\якщо він 64Bit і Program Files (x86)\якщо він 32Bit.

Файли даних, які я зазвичай зберігаю у своїх Usersпапках, оскільки вони, як правило, специфічні для користувача.

Існують також такі програми, як Google Chrome і програми "Click-Once", які розгортаються Users\AppData\, однак вони зазвичай не доступні для кількох профілів.

Я вважаю за краще перший метод, тому що якщо мені потрібно увійти в інший профіль або як адміністратор, я все ще можу отримати доступ до програм.

Що стосується попередження про дозвіл. Це саме те, попередження . Це просто попередити вас від використання папки з неправильних причин, однак це не заважає вам використовувати її.


4
Я рекомендую не встановлювати програми вручну в папці «Файли файлів» вручну, оскільки програми без інсталяторів часто є або літніми, або портами інших операційних систем, тому вони не завжди добре справляються з простором на шляху. YMMV.
Гаррі Джонстон

3
Я рекомендую не вручну нічого встановлювати %ProgramFiles%занадто, але з іншої причини: програми без інсталяторів часто переносяться, і ви не маєте там дозволу на запис
kinokijuf

4

Якщо ви хочете стандартизувати ці програми, то я б запропонував використовувати стандарти пакету Chocolatey . Це добре з багатьох різних причин; головним чином тому, що багато програмного забезпечення вже упаковано для вас і готове встановити з будь-якого місця лише за допомогою декількох команд.

Також легко зробити власні пакети для програм, які ви не можете вільно поширювати. Ви, мабуть, маєте право поширювати все, що вам належить, у власній мережі; тож для цих програм ви можете встановити локальний сховище . Якщо ви керуєте багатьма комп'ютерами або маєте обмежену пропускну здатність Інтернету, це може бути корисним навіть для безкоштовних матеріалів.


2

Якщо ви приймаєте cygwin за вибором встановлення за замовчуванням, він розміщує всі ваші файли в c: \ cygwin. Я б взяв той самий підхід. У мене особисто папка ac: \ apps. Раніше я використовував c: \ utils і c: \ cli (скорочення для командного рядка). Це дійсно залежить від того, як ви хочете впорядкувати свої файли. Я б запропонував одноразовим утилітам розмістити їх у папці catchall. Щодо набору утиліт (наприклад, cygwin, sysinternals, rktools), я можу запропонувати власну підпапку. Наприклад, ви можете помістити всі sysinternals всередині c: \ apps \ sysinternals. Якщо ви встановите cygwin, це займе більшість (якщо не всі) команд Unix, які ви полюбили.

Не забудьте змінити змінні середовища (Пуск> Панель управління> Система> Додатково> Змінні середовища) та додати будь-які нові шляхи програми до вашої системної змінної PATH. Це дозволяє запускати їх на вимогу з командного рядка або за допомогою Windows + R (команда run).


5
Я думаю, що розробники Cygwin не переймаються стандартами Windows, і неправильно копіювати їх шкідливу звичку (створюючи папки в кореневій директорії). Я відчуваю це як створення \Program Filesкаталогу в Linux.
Каміль

Я не знаю, чому це було б погано. Cygwin - це середовище Unix. Чому Cygwin відповідає стандартам Windows, якщо вони призначені для людей, які хочуть використовувати інструменти Unix?
Нд

@Sun точно! ОП попросило передового досвіду Windows.

1

C:\Users\Me\toolName(Ака% HOMEPATH% \ ToolName) є правильним місцем здачі інструментів передбачаються , що ви хочете для Meкористувачів , так як деякі з цих інструментів записи файлів (Temp) і зажадають дозволів користувача в замовленні для запису в Program filesпапку. Ще один плюс полягає в тому, що ви не забудете створити резервну копію, тому що вона вже є в просторі користувача.


2
Я б використовував %homepath%' rather than c: \ users \ me`. Це вказує на правильне розташування, навіть якщо місце за замовчуванням було переміщено, і, таким чином, є більш портативним. +1 для частини письма / темпу.
Hennes

я виправлений і відредагований з тієї причини, яку він додав, а не замінив - відповісти тими ж умовами, що і на запитання, дякую
Хеннесу

0

Про це немає ніяких правил, ви можете встановити їх куди завгодно, але встановити їх на свій OSP (розділ операційної системи) у папці, що не користувач, це гарна ідея, оскільки ви отримаєте однакові засоби захисту доступу. чи є у вас інші програми; це ускладнює випадкове видалення або змінення їх третьою стороною (наприклад, вірусом).

Особисто я зазвичай ставлю програму в "C: \ Program Files (x86)", тому що більшість таких програм, з якими я стикався, є 32-бітовими, але якби це була 64-бітна програма, я би розміщував її в C: \ Program Files " Якщо це програма, пов’язана із системою (наприклад, Imagex.exe), я розміщу її в "C: \ Windows \ system32" для 32-бітових програм та "C: \ Windows \ system32" для 64-бітових програм, щоб дозволити легший доступ із командний рядок при запуску підвищених командних підказок, тому що ви запускаєте в C: \ Windows \ system32 "за замовчуванням; це означає, що ви можете ввести "name.exe" замість C: \ location \ name.exe ", щоб запустити програму.

Деякі люди вважають за краще відокремлювати свої портативні програми (не вимагає встановлення або виконання непідконтрольних чергувань за межами своєї папки) та програм на основі неінсталятора (не портативний, але не вимагає використання інсталятора) програм із звичайних програм, створюючи новий каталог на їх OSP (наприклад: C: \ Portable Program Files (x86) або C: \ Dumpable Program Files (x86). Я б радив 2-й з 2-х даних, якщо це більший рівень точності, навіть якщо це не звучить як досить

Підводячи підсумок, немає правил, однак, якщо встановити їх в OSP (у папці, що не використовується користувачем), ви зможете допомогти захистити програму від небажаної невстановлення / модифікацій (включаючи шкідливі модифікації) та за певних обставин організація може бути корисною (наприклад: згадана раніше папка system32 для системних програм CLI).


1
Я думаю, ви принципово неправильно зрозуміли питання. Перша частина оригінального питання - "Краща практика", а не "Які правила".
Стівен Пенні

@StevenPenny Зовсім не, лише інша фраза. Суть питання - причини робити X чи не робити X.
Робін Гуд

Я щойно придумав щось, що мені подобається: Etcабо Etceteraякщо ви віддаєте перевагу справжню вигадливу латинську пані. На близькому другому місці я також розглядав Misc. Але Etcукладено угоду для мене. :)
Генрік

0

Я думаю , що створення ярлика C:\Toolsв Send Toменю у вікнах це кращий варіант , так як він завжди доступний з будь-якої точки світу. Таким чином, ви можете швидко "встановити" ваші невеликі програми, клацнувши правою кнопкою миші та вибравши Інструменти з меню "Надіслати в" з будь-якої точки Windows.

Я отримав цей Підручник про те, як додати до меню "Надіслати до" від HowToGeek,
я вставляю резюме:

Щоб потрапити в папку SendTo, вам потрібно буде відкрити вікно Провідника, а потім вставити наступне в адресний рядок.

% APPDATA% \ Microsoft \ Windows \ SendTo

Потім вставте ярлик папки, в яку потрібно скопіювати ваші програми.

Потім кожен раз, коли ви завантажуєте нову портативну програму, просто витягніть її та відправте на це місце.
Єдина проблема - це створення ярликів, які, на мою думку, варто зробити це вручну.
З повагою


Папка " Надіслати в" не дуже підходить для використання в якості місця для встановлення програми. Він має конкретну мету, а саме - дозволити надсилання файлів / документів для подальшого оброблення програмою (наприклад, Відкриття файлу в Блокноті). Крім того, всі файли, розміщені в папці "Надіслати", з'являться в контекстному меню Windows, включаючи підтримувані .DLL. Це явно не бажано в більшості випадків.
Я кажу: Поновіть Моніку

1
Ні. Схоже, ви і всі потоки не зрозуміли, що я мав на увазі. Я маю на увазі Додати ярлик, наприклад, C:\Tools\ до Send Toпапки та отримати доступ до нього з будь-якого місця, тоді у вас не буде клопоту справлятись із кожною програмою вручну. Моя відповідь, швидше за все, пришвидшить процес подолання інших речей, які читають інші. Для мене це чудово працює.
UltraDEVV

Я зробив можливу редакцію, щоб включити це додаткове уточнення у вашу відповідь. Відповіді голосують вгору / вниз на основі відповіді, а не обов'язково на деталях, що містяться в коментарях, тому, сподіваємось, це допоможе.
Я кажу, відновіть Моніку

Ні, починаючи з Windows Vista, %APPDATA%змінна кореняться в %USERPROFILE%\AppData\Roamingпапці, тому для Windows 7 шлях вище вказаний правильний. Однак у Windows XP вам потрібно буде додати папку Roaming, як ви вказали.
Я кажу: Відновити Моніку

Якщо ви вважаєте, що ваше питання не ясно, вам слід уточнити його. Чому ви подали дві відповіді?
Рамхаунд

0

Змінна середовища середовища Path у Windows за замовчуванням виглядає на кшталт (Залежно від встановленої версії Windows):

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

Із цих варіантів% SystemRoot% (як правило C:/) здається найкращим вибором для читання / запису, і це буде легко посилатися пізніше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.