{"id":30239,"date":"2019-10-31T21:34:27","date_gmt":"2019-10-31T18:34:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/uproshhaem-sborku-linux-iz-ishodnikov-s-pomoshhyu-sajta-umvirt-lfs-packages\/"},"modified":"2019-10-31T21:34:27","modified_gmt":"2019-10-31T18:34:27","slug":"uproshhaem-sborku-linux-iz-ishodnikov-s-pomoshhyu-sajta-umvirt-lfs-packages","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/uproshhaem-sborku-linux-iz-ishodnikov-s-pomoshhyu-sajta-umvirt-lfs-packages","title":{"rendered":"We simplify Linux compilation from source using the UmVirt LFS Packages site.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Many users of GNU\/Linux may have been puzzled by the recent initiatives from authorities aimed at creating a \"sovereign\" Internet, prompting them to find ways to safeguard against the potential unavailability of popular GNU\/Linux distribution repositories.<\/p>\n<p>Some users are downloading repositories for CentOS, Ubuntu, and Debian, some are building their distributions based on existing ones, while others, armed with LFS (Linux From Scratch) and BLFS (Beyond Linux From Scratch) books, have already started compiling their distributions from source code because they believe that under a \"sovereign\" Internet, hacker attacks, viral epidemics, and data breaches will inevitably occur, and binaries will become outdated over time. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nRecently, I finally managed to compile a virtual machine entirely from source based on the instructions in the Linux From Scratch Systemd Edition v.8.3 book. I am eager to share the results with you.<\/p>\n<h2>The Linux Building Process<\/h2>\n<p>\nThe process of building Linux from source can be divided into three stages: <\/p>\n<ol>\n<li>An LFS build environment is set up based on the existing operating system.<\/li>\n<li>An LFS virtual machine image is compiled in the build environment.<\/li>\n<li>Additional packages from the BLFS book, which are not included in the LFS book, are installed in the virtual machine.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Static script files<\/h3>\n<p>\nWhile working with the build environment, it is convenient to use the clipboard and SSH: you can copy commands from the book and paste them into the console of the build environment. <\/p>\n<p>After launching the created virtual machine, serious problems arose. Unlike the terminal window, it is impossible to paste code into the virtual machine client window. Typing commands using the keyboard is inconvenient and carries a high risk of typos. The danger of typographical errors is that they may not manifest immediately, but rather after some time, leading to serious issues.<\/p>\n<p>It is known that commands can be input not only from the keyboard but also from the standard input (STDIN). The standard input source can include a serial port, as well as the output from a program or script, which is referred to as standard output (STDOUT).<\/p>\n<p>Many know that the wget command can output the content of a downloaded file to standard output (STDOUT):<\/p>\n<pre><code class=\"bash\">wget http:\/\/example.com -O -<\/code><\/pre>\n<p>\nIf the output of the wget command is directed to the interpreter, it can execute arbitrary code. The code will be executed as if it were typed on the keyboard or copied from the clipboard:<\/p>\n<pre><code class=\"bash\">wget http:\/\/umvirt.com\/linux\/helloworld.sh -O - | bash<\/code><\/pre>\n<p>\nThis way, you can host files with commands on some web server and send their contents to the interpreter. <\/p>\n<h2>Dynamic script files<\/h2>\n<p>\nStatic files are certainly good if you know exactly what needs to be executed, but what if a package installation is taking place, and you're not sure whether dependencies are installed or not? What then? <\/p>\n<p>A dynamic website based on <b>LAMP web server<\/b> (Linux-Apache-MySQL-PHP) comes to the rescue. If a site can dynamically generate pages (HTML files) and images, then it should certainly be able to handle regular text files. <\/p>\n<p>And that's how it turned out. I wrote a site <noindex>UmVirt LFS Packages<\/noindex> that generates scripts for the Bash interpreter. The site database contains information about packages, dependencies, patches, add-ons, and build commands.<\/p>\n<p>Now, to install the mc (midnight commander) package, you can use the command:<\/p>\n<pre><code class=\"bash\">wget --no-check-certificate https:\/\/umvirt.com\/linux\/packages\/0.1\/mc\/install -O - | bash<\/code><\/pre>\n<p>\nThe site script will fetch data from the database and create the dependency check code and the installation script code. The interpreter will process the instructions from the script.<\/p>\n<p>For this to be possible, information about the installed packages is stored on the virtual machine's disk in a database.<\/p>\n<p>The database of installed packages is located in the directory <b>\/var\/cache\/ulfs-packages<\/b> which consists of a list of empty files named after the corresponding package names. <\/p>\n<p>If a package is not found in the database, recursive installation of dependencies occurs.<\/p>\n<h2>Convenience<\/h2>\n<p>\nTo make package installation more convenient, I wrote the chimp script, another site <noindex>UmVirt LFS Assistant<\/noindex>, using the database. <b>UmVirt LFS Packages<\/b>The main task <b>UmVirt LFS Assistant<\/b> is to execute other commands. <\/p>\n<p>With chimp, package installation becomes even easier:<\/p>\n<pre><code class=\"bash\">chimp install mc<\/code><\/pre>\n<p><\/p>\n<h2>Demo<\/h2>\n<p>\nTo familiarize yourself with the functioning of the services <b>UmVirt LFS Packages<\/b> and <b>UmVirt LFS Assistant<\/b> you can download the base image <noindex>Initial UmVirt LFS v.0.1 Update 1<\/noindex>. Perform the installation of Xorg with a single command:<\/p>\n<pre><code class=\"bash\">chimp install X<\/code><\/pre>\n<p>\nDuring the script's execution, 141 packages will be installed automatically. To save time on compilation, you can change the value of the MAKEFLAGS variable in the \/etc\/profile file from \u00ab-j1\u00bb (single thread) to, for example, \u00ab-j6\u00bb (six threads).<\/p>\n<h2>Decentralization and Customization<\/h2>\n<p>\nTo ensure security, autonomy, and customization, the source code of UmVirt LFS Packages and UmVirt LFS Assistant is publicly available. Anyone can download it, deploy it, and modify the services within their infrastructure.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/445178\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GNU\/Linux \u0432 \u0441\u0432\u0435\u0442\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432 \u0432\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u00ab\u0441\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e\u00bb \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043e\u0437\u0430\u0434\u0430\u0447\u0438\u043b\u0438\u0441\u044c \u0446\u0435\u043b\u044c\u044e \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0445\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 GNU\/Linux. \u041a\u0442\u043e \u0432\u044b\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 CentOS, Ubuntu, Debian, \u043a\u0442\u043e-\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432, \u0430 \u043a\u0442\u043e-\u0442\u043e \u0432\u043e\u043e\u0440\u0443\u0436\u0438\u0432\u0448\u0438\u0441\u044c \u043a\u043d\u0438\u0433\u0430\u043c\u0438 LFS (Linux From Scratch) \u0438 BLFS (Beyond Linux From Scratch) \u0443\u0436\u0435 \u0432\u0437\u044f\u043b\u0441\u044f \u0437\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-30239","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GNU\/Linux \u0432 \u0441\u0432\u0435\u0442\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432 \u0432\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u00ab\u0441\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e\u00bb \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043e\u0437\u0430\u0434\u0430\u0447\u0438\u043b\u0438\u0441\u044c \u0446\u0435\u043b\u044c\u044e \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0445\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/uproshhaem-sborku-linux-iz-ishodnikov-s-pomoshhyu-sajta-umvirt-lfs-packages\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u043f\u0440\u043e\u0449\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 Linux \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0430\u0439\u0442\u0430 UmVirt LFS Packages | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GNU\/Linux \u0432 \u0441\u0432\u0435\u0442\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432 \u0432\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u00ab\u0441\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e\u00bb \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043e\u0437\u0430\u0434\u0430\u0447\u0438\u043b\u0438\u0441\u044c \u0446\u0435\u043b\u044c\u044e \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0445\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/uproshhaem-sborku-linux-iz-ishodnikov-s-pomoshhyu-sajta-umvirt-lfs-packages\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:34:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:34:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Simplifying Linux assembly from source with UmVirt LFS Packages | ProHoster","description":"Many GNU\/Linux users may be concerned about the recent government initiatives aimed at creating a 'sovereign' Internet, prompting them to prepare for potential unavailability of repositories from popular distributions.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/uproshhaem-sborku-linux-iz-ishodnikov-s-pomoshhyu-sajta-umvirt-lfs-packages","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u043f\u0440\u043e\u0449\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 Linux \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0430\u0439\u0442\u0430 UmVirt LFS Packages | ProHoster","og:description":"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GNU\/Linux \u0432 \u0441\u0432\u0435\u0442\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432 \u0432\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u00ab\u0441\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e\u00bb \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043e\u0437\u0430\u0434\u0430\u0447\u0438\u043b\u0438\u0441\u044c \u0446\u0435\u043b\u044c\u044e \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0445\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432.","og:url":"https:\/\/prohoster.info\/en\/blog\/uproshhaem-sborku-linux-iz-ishodnikov-s-pomoshhyu-sajta-umvirt-lfs-packages","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:34:27+00:00","article:modified_time":"2019-10-31T18:34:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30239","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 00:17:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:38:40","updated":"2026-01-21 00:17:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/30239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=30239"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/30239\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=30239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=30239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=30239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}