Jeśli umieścisz swoje pliki binarne we własnych RPM, to banalne jest uzyskanie listy tego, czym są i gdzie zostały zainstalowane.
Przykład
$ rpm -ql httpd| head -10
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d
/etc/httpd/conf.modules.d/00-base.conf
Sugerowałbym umieszczenie swoich plików wykonywalnych w jednym /usr/bin
lub /usr/local/bin
i uruchomienie własnego RPM. Jest to dość trywialne, a zarządzając wdrożeniem oprogramowania za pomocą RPM, możesz oznaczyć pakiet numerem wersji, co jeszcze bardziej ułatwi zarządzanie konfiguracją oprogramowania podczas jego wdrażania.
Ustalanie, które RPM są „moje”?
Możesz budować swoje RPM wykorzystując znane informacje, które mogą zostać uzgodnione przed wykonaniem budowy. Często buduję pakiety na systemach należących do mojej domeny, więc znalezienie RPM jest proste, wystarczy przeszukać wszystkie RPM zbudowane na hoście X.mydom.com.
Przykład
$ rpm -qi httpd
Name : httpd
Version : 2.4.7
Release : 1.fc19
Architecture: x86_64
Install Date: Mon 17 Feb 2014 01:53:15 AM EST
Group : System Environment/Daemons
Size : 3865725
License : ASL 2.0
Signature : RSA/SHA256, Mon 27 Jan 2014 11:00:08 AM EST, Key ID 07477e65fb4b18e6
Source RPM : httpd-2.4.7-1.fc19.src.rpm
Build Date : Mon 27 Jan 2014 08:39:13 AM EST
Build Host : buildvm-20.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
To byłaby Build Host
linia w RPM.
Użycie / usr / bin / company?
Prawdopodobnie odradzałbym korzystanie z takiej lokalizacji. Głównie dlatego, że wymaga, aby wszystkie twoje systemy zostały $PATH
rozszerzone o to i jest niestandardowy. Dostosowywanie rzeczy zawsze było „prawem przejścia” dla każdego niedoszłego administratora Unixa, ale zawsze go odradzam, chyba że jest to absolutnie konieczne.
Największym problemem związanym z takimi dostosowaniami jest to, że stają się one ciężarem zarówno w utrzymywaniu środowiska, jak i przyspieszaniu nowych osób, jak korzystać ze środowiska.
Czy mogę po prostu uzyskać listę plików z RPM?
Tak, możesz to osiągnąć, ale będzie to wymagało 2 połączeń z RPM. Pierwszy zbuduje listę pakietów, które zostały zbudowane na hoście X.mydom.com. Po uzyskaniu tej listy musisz ponownie wywołać kwerendę RPM dla plików należących do każdego z tych pakietów. Możesz to osiągnąć za pomocą tej jednej wkładki:
$ rpm -ql $(rpm -qa --queryformat "%-30{NAME}%{BUILDHOST}\n" | \
grep X.mydom.com | awk '{print $1}') | head -10
/etc/pam.d/run_init
/etc/sestatus.conf
/usr/bin/secon
/usr/bin/semodule_deps
/usr/bin/semodule_expand
/usr/bin/semodule_link
/usr/bin/semodule_package
/usr/bin/semodule_unpackage
/usr/sbin/fixfiles
/usr/sbin/genhomedircon
Oczywistą sugestią jest nazywanie plików binarnych lub pakietów w specjalny sposób. Można na przykład poprzedzić je prefiksem
cm-
według inicjałów podanych w tym poście. Jeśli instalujesz rpms, muszą przejść do/usr/bin
(jeśli są plikami wykonywalnymi na poziomie użytkownika), zgodnie z FHS. Nie powinni wchodzić na/usr/local/bin
przykład. Dotyczy to tylko instalacji lokalnych.Dla przypomnienia, nie wydaje mi się, aby umieszczać pliki binarne w specjalnym katalogu i łączyć je w ogóle z atrakcyjnymi, choć przypuszczam, że takie rzeczy są czasami robione. Pamiętaj również, że jeśli chcesz dowiedzieć się, które pliki binarne należą do danego pakietu, możesz po prostu zapytać o system pakowania.
źródło
Pliki binarne, które nie są częścią systemu ani dystrybucji, zwykle znajdują się w
katalog jest zwykle w standardzie,
$PATH
dzięki czemu można znaleźć twoje pliki binarne.źródło
/usr/local/bin
jest dla ręcznie instalowanych plików wykonywalnych. Pliki wykonywalne zarządzane przez menedżera pakietów wchodzą/usr/bin
.