Автор темы
#1
find ile sürüm ve bağımlılık kontrolü
Giriş ve nedenleri
İşletim sistemi üzerinde bir proje veya yazılım paketinin sürüm ve bağımlılıklerini hızlı bir şekilde taramak, güncel kalmayı ve güvenilir dağıtımları sağlamak için kritik olabilir. Özellikle çok sayıda modül veya bileşenin bulunduğu projelerde, hangi sürümlerin kullanıldığını ve hangi paketlerin birbirine bağımlı olduğunu net biçimde görmek gerekir. Bu amaçla find komutu, dosya yapısı içinde belirli saat, boyut veya adlandırmayla dosyaları filtrelemek için kullanışlıdır; sürüm numaralarını içeren dosyaları, yapılandırma dosyalarını veya bağımlılık listelerini toplu halde bulmak için etkili bir araçtır.
1) Kaynaklar ve sürüm dosyalarının konumlandırılması
Bir projede sürüm bilgileri genelde şu yerlerde bulunabilir:
2) Find ile hedeflenen dosyaları toplama
Örneğin proje kökünde tüm bağımlılık dosyalarını bulmak için:
3) Sürümlerden hızlı özet çıkarma
Birden çok dosyada sürüm bilgisi varsa, her dosyadan sürümü çekmek için basit bir arama kullanabilirsiniz:
Veya özel dosya adları için:
4) Bağımlılık bağımlılıklarını izlemek
Bir proje içerisinde hangi modülün hangi diğer modüle bağımlı olduğunu görmek için:
5) Otomasyon için küçük akışlar
[code]diff
Giriş ve nedenleri
İşletim sistemi üzerinde bir proje veya yazılım paketinin sürüm ve bağımlılıklerini hızlı bir şekilde taramak, güncel kalmayı ve güvenilir dağıtımları sağlamak için kritik olabilir. Özellikle çok sayıda modül veya bileşenin bulunduğu projelerde, hangi sürümlerin kullanıldığını ve hangi paketlerin birbirine bağımlı olduğunu net biçimde görmek gerekir. Bu amaçla find komutu, dosya yapısı içinde belirli saat, boyut veya adlandırmayla dosyaları filtrelemek için kullanışlıdır; sürüm numaralarını içeren dosyaları, yapılandırma dosyalarını veya bağımlılık listelerini toplu halde bulmak için etkili bir araçtır.
1) Kaynaklar ve sürüm dosyalarının konumlandırılması
Bir projede sürüm bilgileri genelde şu yerlerde bulunabilir:
- package.json, package-lock.json veya yarn.lock gibi paket yöneticisi dosyaları
- requirements.txt, Pipfile veya poetry.lock gibi Python bağımlılık dosyaları
- pom.xml, build.gradle gibi Java ekosisteminde sürüm bilgileri
- Dockerfile veya docker-compose.yml gibi konteynerli ortamlarda sürüm etiketleri
- README veya sürüm etiketlerini içeren sürüm dosyaları (VERSION, CHANGELOG)
2) Find ile hedeflenen dosyaları toplama
Örneğin proje kökünde tüm bağımlılık dosyalarını bulmak için:
КОД
1find . -type f \( -name "package.json" -o -name "requirements.txt" -o -name "Pipfile" -o -name "poetry.lock" -o -name "pom.xml" -o -name "build.gradle" \) -print3) Sürümlerden hızlı özet çıkarma
Birden çok dosyada sürüm bilgisi varsa, her dosyadan sürümü çekmek için basit bir arama kullanabilirsiniz:
КОД
1find . -type f -name "[i].json" -or -name "[/i].toml" -print0 | xargs -0 grep -H "version"Veya özel dosya adları için:
КОД
1grep -R --include="package.json" "version" .4) Bağımlılık bağımlılıklarını izlemek
Bir proje içerisinde hangi modülün hangi diğer modüle bağımlı olduğunu görmek için:
- Node/npm sistemlerinde:
КОД
1cat package.json | jq '.dependencies, .devDependencies'- Python için:
КОД
1pipdeptree -w silence- Java için:
КОД
1grep -E "|" pom.xml -n5) Otomasyon için küçük akışlar
- Find ile belirli sürüm kalıplarını yakalamak:
КОД
1find . -type f -name "[i].json" -print0 | xargs -0 grep -E "\"version\"\\s[/i]:\\s*\"([^\"]+)\"" -H- Farklı sürüm dosyalarını karşılaştırmalı özetlemek:
[code]diff
