Di mana menginstal program kecil tanpa installer di Windows?


35

Pada platform Windows, sebagian besar aplikasi besar datang dengan installer mereka sendiri yang mengatur folder di bawah C:\Program Files, mungkin beberapa tempat lain, dan mungkin menambahkan beberapa kunci registri, dll.

Tetapi masih ada beberapa alat di sekitar yang terdiri dari hanya satu .exeatau mungkin juga satu READMEdan .dlldua.

Bagaimana saya menginstal alat seperti itu? Langsung masuk C:\Program Files? Semua dalam satu subfolder di bawah C:\Program Files? Di suatu tempat di bawah C:\Users\Me? Di suatu tempat yang sama sekali berbeda?

Atau mungkin pendekatan yang berbeda untuk alat hanya .exedengan mereka yang juga memiliki file lain, atau mungkin hanya yang .dllperlu diperlakukan berbeda ...

Apakah ada cara standar yang diterima untuk melakukan ini? Sebuah "praktik terbaik"? Jika jawabannya tergantung pada versi Windows, saya menggunakan Windows 7.

Secara khusus, apa yang mungkin mengejutkan orang-orang karena jawaban yang jelas kelihatannya menarik:

Saya telah mencoba membuat subfolder baru secara manual di bawah C:\Program Files. Sebenarnya saya pikir saya pernah melakukannya sebelumnya, tetapi Windows memasang dialog Destination Folder Access Ditolak . Hal ini membuat saya berpikir dua kali bukan hanya membabi buta klik Lanjutkan .

Akses Folder Tujuan Ditolak

Dengan asumsi bahwa pikiran yang lebih besar daripada yang saya miliki menentang hal ini berkali-kali selama bertahun-tahun saya ingin bertanya kepada masyarakat apakah semacam "praktik terbaik" telah diterima.


3
Dari sudut pandang apa Anda mengajukan pertanyaan ini? Secara khusus, apakah ini aplikasi yang Anda tulis, atau Anda mencoba menginstal aplikasi orang lain?
Harry Johnston

2
@ HarryJohnston: Ini untuk menginstal aplikasi orang lain. Saya mengunduh beberapa program yang dirancang untuk melihat atau mengedit file yang sangat besar tempo hari dan beberapa tidak memiliki installer. Tetapi hal yang sama berlaku untuk sebagian besar alat baris perintah pada Windows juga, yang saya miliki beberapa.
hippietrail

@UltraDEVV: Saya ingin tahu apakah orang lain telah mempertimbangkan masalah ini dan memutuskan "praktik terbaik". Saya ingin tahu solusi apa yang ada di luar sana sebelum memutuskan apakah akan menginstal di C:\Program Filesatau di tempat lain dan saya memberikan info tentang penghalang potensial untuk C:\Program Filesmenjadi solusi yang jelas.
hippietrail


@UltraDEVV: Saya sudah membaca milik Anda dan saya sudah memilihnya. Sangat menyenangkan melihat pertanyaan tidur ini hidup kembali setelah tiga setengah tahun istirahat!
hippietrail

Jawaban:


25

Menggunakan C:\Tools

atau C:\Users\<user>\Tools
 

Saya menggunakan banyak program kecil tanpa penginstal dan saya merekomendasikan yang berikut ini:

  • Simpan semuanya C:\Tools
  • Jika suatu program terdiri dari satu file, letakkan langsung di bawah C:\Tools
  • Jika suatu program terdiri dari beberapa file, letakkan di bawah C:\Tools\ProgramName
  • Alat SysInternals memiliki kategori khusus C:\Tools\_SysInternalskarena ada banyak dari mereka

Saya hanya berpindah C:\Toolsdari satu mesin ke mesin saat bermigrasi, bekerja seperti pesona.

Sampel praktis (daftar singkat):

