దాదాపు రెండేళ్ల అభివృద్ధి తర్వాత జరిగింది ప్యాకేజీ మేనేజర్ విడుదల ఆర్‌పిఎం 4.15.0. RPM4 ప్రాజెక్ట్ Red Hat చే అభివృద్ధి చేయబడింది మరియు RHEL (డెరివేటివ్ ప్రాజెక్ట్‌లు CentOS, సైంటిఫిక్ లైనక్స్, AsiaLinux, Red Flag Linux, Oracle Linuxతో సహా), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, PCLin వంటి పంపిణీలలో ఉపయోగించబడుతుంది. టిజెన్ మరియు అనేక ఇతర. గతంలో స్వతంత్ర అభివృద్ధి బృందం అభివృద్ధి చేశారు ప్రాజెక్ట్ RPM5, ఇది RPM4కి నేరుగా సంబంధం లేదు మరియు ప్రస్తుతం వదిలివేయబడింది (2010 నుండి నవీకరించబడలేదు).

అత్యంత గుర్తించదగినది మెరుగుదలలు RPM 4.15లో:

  • chroot వాతావరణంలో అన్‌ప్రివిలేజ్డ్ అసెంబ్లీకి ప్రయోగాత్మక మద్దతు జోడించబడింది;
  • అమలు చేశారు బహుళ-కోర్ సిస్టమ్‌లపై ప్యాకేజీ అసెంబ్లీ సమాంతరీకరణకు మద్దతు. థ్రెడ్‌ల సంఖ్యపై పరిమితి మాక్రో “%_smp_build_ncpus” మరియు $RPM_BUILD_NCPUS వేరియబుల్ ద్వారా సెట్ చేయబడింది. CPUల సంఖ్యను నిర్ణయించడానికి, మాక్రో “%getncpus” ప్రతిపాదించబడింది;
  • స్పెక్ ఫైల్‌లు ఇప్పుడు షరతులతో కూడిన ఆపరేటర్ “% elif” (లేకపోతే) అలాగే పంపిణీ మరియు నిర్మాణానికి కట్టుబడి ఉండటానికి “% elifos” మరియు “%elifarch” ఎంపికలకు మద్దతు ఇస్తాయి;
  • చేర్చబడింది కొత్త విభాగాలు "%patchlist" మరియు "%sourcelist", ఇవి ఎంట్రీ నంబర్‌లను పేర్కొనకుండా పేర్లను జాబితా చేయడం ద్వారా ప్యాచ్‌లు మరియు మూలాలను జోడించడానికి ఉపయోగించవచ్చు (ఉదాహరణకు, బదులుగా
    "Patch0: popt-1.16-pkgconfig.patch" %patchlist విభాగంలో మీరు "popt-1.16-pkgconfig.patch"ని పేర్కొనవచ్చు);

  • rpmbuild లో జోడించారు src.rpmలో చేర్చడంతో డిపెండెన్సీల డైనమిక్ అసెంబ్లీకి మద్దతు. స్పెక్ ఫైల్‌లో, “%generate_buildrequires” విభాగానికి మద్దతు జోడించబడింది, వీటిలో కంటెంట్‌లు డిపెండెన్సీల జాబితాగా ప్రాసెస్ చేయబడతాయి (BuildRequires), ధృవీకరణ అవసరం (డిపెండెన్సీ తప్పిపోయినట్లయితే, లోపం ప్రదర్శించబడుతుంది).
  • అమలు చేశారు "^" ఆపరేటర్ ఇచ్చిన తేదీ కంటే పాత సంస్కరణల కోసం తనిఖీ చేయడానికి ఉపయోగించబడుతుంది, ఇది "~" ఆపరేటర్‌కు విరుద్ధంగా ఉంటుంది. ఉదాహరణకి,
    "1.1^20160101" వెర్షన్ 1.1ని కవర్ చేస్తుంది మరియు జనవరి 1, 2016 తర్వాత జోడించిన ప్యాచ్‌లు;

  • "%autosetup SCM" మోడ్‌ను ప్రారంభించడానికి "--scm" ఎంపిక జోడించబడింది;
  • ఏకపక్ష వ్యక్తీకరణలను మూల్యాంకనం చేయడానికి అంతర్నిర్మిత మాక్రో "%{expr:...}" జోడించబడింది (కొన్ని రోజుల క్రితం కూడా ఉంది ప్రతిపాదించారు ఫార్మాట్ "%[ expr ]");
  • హెడర్‌లలో స్ట్రింగ్ డేటా కోసం డిఫాల్ట్ ఎన్‌కోడింగ్ UTF-8 అని నిర్ధారిస్తుంది;
  • కంపైలర్ మరియు లింకర్ కోసం గ్లోబల్ మాక్రోలు %build_cflags, %build_cxxflags, %build_fflags మరియు %build_ldflags ఫ్లాగ్‌లతో జోడించబడ్డాయి;
  • వ్యాఖ్యలను చొప్పించడానికి మాక్రో "%dnl" (తదుపరి పంక్తికి విస్మరించండి) జోడించబడింది;
  • పైథాన్ 3 కోసం బైండింగ్‌లు బైట్ డేటాకు బదులుగా తీగలను తప్పించుకున్న UTF-8 సీక్వెన్స్‌లుగా అందించబడతాయని నిర్ధారిస్తుంది;
  • rpmdb లేని సిస్టమ్‌లకు మద్దతును మెరుగుపరచడానికి నకిలీ డేటాబేస్ బ్యాకెండ్ జోడించబడింది (ఉదా. డెబియన్);
  • మెరుగైన ARM ఆర్కిటెక్చర్ డిటెక్షన్ మరియు armv8కి మద్దతు జోడించబడింది;
  • లువా 5.2-5.3 కోసం అతుకులు లేని మద్దతును అందిస్తుంది, దీనికి కోడ్‌లో కాంపాట్ నిర్వచనాలు అవసరం లేదు.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి