DEB dosyasına göre bir uygulamayı sadece bir kullanıcı için nasıl kurarım?


33

Uygulamaları yazılım merkezi veya DEB dosyası aracılığıyla yüklerken, genellikle tüm kullanıcılar için sistem genelinde kurulur.

Tek bir kullanıcı için uygulama kurmanın bir yolu var mı?

Yanıtlar:


5

Neyi başarmak istediğinize bağlı olarak, bu işi yapmanın farklı yolları olabilir (veya en azından istediğiniz işlevselliğin kesin bir kesimini verin).

Yazılımın birçok şekilde kurulması, kaynakları kullanılabilir duruma getirmek veya sistemde zaten mevcut olan şeylere erişime izin vermekle ilgilidir.

Yazıcılara erişim izni vermek veya bir kullanıcının belirli bir dizinde programları yürütmesine izin vermek konusunda konuşsanız da, bunu başarmanın yolları vardır ve Ubuntu'da yerel olsalar bile, bu tür çözümler genellikle (elbette) Bir .deb kurulum gerçeğinden sonra eklenecek.

İşte eklenebilecek iki genel kurulum sonrası kontrol sınıfı. Doğru ortam göz önüne alındığında, örneğin sıkı bir şekilde kontrol edilen bir grup politikası uygulandığında, temel sistemi yerine getirdikten sonra bunun daha kolay olabileceğini unutmayın. Bu tür izinler LDAP'ye veya kullanıcı başına veya grup kimlik doğrulaması ve yetkilendirme verebilecek benzer bir sisteme bile bağlanabilir.

Görünürlük kontrolü
Belki de kendime biraz benzer bir durum yaşadım, fakat benim durumumda kullanıcılar (henüz) çok karmaşık değildi (hepsi 7 yaşın altındaydı). Benim için sadece Gnome menülerini gizlemek ve masaüstü rampalarını kaldırmak çalıştı.

Yürütülebilir bit'in dizinlerden çıkarılması, işlemlerin onları arama veya geçiş kabiliyetini ortadan kaldırır. Onları etkin bir şekilde görünmez hale getirebilir ve kullanıcı açısından kullanılamaz hale getirebilir. Örneğin, dosya erişimine dayalı menüler oluşturan varsayılan bir sistem politikanız varsa, bu tür bir kozmetik çözümü uygulayabilir ve daha sonra ek bir çaba göstermeden sonraki yüklemelerde çalışmasını sağlayabilirsiniz.

Yürütme kontrolü
Kaynağın kontrolü Unix izinleri, apparmor profilleri, SELinux izinleri vb. İle yapılabilir. Uygulamaya bağlı olarak devreye girebilecek başka kontrol filtreleme seviyeleri olabilir. Daha fazla hedefli çözüm yoksa, kullanıcıyı kontrol etmek veya erişimi kontrol etmek için belirli programların etrafına sarmalayıcılar yazmanız gerekebilir.


3
Görünürlüğü ve yürütme kontrolü yönünü ayırmak için +1
Takkat

10

Eh dpkgbu da tasarım amacı olmadığı için size yardımcı olmayacaktır. Bir sistemde kurulu bir kök paket nüfus sayımı olmak istiyor.

Aklıma gelen tek şey sadece paketi çıkarmak ve dosyaları el ile giriş dizinine yerleştirmeye çalışmak.

Ancak bu sadece bazı şeyler için çalışacaktır. Çok sayıda paket, parçalara ayrılır (çalıştırılabilir veya komut dosyaları /usr/bin, kitaplıklar /libve diğer kıyafetler /usr/share, vb.) Ve bu konumlar derleme komut dosyaları tarafından kodlanır. Böylece böyle bir şeyi içine çekmeye çalışırsanız ~, kırılır. Bağımlılıkları gevşetmek için saatler harcayabilirsiniz, ancak zamanınız için kanser tedavisini bulmak veya dünyadaki güzelliğin bir kısmını emmek gibi faydalı bir şey yapıyor olabilirsiniz.