C: \ Tools \ autoexec-elevated.bat
C: \ Tools \ cleanup.bat
C: \ Tools \ BabelMap.exe
C: \ Tools \ netmon.exe
C: \ Tools \ notifu.exe
C: \ Tools \ putty.exe
C: \ Tools \ UDPixel.exe
C: \ Tools \ battery.vbs

C: \ Tools \ 3dclip-1.5.1 \
C: \ Tools \ alternatestreamview \
C: \ Tools \ blender-2.71-windows64 \
C: \ Tools \ Notepad ++ \
C: \ Tools \ QueryExpress \
C: \ Tools \ winscp555 \
C: \ Tools \ Xinorbis \

C: \ Tools \ _Sysinternals \ accesschk \
C: \ Tools \ _Sysinternals \ Autoruns \
C: \ Tools \ _Sysinternals \ depend22_x64 \
C: \ Tools \ _Sysinternals \ depend22_x86 \
C: \ Tools \ _Sysinternals \ LogonSessions \

Saya harap ini memberikan ide.

EDIT: Info lengkap

Saya kira itu dalam pemasangan dalam pertanyaan Anda. Bagaimana saya harus menginstal alat seperti itu? Anda sebenarnya maksud pengaturan manual, seperti menyalin file.

Aturan praktis: Gunakan folder yang dibuat secara manual untuk file yang dikelola secara manual. Biarkan folder sistem untuk digunakan oleh (instalasi) proses yang tidak Anda kontrol langsung. Anda akan segera mendapat manfaat dari pengakuan konten mana yang menjadi milik Anda (dan Anda dapat dengan bebas menyalinnya) dan aplikasi mana yang dikelola oleh pemasang.

Jadi ketika menginstal secara manual (dengan menyalin), jauhi

  • C:\Program Files - program yang ditemukan di sini tidak dapat dimigrasi begitu saja, harus diinstal ulang (memberikan petunjuk yang bagus untuk migrasi)
  • C:\Program Files (x86) - seperti di atas, tetapi pada sistem 64-bit, program 32-bit buka di sini (dapat memberikan petunjuk untuk menentukan apakah aplikasi tertentu 32-bit atau 64-bit)
  • C:\ProgramData- penyimpanan aplikasi yang ditemukan di sini menunjukkan bahwa program-program ini memelihara sebagian data mereka dengan caranya sendiri. Tetapi Anda bertanya tentang menempatkan program Anda di bawah Data? Bukan ide yang bagus.
  • C:\Users\Steven\AppData- lagi, menempatkan program di bawah Data bukanlah ide yang baik. Jika Anda bertanya tentang data, maka beberapa hal menarik dapat ditulis tentang jalur ini. Tetapi untuk program hanya 'tidak'. :)

Jalur yang memungkinkan

  • C:\Users\Steven- dapat menjadi root alternatif Anda jika ini adalah komputer bersama dan Anda ingin menjaganya tetap rapi, sehingga Anda memutuskan untuk tidak membuat direktori global. Anda dapat mempertimbangkan C:\Users\Steven\Toolsuntuk program Anda atau bahkan C:\Users\Steven\Desktop\Toolsjika Anda ingin menggunakan akses folder Desktop yang nyaman tersedia melalui pintasan dari banyak tempat di Windows. Tetapi yang lebih baik bisa menjadi yang pertama dan Anda masih dapat menempatkan pintasan ke folder ini ke desktop atau kapan pun diperlukan.

Sunting: Petunjuk bermanfaat tambahan:

Jika Anda ingin membuat beberapa program kecil Anda dikenali di menu Start Windows 10 (untuk pencarian tambahan nama mereka atau mulai instan yang ditingkatkan menggunakan Ctrl+ Shift+ Enter), tambahkan pintasan mereka di sana dan luncurkan sekali . (Kemudian Anda dapat menghapusnya.)


Ini kedengarannya bagus, tetapi apakah didukung oleh dokumentasi praktik terbaik atau semacamnya? Jika demikian, itu akan sangat meningkatkan jawabannya.

