Bagaimana cara melacak perangkat lunak yang diinstal

8

Kadang-kadang saya perlu memperbarui perangkat lunak yang berjalan di salah satu testservers kami di tempat kerja (kebanyakan Debian). Yang benar-benar membingungkan saya hampir setiap waktu adalah kenyataan bahwa tidak hanya ada satu cara untuk menginstal perangkat lunak. Hari ini saya perlu memperbarui Coffeescript. Saya tidak tahu bagaimana itu diinstal pada awalnya dan karena itu tidak bagaimana memperbaruinya dengan cara terbaik.

Itu bisa saja diinstal dengan apt atau secara manual dengan mengkloning github-project dan membangunnya sendiri atau melalui package manager nodejs npm. Setelah saya berjuang dengan ini dan secara manual membuang semua file yang berhubungan dengan coffeescript dan dirs pergi saya berhasil melakukan instalasi baru. Tapi kemudian saya ingin menggunakan perintah coffeescript yang membutuhkan nodejs 0.6 dan 0.4 diinstal.

Jadi, biarkan permainan dimulai lagi!

Apakah nodejs diinstal secara manual? Atau sebagai paket? Atau ditempatkan di sana oleh tuhan? Saya tidak tahu

Jadi saya bertanya pada diri sendiri apakah ada strategi mudah untuk memperbarui perangkat lunak yang diinstal ketika Anda tidak benar-benar tahu bagaimana itu diinstal secara awal? Apa pendekatan terbaik di sini?

puncak
sumber
2
Imho, pendekatan terbaik adalah tidak memasuki kondisi ini sejak awal. Mendikte bahwa semua perangkat lunak harus dikemas atau tidak akan diinstal, jika perlu buat paket sendiri. Kemudian letakkan ini di server paket internal Anda.
Sirex

Jawaban:

7

Ada aturan sederhana yang harus Anda ikuti, yang akan menyelesaikan sebagian besar kasus:

Jangan pernah menaruh file di bawah /bin, /lib, /sbinatau /usr, kecuali /usr/local, tanpa melalui manajer paket.

Dengan cara ini, jika file berada di area yang dikelola oleh manajer paket, Anda tahu itu berasal dari sebuah paket. Jika tidak, Anda tahu Anda menginstalnya secara manual.

Anda harus tetap berpegang pada paket yang disediakan oleh distribusi Anda jika memungkinkan. Instal hanya paket pihak ketiga jika Anda memiliki kebutuhan terdokumentasi untuk fungsionalitas yang tidak disediakan oleh distribusi. "Saya ingin memiliki versi terbaru" bukan pembenaran yang valid. Jika Anda menginstal paket pihak ketiga, catat di mana Anda mendapatkannya, dan arsipkan paket ( .rpmatau .debfile) di suatu tempat. Privilege apt atau yum sumber melalui unduhan web acak.

Gunakan stow atau xstow untuk program yang Anda instal secara manual.

Gunakan dllkeeper untuk tetap di /etcbawah kontrol versi . Komit setiap kali Anda melakukan perubahan, dengan pesan yang bermakna.


Jika Anda mengalami situasi di mana Anda melakukan hal-hal dengan cara kotor dan kehilangan jejak dari mana sebuah perangkat lunak berasal:

  • Instal versi bersih dari perangkat lunak itu, di lokasi yang tepat mengikuti saran di atas.
  • Uji bahwa instalasi baru berfungsi untuk tujuan yang Anda maksudkan.
  • Alihkan layanan Anda untuk menggunakan instalasi baru.
  • Bersihkan instalasi lama sebaik mungkin.
Gilles 'SANGAT berhenti menjadi jahat'
sumber
1

Saya dapat menyarankan Anda untuk menggunakan puppetuntuk melacak perangkat lunak yang diinstal di linux.

Wayang, mesin administratif otomatis untuk sistem * nix Anda, melakukan tugas-tugas administrasi (seperti menambah pengguna, menginstal paket, dan memperbarui konfigurasi server) berdasarkan spesifikasi terpusat.

Anda dapat merujuk tautannya

Mughil
sumber
Terima kasih untuk tautannya! Tapi saya butuh sesuatu di baris perintah. Sepintas, boneka hanya berfungsi dengan sistem desktop.
acme
1

Jika Anda menginstal paket apa pun menggunakan apt-get, semua paket dependen akan menginstal sendiri karena apt-get menyelesaikan semua dependensi.

Dalam kasus saya, saya mencoba untuk menginstal setiap paket dengan baris perintah menggunakan apt-get sejauh paket ada di repositori Ubuntu. Jika tidak ada dalam repositori mereka, maka Anda harus membaca manual instalasi utilitas itu dan menginstalnya berdasarkan apakah utilitas tersebut menggunakan Makefile atau yang lainnya.

pradeepchhetri
sumber