Sadece yazılımı yazan kişiden, paketlenmemiş bir sürümü kapmak için çok daha iyisini yaparsınız. Hemen hemen tüm özgür yazılımlar kaynak olarak sıkıştırılmış bir arşiv biçiminde mevcuttur; Sen make installadım atmıyorsun. Uygulamanız inşa edildi, sadece istediğiniz yere koyun.


1
Son seçenek: Bana göre bazı (basit program) durumlarda yardımcı olabilir, ancak genellikle örneğin paketler init komut dosyaları yükler /etc/init, yapılandırma dosyalarına bakar /etcveya kodlanmış başka yollara sahiptir.
düzenleme

2
Autoconf'a dayalı projeler, üzerinden özel bir yükleme dir ayarlamanıza izin verebilir ./configure --prefix=$HOME/local.
Ingo Karkat 17:12

6

Bu konu hakkında çok fazla bilmiyorum, ama başka bir dizine yerine bir paket yüklemek mümkün olabilir diğer cevaplardan görünüyor /ile dpkgkullanılarak --rootparametre ve sonra yapmak chrootpaketi "oldu dir "içinde (elbette kullanıcının ana dizininde bir dir olabilir) yüklü.

Başka bir kullanıcıya paket yüklemek rootiçin yukarıdaki işlemleri fakechrootyerine kullanmak mümkündür chroot.

Yasal Uyarı : Bu deneyin vermedi ve birlikte yazılma zamanında çok tecrübem yok dpkgya chrootben yapacağım ama gelen yok Bu araçlar hakkında bilmek, bu işlem sadece olabilir çalışır.

Yeteneği chrootolmayan bir etkiyi elde etmek isteyen insanlar için yararlı olabilecek bilgilere sahip bağlantılar root:

Güncelleştirme

Şimdi bu konuya dokunacak şeyleri biraz yaptım ve daha fazlasını öğrendim ...