@DoritoStyle - Anda mungkin perlu memeriksa dokumentasi praktik terbaik saat ini di perusahaan Anda. Jika Anda tahu tentang beberapa dokumentasi praktik terbaik yang lebih umum, beri tahu saya dan saya akan memeriksanya.
miroxlav

1
Saya menggunakan "C: \ Utility" tetapi sebaliknya gunakan pendekatan yang sama ini!
Jon Schneider

Akankah sesuatu yang lain, alih-alih 'Alat' bekerja dengan baik: Jika saya menggunakan sesuatu seperti C:\Otheratau C:\Users\<user>\Other, apakah itu akan dianggap sama "sah" dengan 'Alat'?
Henrik

@ Henrik - karena tidak ada standar, gunakan apa pun yang sesuai dengan perasaan Anda dan cukup jelas. Sebagai contoh, saya mencoba C: \ Progs (nama membangkitkan program-program kecil tanpa installer), tetapi pada akhirnya rasanya tidak intuitif jadi saya mengembalikan nama itu kembali ke Tools.
miroxlav

11

Sejauh yang saya tahu tidak ada pendekatan universal.

Menempatkan aplikasi Anda C:\Program Filesadalah cara yang agak standar. Dan Anda akan mendapatkan perlindungan akses : pengguna biasa (dan tidak ditinggikan) tidak dapat menulis C:\Program Files. Jadi Anda tidak dapat menghapus, menimpa file seperti itu secara tidak sengaja; dan mereka lebih terlindungi dari virus.

Itulah sebabnya Anda mendapatkan peringatan - permintaan elevasi - saat Anda mencoba membuat folder C:\Program Files.

Karenanya, C:\Program Filesadalah tempat paling aman untuk file yang dapat dieksekusi.

Namun, itu tidak cocok untuk aplikasi (portabel) yang menyimpan konfigurasi mereka di dekat .exekarena mereka tidak akan dapat menyimpan perubahan konfigurasi.


C:\ProgramDataadalah untuk menyimpan data aplikasi yang dibagikan di antara pengguna. Secara default semua pengguna dapat membuat file dan folder di sini tetapi hanya pengguna yang membuatnya dapat memodifikasi file.

Folder ini dapat dengan mudah digunakan untuk aplikasi / alat yang dibagikan. Pada saat yang sama, saya tidak pernah melihat aplikasi di folder ini.


Jika Anda menempatkan aplikasi di profil pengguna Anda C:\Users\<username>,, pengguna lain dari sistem tidak akan memiliki akses ke sana. Anda memiliki semua izin untuk profil Anda, sehingga Anda tidak akan mendapatkan peringatan keamanan apa pun. Itulah alasan mengapa Chrome memasang ke dalam profil pengguna: Chrome dapat memperbarui dirinya sendiri dengan mudah tanpa meminta peningkatan.

Dalam mode per pengguna, Windows Installer mengemas, .msifile, menginstal ke C:Users\<username>\AppData\Microsoft\Installer\<ProductId>. Jadi cukup standar untuk menyimpan aplikasi yang tidak dibagikan di profil pengguna.

Saya memiliki utilsfolder di profil pengguna saya dengan aplikasi yang hanya berguna bagi saya. Folder ini ditambahkan ke PATHvariabel lingkungan pengguna saya untuk akses mudah.

Untuk aplikasi bersama, saya menggunakan C:\toolsatau direktori serupa, mungkin di drive lain. Itu ditambahkan ke PATHvariabel global .


7

Saya setuju dengan jawaban yang sudah diberikan untuk beberapa hal. Tetapi untuk program yang sangat kecil (utils) saya cenderung meletakkannya di folder bin (dalam kasus saya E: \ bin). Program-program ini biasanya file exe tunggal atau skrip python saya sendiri. Saya menambahkan folder ini ke variabel PATH sehingga saya dapat menggunakan program ini dari baris perintah (yang saya cenderung gunakan cukup banyak).


Saya juga mempertimbangkan membuat generik C:\Program Files\binuntuk jenis alat dan utilitas ini. Terima kasih untuk umpan baliknya.
hippietrail

5

Sejauh yang saya tahu tidak ada praktik terbaik. Ini benar-benar terserah Anda secara pribadi untuk memutuskan bagaimana Anda ingin menanganinya.

Saya cenderung mengikuti standar yang sama dengan aplikasi apa pun dengan penginstal. Jika ini adalah executable atau library saya akan menempatkan di \Program Files\apakah itu 64Bit dan Program Files (x86)\jika 32Bit.

File data yang saya cenderung simpan di Usersfolder saya karena biasanya khusus untuk pengguna.

Ada juga aplikasi seperti Google Chrome dan Click-Once Applications yang digunakan Users\AppData\, namun ini biasanya tidak tersedia untuk beberapa profil.

Saya lebih suka metode pertama karena jika saya harus masuk di profil lain atau sebagai administrator saya masih dapat mengakses aplikasi.

Sehubungan dengan peringatan izin. Persis seperti itu, peringatan . Ini hanya untuk memperingatkan Anda agar tidak menggunakan folder karena alasan yang salah, namun itu tidak mencegah Anda menggunakannya.


4
Saya sarankan untuk tidak menginstal aplikasi secara manual di folder Program Files, karena aplikasi tanpa installer sering kali lebih tua atau port dari sistem operasi lain, sehingga mereka tidak selalu dapat mengatasi ruang yang ada di path. YMMV.
Harry Johnston

3
Saya sarankan untuk tidak menginstal apa pun secara manual %ProgramFiles%juga, tetapi untuk alasan lain: aplikasi tanpa installer sering kali portabel, dan Anda tidak memiliki izin menulis di sana
kinokijuf

4

Jika Anda ingin membakukan aplikasi ini maka saya sarankan menggunakan standar paket Chocolatey . Ini bagus karena banyak alasan berbeda; terutama karena banyak perangkat lunak telah dikemas untuk Anda dan siap untuk diinstal dari mana saja hanya dengan beberapa perintah.

Juga mudah untuk membuat paket sendiri untuk aplikasi yang tidak dapat Anda bagikan dengan bebas. Anda mungkin memiliki hak untuk mendistribusikan apa pun yang Anda miliki di jaringan Anda sendiri; jadi untuk aplikasi-aplikasi tersebut Anda dapat mengatur repositori lokal . Jika Anda mengelola banyak komputer atau memiliki bandwidth internet terbatas, ini dapat membantu bahkan untuk hal-hal gratis.


2

Jika Anda mengambil pilihan instalasi default cygwin, ia menempatkan semua file Anda di c: \ cygwin. Saya akan mengambil pendekatan yang sama. Saya pribadi punya folder ac: \ apps. Di masa lalu, saya telah menggunakan c: \ utils, dan c: \ cli (kependekan dari command line). Itu sangat tergantung pada bagaimana Anda ingin mengatur file Anda. Saya akan menyarankan utilitas tunggal untuk menempatkan mereka di folder catchall. Untuk seperangkat utilitas (misalnya cygwin, sysinternals, rktools), mungkin saya sarankan subfolder sendiri. Misalnya, Anda dapat meletakkan semua sysinternals di dalam c: \ apps \ sysinternals. Jika Anda menginstal cygwin, itu akan mengambil sebagian besar (jika tidak semua) perintah Unix yang Anda sukai.

Ingatlah untuk mengubah variabel lingkungan Anda (Mulai> Panel Kontrol> Sistem> Tingkat Lanjut> Variabel Lingkungan) dan tambahkan semua jalur aplikasi baru ke variabel sistem PATH Anda. Ini memungkinkan Anda untuk menjalankannya berdasarkan permintaan dari prompt perintah atau dengan menggunakan Windows + R (jalankan perintah).