Parçalar (yerel çevre yapı taşları):

  • Fakechroot - öykünürchroot(1)
  • Debootstrap - Bir dizinde başka bir Debian dosya sistemi hiyerarşisi oluştur
  • Fakeroot-NG / fakeroot - Bazı şeylerin kökü gibi davranabilir
  • EmDebian - Daha az alan kullanan ve çoğu zaman chroot ortamlarında kullanılan debian varyantı
  • binfmt_misc - Tercümanlarını kullanarak yerel ikili dosyalar gibi dosyaları çalıştırabilir; qemu kullanıcısı ile birlikte, QEMU kaynak kodu ile gelen yabancı mimarilerin ( scriptler / qemu-binfmt-conf.sh ikilileriyle (veya (sahte) chroot'unda) çalışmak için faydalıdır.
  • Qemu kullanıcı alanı - Diğer mimarilerin ikili dosyalarını çalıştırabilir; Bazı işlemci mimarilerini desteklemediklerinde bu araçların bazıları ile kullanılabilir.
  • LwIP - Kullanıcı alanından çalıştırılabilen bir TCP / IP ağ yığını

Tam (tam yerel çevre sağlayıcıları):

  • Kullanıcı modu linux - normal bir işlem / program olarak başka bir linux sistemi çalıştırır
  • Qemu - Tam bir sanal bilgisayar çalıştır
  • PRoot - işlevselliklerini Sağlar chroot(1), mount --bind, binfmt_miscve kullanan diğer mimarileri gelen ikilileri çalıştırıyorsanız qemu-kullanıcı alanı
  • Linux ad alanları - Linux çekirdeği 3.8 ve sonraki sürümlerinde kullanılabilen bir özellik olan kullanıcı ad alanlarını kullanırken, yerel bir ortamda tam kök olmasına izin verir .

Özet : Yerel olarak yerel olarak kök ayrıcalıklarına sahip olan veya gerçekten sahip olan DEB paketleri, yerel bir ortam için yüklenebilir.


3
Önceki bilgilerinizle çelişen bilgileriniz varsa (veya bir şey eklediğini düşünüyorsanız) cevabınızı tamamen yeniden biçimlendirmekten çekinmeyin. Pek çok durumda, ek "Düzenle" veya "Güncelle" bölümleri eklemek yerine tekrar silerseniz cevabınız daha net olacaktır. Bilgileriniz ilginç, ancak muhtemelen en alakalı kısımlar dibe sıkışmış.
belacqua

@jgbelacqua - yeniden biçimlendirildi, ipucu için teşekkür ederiz.
Abbafei

4

Büyük olasılıkla başka bir dizine yükleme --rootseçeneğini kullanabilirsiniz dpkg. Ancak uygulama gibi sabit yerlerde şeyler ararsa muhtemelen sorunla karşılaşacaktır /etc.

Kısacası, kolay bir yol olduğunu sanmıyorum.


2

Yürütülebilir dosyanın sahipliğini değiştirerek yalnızca bir kullanıcının çalıştırmasını sağlayabilirsiniz. Ardından, gerekirse, uygulamayı diğer kullanıcıların menülerinden kaldırabilirsiniz.


1
Tek bir kullanıcı için bir uygulama kurmak istemek için ortak bir motivasyon, kurulum için idari ayrıcalıklara ihtiyaç duymamaktan kaçınmaktır.
ændrük

@ ændrük Ancak, zaten bir .deb dosyasından yüklüyse, yönetici ayrıcalıkları almıyor muyuz?
belacqua

@jgbelacqua Bildiğim kadarıyla, evet, bir .deb dosyasından yüklemek için yönetici ayrıcalıkları gerekir. Ancak, daha genel olarak, "yalnızca tek bir kullanıcı için" bir şey yüklemek, hiçbir zaman sistem genelinde yönetim için kullanılan ayrıcalıkların yükseltilmesini gerektirmemelidir. Örneğin, sık sık programları yalnızca kendime uygulayarak yerleştiririm ~/bin. Takkat'ın çok kullanıcılı bir uygulamanın erişimini / görünürlüğünü kısıtlamak isteyip istemediği veya tek kullanıcılı bir uygulama yüklemek isteyip istemediği konusunda bir belirsizlik var. Sizin ve aranjmanların soruları eski yorumu kullanır ve gerisi ikinciyi kabul eder.
ændrük

1

Şüpheli.

Deb'ler esas olarak , kurulduklarında dosya sisteminizin kökünden çıkarılan arşivlerdir (ayrıca bazı config). Bunları yalnızca bir kullanıcı için yüklemek istiyorsanız, bir şekilde / home / user klasörüne yüklemeniz gerekir. Bunu yapmış olsanız bile, çalışma ikili dosyaları / usr / bin (veya sth benzeri) içerisine girmeyeceğinden ve çalıştırmaya çalışırsanız sistem bunları bulamayacağından işe yaramazlar. Benzer şekilde kütüphaneler vb., Sistemin / evde bir yerde olduğunu bilmeyeceğinden, faydasız olacaktır. Brute-force yaklaşımını deneyebilir ve PATH değişkenini dosyaları deb arşivinden çıkardığınız yere işaret edecek şekilde ayarlayabilirsiniz, ancak bu sadece ÇOK olmayacaktı güvensiz, ancak uyumluluk sorunlarına neden olabilir (örn. GNOME .desktop dosyalarını / usr / share / apps içinde olmasını sağladığı için menü girişleri çalışmaz).

Ayrıca, yalnızca bazı kullanıcılar için bir paket yüklediyseniz, bu bağımlılık sorunlarına neden olabilir, başka bir kullanıcıyla yüklediğiniz başka bir paketle yalnızca kendiniz için yüklediyseniz ve muhtemelen tonlarca başka paket yönetimi ile ilgili sorunlar ortaya çıkacaksa, bu çılgınca bağımlılık sorunlarına neden olabilir.

Tüm bu sıkıntılar, paketlerin kullanıcılar için ayrı ayrı yönetilmesini oldukça zorlaştırmaktadır, bu yüzden onları sadece bir kullanıcı için kurmak mümkün değildir, çünkü .debs'in arkasındaki fikir buna izin vermemektedir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.