5
Saya pikir pengembang Cygwin tidak peduli tentang standar Windows dan salah menyalin kebiasaan buruk mereka (membuat folder di direktori root). Saya merasa seperti membuat \Program Filesdirektori di linux.
Kamil

Saya tidak tahu mengapa itu akan menjadi hal yang buruk. Cygwin adalah untuk lingkungan Unix. Mengapa Cygwin akan memenuhi standar Windows, ketika itu untuk orang-orang yang ingin menggunakan alat Unix?
Sun

@Sun persis! OP meminta praktik terbaik Windows.

1

C:\Users\Me\toolName(alias% homepath% \ toolName) adalah tempat yang tepat untuk meletakkan alat dengan anggapan Anda menginginkannya bagi Mepengguna karena beberapa alat ini menulis file (temp) dan akan memerlukan izin pengguna untuk menulis ke Program filesfolder. Kelebihan lainnya adalah Anda tidak akan lupa untuk mencadangkannya karena sudah ada di ruang pengguna.


2
Saya akan menggunakan %homepath%' rather than c: \ users \ me`. Ini menunjuk ke lokasi yang tepat bahkan jika lokasi default dipindahkan, dan karenanya lebih portabel. +1 untuk bagian tulisan / temp.
Hennes

saya berdiri dikoreksi dan diedit karena alasan itu ditambahkan dan tidak diganti adalah untuk menjawab dengan istilah yang sama seperti pertanyaan, terima kasih Hennes :)
Elazaron

0

Tidak ada aturan tentang ini, Anda dapat menginstalnya di mana saja Anda mau, tetapi menginstalnya ke OSP Anda (Sistem Operasi Partisi) di folder non-pengguna umumnya adalah ide yang baik, karena Anda akan mendapatkan perlindungan akses yang sama apakah Anda memiliki aplikasi lain; ini membuatnya lebih sulit untuk dihapus secara tidak sengaja, atau dimodifikasi oleh pihak ketiga (misalnya: virus).

Secara pribadi, saya biasanya meletakkan program di "C: \ Program Files (x86)", karena sebagian besar program yang saya temui adalah 32bit, tetapi jika itu adalah program 64bit maka saya akan meletakkannya di C: \ Program Files " Jika ini adalah program yang terkait dengan sistem (mis: Imagex.exe) maka saya akan meletakkannya di "C: \ Windows \ system32" untuk program 32bit, dan "C: \ Windows \ system32" untuk program 64bit untuk memungkinkan akses yang lebih mudah dari baris perintah ketika menjalankan perintah yang ditinggikan akan meminta, karena Anda memulai di C: \ Windows \ system32 "secara default; ini berarti Anda dapat mengetik "name.exe" alih-alih C: \ location \ name.exe "untuk menjalankan program.

Beberapa orang lebih suka memisahkan portable mereka (tidak memerlukan instalasi atau melakukan pergantian tanpa pengawasan di luar foldernya), dan program-program berbasis non-installer (bukan portable, tetapi tidak memerlukan penggunaan installer) dari program reguler dengan membuat direktori baru pada OSP mereka (misalnya: C: \ Portable Program Files (x86), atau C: \ Dumpable Program Files (x86). Saya akan menyarankan ke-2 dari 2 mengingat tingkat akurasi yang lebih besar, bahkan jika itu tidak terdengar seperti cantik.

Untuk meringkas, tidak ada aturan, namun jika Anda menginstalnya ke OSP (dalam folder non-pengguna) Anda akan dapat membantu melindungi program dari instalasi / modifikasi yang tidak diinginkan (termasuk modifikasi berbahaya), dan dalam beberapa keadaan organisasi dapat bermanfaat (misalnya: folder system32 yang disebutkan sebelumnya untuk program CLI sistem).


1
Saya pikir Anda telah salah paham pertanyaannya. Bagian pertama dari pertanyaan awal adalah "Praktik terbaik", bukan "Apa aturannya".
Steven Penny

@ SevenPenny Tidak sama sekali, hanya ungkapan yang berbeda. Inti dari pertanyaan adalah alasan untuk melakukan X atau tidak melakukan X.
Robin Hood

Saya baru saja datang dengan sesuatu yang saya sukai: Etcatau Etceterajika Anda lebih suka latin banci mewah. Di tempat kedua yang dekat, saya juga mempertimbangkan Misc. Tetapi Etcmenyegel kesepakatan untuk saya. :)
Henrik

0

Saya pikir membuat jalan pintas ke C:\Toolsdalam Send Tomenu di windows adalah pilihan terbaik karena selalu dapat diakses dari mana saja. Dengan cara ini Anda dapat dengan cepat "menginstal" program kecil Anda dengan mengklik kanannya dan memilih Alat dari menu Kirim Ke dari mana saja di Windows.

Saya mendapatkan Tutorial ini tentang Cara menambahkan ke menu Kirim Ke dari HowToGeek.
Saya menempelkan ringkasannya:

Untuk sampai ke folder SendTo, Anda harus membuka jendela Explorer, lalu menempelkan yang berikut ke bilah alamat.

% APPDATA% \ Microsoft \ Windows \ SendTo

Kemudian Tempelkan pintasan folder yang Anda inginkan agar program Anda disalin di sana.

Lalu setiap kali Anda mengunduh aplikasi portabel baru saja mengekstraknya dan mengirimkannya ke tempat itu.
Satu-satunya masalah adalah pembuatan cara pintas yang menurut saya layak dilakukan secara manual.
Salam.


The Send To folder tidak benar-benar cocok untuk digunakan sebagai lokasi untuk menginstal sebuah program. Ini memiliki tujuan khusus, yaitu, untuk memungkinkan pengiriman file / dokumen untuk penanganan lebih lanjut oleh suatu program (misalnya Membuka file di Notepad). Selanjutnya, semua file yang ditempatkan di folder Kirim Ke akan muncul pada menu Konteks Windows, termasuk mendukung .DLL. Itu jelas tidak diinginkan dalam sebagian besar kasus.
Saya katakan Reinstate Monica

1
Tidak. Sepertinya Anda dan semua downvoter tidak mengerti apa yang saya maksud. Maksud saya Tambahkan jalan pintas misalnya C:\Tools\ ke Send Tofolder dan mengaksesnya dari mana saja maka Anda tidak akan kesulitan untuk mengatasi setiap program Anda secara manual. Jawaban saya kemungkinan akan membuat proses coping lebih cepat untuk hal-hal lain dibaca orang lain. Ini bagus untuk saya.
UltraDEVV

Saya membuat kemungkinan pengeditan untuk menyertakan klarifikasi tambahan ini dalam jawaban Anda. Jawaban dipilih / turun berdasarkan jawaban, tidak harus pada perincian yang disertakan dalam komentar, jadi semoga ini membantu.
Saya katakan Reinstate Monica

Tidak, dimulai dengan Windows Vista, %APPDATA%variabel di-root di %USERPROFILE%\AppData\Roamingfolder, jadi untuk Windows 7 jalur di atas benar. Di Windows XP Anda perlu menambahkan folder Roaming seperti yang Anda tunjukkan.
Saya katakan Reinstate Monica

Jika Anda yakin pertanyaan Anda tidak jelas, Anda harus menjelaskannya. Mengapa Anda mengirimkan dua jawaban?
Ramhound

0

Variabel standar lingkungan Path sistem di windows adalah sesuatu seperti (Tergantung pada versi windows yang diinstal):

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

Dari opsi-opsi itu,% SystemRoot% (yang biasanya C:/) sepertinya merupakan pilihan terbaik untuk Anda baca / tulis dan akan mudah untuk referensi nanti.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.